mirror of
https://github.com/X11Libre/xf86-video-intel.git
synced 2026-03-24 01:24:12 +00:00
sna: Don't memcpy() between different types
Currently we're doing a blind memcpy() from a DDXPointRec into the beginning of a BoxRec. While this apparently works it's quite dodgy. Get rid of the memcpy() and simply assign each member by hand. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
This commit is contained in:
@@ -37,14 +37,16 @@ fbFillSpans(DrawablePtr drawable, GCPtr gc,
|
||||
{
|
||||
DBG(("%s x %d\n", __FUNCTION__, n));
|
||||
while (n--) {
|
||||
BoxRec box;
|
||||
|
||||
memcpy(&box, pt, sizeof(box));
|
||||
box.x2 = box.x1 + *width++;
|
||||
box.y2 = box.y1 + 1;
|
||||
BoxRec box = {
|
||||
.x1 = pt->x,
|
||||
.y1 = pt->y,
|
||||
.x2 = pt->x + *width,
|
||||
.y2 = pt->y + 1,
|
||||
};
|
||||
|
||||
/* XXX fSorted */
|
||||
fbDrawableRun(drawable, gc, &box, fbFillSpan, NULL);
|
||||
width++;
|
||||
pt++;
|
||||
}
|
||||
}
|
||||
@@ -90,12 +92,14 @@ fbSetSpans(DrawablePtr drawable, GCPtr gc,
|
||||
|
||||
data.src = src;
|
||||
while (n--) {
|
||||
BoxRec box;
|
||||
BoxRec box = {
|
||||
.x1 = pt->x,
|
||||
.y1 = pt->y,
|
||||
.x2 = pt->x + *width,
|
||||
.y2 = pt->y + 1,
|
||||
};
|
||||
|
||||
memcpy(&box, pt, sizeof(box));
|
||||
data.pt = *pt;
|
||||
box.x2 = box.x1 + *width;
|
||||
box.y2 = box.y1 + 1;
|
||||
|
||||
fbDrawableRun(drawable, gc, &box, fbSetSpan, &data);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user