Commit Diff


commit - 93aa30a8df668b3ad5806c417acb65d2a4663178
commit + 2634795b5f0053bc0ff08e5d7bbc0eda8efea061
blob - 08ff7d7fe4ee8a3391b3ad3ff65e044843c06bee
blob + 056ac7c2d09de26f814c8d8b009275f4669a8894
--- src/libdraw/bytesperline.c
+++ src/libdraw/bytesperline.c
@@ -24,7 +24,7 @@ unitsperline(Rectangle r, int d, int bitsperunit)
 int
 wordsperline(Rectangle r, int d)
 {
-	return unitsperline(r, d, 8*sizeof(ulong));
+	return unitsperline(r, d, 8*sizeof(u32int));
 }
 
 int
blob - b4204f4e1e2c9ba81dc2966187689f22742a6ed2
blob + 89755ee9449523c7c7dbd0f6af10675f429c893c
--- src/libdraw/md-alloc.c
+++ src/libdraw/md-alloc.c
@@ -19,7 +19,7 @@ memimagemove(void *from, void *to)
 	md->base = to;
 
 	/* if allocmemimage changes this must change too */
-	md->bdata = (uchar*)&md->base[2];
+	md->bdata = (uchar*)((ulong*)md->base+2);
 }
 
 Memimage*
@@ -71,6 +71,7 @@ _allocmemimage(Rectangle r, u32int chan)
 {
 	int d;
 	u32int l, nw;
+	ulong *ul;
 	Memdata *md;
 	Memimage *i;
 
@@ -87,22 +88,23 @@ _allocmemimage(Rectangle r, u32int chan)
 
 	md->ref = 1;
 	/*
-	 * The first two words are the md and the callerpc.
+	 * The first two ulongs are the md and the callerpc.
 	 * Then nw words of data.
 	 * The final word lets the drawing routines be a little
 	 * sloppy about reading past the end of the block.
 	 */
-	md->base = poolalloc(imagmem, (2+nw+1)*sizeof(u32int));
+	md->base = poolalloc(imagmem, 2*sizeof(ulong)+(nw+1)*sizeof(u32int));
 	if(md->base == nil){
 		free(md);
 		return nil;
 	}
 
-	md->base[0] = (u32int)md;
-	md->base[1] = getcallerpc(&r);
+	ul = (ulong*)md->base;
+	ul[0] = (ulong)md;
+	ul[1] = getcallerpc(&r);
 
 	/* if this changes, memimagemove must change too */
-	md->bdata = (uchar*)&md->base[2];
+	md->bdata = (uchar*)(ul+2);
 
 	md->allocd = 1;
 
@@ -135,7 +137,7 @@ _freememimage(Memimage *i)
 u32int*
 wordaddr(Memimage *i, Point p)
 {
-	return (u32int*) ((u32int)byteaddr(i, p) & ~(sizeof(u32int)-1));
+	return (u32int*) ((ulong)byteaddr(i, p) & ~(sizeof(u32int)-1));
 }
 
 uchar*
blob - 446c2e93e2ca4fa86a4b339baa9d1cfd2f83eb62
blob + 1e9e01edb614a0c51ca62cfa17f8fa11aa8a5b53
--- src/libdraw/md-defont.c
+++ src/libdraw/md-defont.c
@@ -21,7 +21,7 @@ getmemdefont(void)
 	 * declared as char*, not u32int*.
 	 */
 	p = (char*)defontdata;
-	n = (u32int)p & 3;
+	n = (ulong)p & 3;
 	if(n != 0){
 		memmove(p+(4-n), p, sizeofdefont-n);
 		p += 4-n;
blob - 928ae1e196c163e079213643514072a5c617c8db
blob + fcacae51afdb6b43a5d33fdc4584964bfec86471
--- src/libdraw/md-fillpoly.c
+++ src/libdraw/md-fillpoly.c
@@ -126,7 +126,7 @@ mod(long x, long y)
 	long z;
 
 	z = x%y;
-	if((long)(((u32int)z)^((u32int)y)) > 0 || z == 0)
+	if((long)(((ulong)z)^((ulong)y)) > 0 || z == 0)
 		return z;
 	return z + y;
 }
@@ -134,7 +134,7 @@ mod(long x, long y)
 static long
 sdiv(long x, long y)
 {
-	if((long)(((u32int)x)^((u32int)y)) >= 0 || x == 0)
+	if((long)(((ulong)x)^((ulong)y)) >= 0 || x == 0)
 		return x/y;
 
 	return (x+((y>>30)|1))/y-1;