Module Name:    xsrc
Committed By:   joerg
Date:           Sun Aug 21 18:19:25 UTC 2016

Modified Files:
        xsrc/external/mit/xf86-video-glint/dist/src: pm2_accel.c pm_accel.c

Log Message:
Avoid undefined behavior by left-shifting negative numbers.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.2 -r1.2 \
    xsrc/external/mit/xf86-video-glint/dist/src/pm2_accel.c \
    xsrc/external/mit/xf86-video-glint/dist/src/pm_accel.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: xsrc/external/mit/xf86-video-glint/dist/src/pm2_accel.c
diff -u xsrc/external/mit/xf86-video-glint/dist/src/pm2_accel.c:1.1.1.2 xsrc/external/mit/xf86-video-glint/dist/src/pm2_accel.c:1.2
--- xsrc/external/mit/xf86-video-glint/dist/src/pm2_accel.c:1.1.1.2	Sun Jun  2 07:25:12 2013
+++ xsrc/external/mit/xf86-video-glint/dist/src/pm2_accel.c	Sun Aug 21 18:19:25 2016
@@ -620,19 +620,19 @@ Permedia2SubsequentSolidBresenhamLine( S
     if(dmaj == dmin) {
 	GLINT_WAIT(6);
 	if(octant & YDECREASING) {
-	    GLINT_WRITE_REG(-1<<16, dY);
+	    GLINT_WRITE_REG(-65536, dY);
 	} else {
-	    GLINT_WRITE_REG(1<<16, dY);
+	    GLINT_WRITE_REG(65536, dY);
 	}
 
 	if(octant & XDECREASING) {
-	    GLINT_WRITE_REG(-1<<16, dXDom);
+	    GLINT_WRITE_REG(-65536, dXDom);
 	} else {
-	    GLINT_WRITE_REG(1<<16, dXDom);
+	    GLINT_WRITE_REG(65536, dXDom);
 	}
 
-	GLINT_WRITE_REG(x<<16, StartXDom);
-	GLINT_WRITE_REG(y<<16, StartY);
+	GLINT_WRITE_REG(x * 65536, StartXDom);
+	GLINT_WRITE_REG(y * 65536, StartY);
 	GLINT_WRITE_REG(len,GLINTCount);
 	GLINT_WRITE_REG(PrimitiveLine, Render);
 	return;
Index: xsrc/external/mit/xf86-video-glint/dist/src/pm_accel.c
diff -u xsrc/external/mit/xf86-video-glint/dist/src/pm_accel.c:1.1.1.2 xsrc/external/mit/xf86-video-glint/dist/src/pm_accel.c:1.2
--- xsrc/external/mit/xf86-video-glint/dist/src/pm_accel.c:1.1.1.2	Sun Jun  2 07:25:12 2013
+++ xsrc/external/mit/xf86-video-glint/dist/src/pm_accel.c	Sun Aug 21 18:19:25 2016
@@ -401,7 +401,7 @@ PermediaSubsequentScreenToScreenCopy(
     if (!(pGlint->BltScanDirection & YPositive)) {
 	y1 = y1 + h - 1;
 	y2 = y2 + h - 1;
-	direction = -1<<16;
+	direction = -65536;
     } else {
 	direction = 1<<16;
     }
@@ -1162,9 +1162,9 @@ PermediaSubsequentHorVertLine(ScrnInfoPt
   
     GLINT_WAIT(7);
     if (dir == DEGREES_0) {
-        PermediaLoadCoord(pScrn, x<<16, y<<16, 0, len, 1<<16, 0);
+        PermediaLoadCoord(pScrn, x * 65536, y * 65536, 0, len, 1<<16, 0);
     } else {
-        PermediaLoadCoord(pScrn, x<<16, y<<16, 0, len, 0, 1<<16);
+        PermediaLoadCoord(pScrn, x * 65536, y * 65536, 0, len, 0, 1<<16);
     }
 
     GLINT_WRITE_REG(PrimitiveLine, Render);
@@ -1180,15 +1180,15 @@ PermediaSubsequentSolidBresenhamLine( Sc
     if(dmaj == dmin) {
 	GLINT_WAIT(7);
 	if(octant & YDECREASING) {
-	    dy = -1<<16;
+	    dy = -65536;
 	} else {
-	    dy = 1<<16;
+	    dy = 65536;
 	}
 
 	if(octant & XDECREASING) {
-	    dxdom = -1<<16;
+	    dxdom = -65536;
 	} else {
-	    dxdom = 1<<16;
+	    dxdom = 65536;
 	}
 
         PermediaLoadCoord(pScrn, x<<16, y<<16, 0, len, dxdom, dy);

Reply via email to