commit 2634795b5f0053bc0ff08e5d7bbc0eda8efea061 from: rsc date: Fri Jan 14 03:33:11 2005 UTC 64-bit fixes from lucho 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;