From 2634795b5f0053bc0ff08e5d7bbc0eda8efea061 Mon Sep 17 00:00:00 2001 From: rsc Date: Fri, 14 Jan 2005 03:33:11 +0000 Subject: 64-bit fixes from lucho --- src/libdraw/bytesperline.c | 2 +- src/libdraw/md-alloc.c | 16 +++++++++------- src/libdraw/md-defont.c | 2 +- src/libdraw/md-fillpoly.c | 4 ++-- 4 files changed, 13 insertions(+), 11 deletions(-) (limited to 'src/libdraw') diff --git a/src/libdraw/bytesperline.c b/src/libdraw/bytesperline.c index 08ff7d7f..056ac7c2 100644 --- a/src/libdraw/bytesperline.c +++ b/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 diff --git a/src/libdraw/md-alloc.c b/src/libdraw/md-alloc.c index b4204f4e..89755ee9 100644 --- a/src/libdraw/md-alloc.c +++ b/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* diff --git a/src/libdraw/md-defont.c b/src/libdraw/md-defont.c index 446c2e93..1e9e01ed 100644 --- a/src/libdraw/md-defont.c +++ b/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; diff --git a/src/libdraw/md-fillpoly.c b/src/libdraw/md-fillpoly.c index 928ae1e1..fcacae51 100644 --- a/src/libdraw/md-fillpoly.c +++ b/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; -- cgit v1.2.3