summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/port/alloc.c42
-rw-r--r--sys/src/libc/port/malloc.c41
2 files changed, 37 insertions, 46 deletions
diff --git a/sys/src/9/port/alloc.c b/sys/src/9/port/alloc.c
index b88475e66..fd3e41690 100644
--- a/sys/src/9/port/alloc.c
+++ b/sys/src/9/port/alloc.c
@@ -135,7 +135,7 @@ mallocsummary(void)
/* - except the code for smalloc(), which lives only in the kernel. */
/*
- * Npadlong is the number of uintptr's to leave at the beginning of
+ * Npadlong is the number of ulong's to leave at the beginning of
* each allocated buffer for our own bookkeeping. We return to the callers
* a pointer that points immediately after our bookkeeping area. Incoming pointers
* must be decremented by that much, and outgoing pointers incremented.
@@ -171,7 +171,7 @@ smalloc(ulong size)
void *v;
for(;;) {
- v = poolalloc(mainmem, size+Npadlong*sizeof(uintptr));
+ v = poolalloc(mainmem, size+Npadlong*sizeof(ulong));
if(v != nil)
break;
if(!waserror()){
@@ -180,7 +180,7 @@ smalloc(ulong size)
}
}
if(Npadlong){
- v = (uintptr*)v+Npadlong;
+ v = (ulong*)v+Npadlong;
setmalloctag(v, getcallerpc(&size));
}
memset(v, 0, size);
@@ -192,11 +192,11 @@ malloc(ulong size)
{
void *v;
- v = poolalloc(mainmem, size+Npadlong*sizeof(uintptr));
+ v = poolalloc(mainmem, size+Npadlong*sizeof(ulong));
if(v == nil)
return nil;
if(Npadlong){
- v = (uintptr*)v+Npadlong;
+ v = (ulong*)v+Npadlong;
setmalloctag(v, getcallerpc(&size));
setrealloctag(v, 0);
}
@@ -209,9 +209,9 @@ mallocz(ulong size, int clr)
{
void *v;
- v = poolalloc(mainmem, size+Npadlong*sizeof(uintptr));
+ v = poolalloc(mainmem, size+Npadlong*sizeof(ulong));
if(Npadlong && v != nil){
- v = (uintptr*)v+Npadlong;
+ v = (ulong*)v+Npadlong;
setmalloctag(v, getcallerpc(&size));
setrealloctag(v, 0);
}
@@ -225,9 +225,9 @@ mallocalign(ulong size, ulong align, long offset, ulong span)
{
void *v;
- v = poolallocalign(mainmem, size+Npadlong*sizeof(uintptr), align, offset-Npadlong*sizeof(uintptr), span);
+ v = poolallocalign(mainmem, size+Npadlong*sizeof(ulong), align, offset-Npadlong*sizeof(ulong), span);
if(Npadlong && v != nil){
- v = (uintptr*)v+Npadlong;
+ v = (ulong*)v+Npadlong;
setmalloctag(v, getcallerpc(&size));
setrealloctag(v, 0);
}
@@ -240,7 +240,7 @@ void
free(void *v)
{
if(v != nil)
- poolfree(mainmem, (uintptr*)v-Npadlong);
+ poolfree(mainmem, (ulong*)v-Npadlong);
}
void*
@@ -249,12 +249,12 @@ realloc(void *v, ulong size)
void *nv;
if(v != nil)
- v = (uintptr*)v-Npadlong;
+ v = (ulong*)v-Npadlong;
if(Npadlong !=0 && size != 0)
- size += Npadlong*sizeof(uintptr);
+ size += Npadlong*sizeof(ulong);
if(nv = poolrealloc(mainmem, v, size)){
- nv = (uintptr*)nv+Npadlong;
+ nv = (ulong*)nv+Npadlong;
setrealloctag(nv, getcallerpc(&v));
if(v == nil)
setmalloctag(nv, getcallerpc(&v));
@@ -265,7 +265,7 @@ realloc(void *v, ulong size)
ulong
msize(void *v)
{
- return poolmsize(mainmem, (uintptr*)v-Npadlong)-Npadlong*sizeof(uintptr);
+ return poolmsize(mainmem, (ulong*)v-Npadlong)-Npadlong*sizeof(ulong);
}
void*
@@ -280,23 +280,19 @@ calloc(ulong n, ulong szelem)
void
setmalloctag(void *v, uintptr pc)
{
- uintptr *u;
USED(v, pc);
if(Npadlong <= MallocOffset || v == nil)
return;
- u = v;
- u[-Npadlong+MallocOffset] = pc;
+ ((ulong*)v)[-Npadlong+MallocOffset] = (ulong)pc;
}
void
setrealloctag(void *v, uintptr pc)
{
- uintptr *u;
USED(v, pc);
if(Npadlong <= ReallocOffset || v == nil)
return;
- u = v;
- u[-Npadlong+ReallocOffset] = pc;
+ ((ulong*)v)[-Npadlong+ReallocOffset] = (ulong)pc;
}
uintptr
@@ -305,7 +301,7 @@ getmalloctag(void *v)
USED(v);
if(Npadlong <= MallocOffset)
return ~0;
- return ((uintptr*)v)[-Npadlong+MallocOffset];
+ return (int)((ulong*)v)[-Npadlong+MallocOffset];
}
uintptr
@@ -313,6 +309,6 @@ getrealloctag(void *v)
{
USED(v);
if(Npadlong <= ReallocOffset)
- return ((uintptr*)v)[-Npadlong+ReallocOffset];
- return ~0;
+ return ~0;
+ return (int)((ulong*)v)[-Npadlong+ReallocOffset];
}
diff --git a/sys/src/libc/port/malloc.c b/sys/src/libc/port/malloc.c
index 59fad21a6..af52dce42 100644
--- a/sys/src/libc/port/malloc.c
+++ b/sys/src/libc/port/malloc.c
@@ -170,7 +170,7 @@ ppanic(Pool *p, char *fmt, ...)
/* - except the code for malloc(), which alternately doesn't clear or does. - */
/*
- * Npadlong is the number of uintptr's to leave at the beginning of
+ * Npadlong is the number of ulongs's to leave at the beginning of
* each allocated buffer for our own bookkeeping. We return to the callers
* a pointer that points immediately after our bookkeeping area. Incoming pointers
* must be decremented by that much, and outgoing pointers incremented.
@@ -204,9 +204,9 @@ malloc(ulong size)
{
void *v;
- v = poolalloc(mainmem, size+Npadlong*sizeof(uintptr));
+ v = poolalloc(mainmem, size+Npadlong*sizeof(ulong));
if(Npadlong && v != nil) {
- v = (uintptr*)v+Npadlong;
+ v = (ulong*)v+Npadlong;
setmalloctag(v, getcallerpc(&size));
setrealloctag(v, 0);
}
@@ -218,9 +218,9 @@ mallocz(ulong size, int clr)
{
void *v;
- v = poolalloc(mainmem, size+Npadlong*sizeof(uintptr));
+ v = poolalloc(mainmem, size+Npadlong*sizeof(ulong));
if(Npadlong && v != nil){
- v = (uintptr*)v+Npadlong;
+ v = (ulong*)v+Npadlong;
setmalloctag(v, getcallerpc(&size));
setrealloctag(v, 0);
}
@@ -234,9 +234,9 @@ mallocalign(ulong size, ulong align, long offset, ulong span)
{
void *v;
- v = poolallocalign(mainmem, size+Npadlong*sizeof(uintptr), align, offset-Npadlong*sizeof(uintptr), span);
+ v = poolallocalign(mainmem, size+Npadlong*sizeof(ulong), align, offset-Npadlong*sizeof(ulong), span);
if(Npadlong && v != nil){
- v = (uintptr*)v+Npadlong;
+ v = (ulong*)v+Npadlong;
setmalloctag(v, getcallerpc(&size));
setrealloctag(v, 0);
}
@@ -247,7 +247,7 @@ void
free(void *v)
{
if(v != nil)
- poolfree(mainmem, (uintptr*)v-Npadlong);
+ poolfree(mainmem, (ulong*)v-Npadlong);
}
void*
@@ -261,11 +261,11 @@ realloc(void *v, ulong size)
}
if(v)
- v = (uintptr*)v-Npadlong;
- size += Npadlong*sizeof(uintptr);
+ v = (ulong*)v-Npadlong;
+ size += Npadlong*sizeof(ulong);
if(nv = poolrealloc(mainmem, v, size)){
- nv = (uintptr*)nv+Npadlong;
+ nv = (ulong*)nv+Npadlong;
setrealloctag(nv, getcallerpc(&v));
if(v == nil)
setmalloctag(nv, getcallerpc(&v));
@@ -276,7 +276,7 @@ realloc(void *v, ulong size)
ulong
msize(void *v)
{
- return poolmsize(mainmem, (uintptr*)v-Npadlong)-Npadlong*sizeof(uintptr);
+ return poolmsize(mainmem, (ulong*)v-Npadlong)-Npadlong*sizeof(ulong);
}
void*
@@ -294,23 +294,19 @@ calloc(ulong n, ulong s)
void
setmalloctag(void *v, uintptr pc)
{
- uintptr *u;
USED(v, pc);
if(Npadlong <= MallocOffset || v == nil)
return;
- u = v;
- u[-Npadlong+MallocOffset] = pc;
+ ((ulong*)v)[-Npadlong+MallocOffset] = (ulong)pc;
}
void
setrealloctag(void *v, uintptr pc)
{
- uintptr *u;
USED(v, pc);
if(Npadlong <= ReallocOffset || v == nil)
return;
- u = v;
- u[-Npadlong+ReallocOffset] = pc;
+ ((ulong*)v)[-Npadlong+ReallocOffset] = (ulong)pc;
}
uintptr
@@ -319,7 +315,7 @@ getmalloctag(void *v)
USED(v);
if(Npadlong <= MallocOffset)
return ~0;
- return ((uintptr*)v)[-Npadlong+MallocOffset];
+ return (int)((ulong*)v)[-Npadlong+MallocOffset];
}
uintptr
@@ -327,8 +323,8 @@ getrealloctag(void *v)
{
USED(v);
if(Npadlong <= ReallocOffset)
- return ((uintptr*)v)[-Npadlong+ReallocOffset];
- return ~0;
+ return ~0;
+ return (int)((ulong*)v)[-Npadlong+ReallocOffset];
}
void*
@@ -336,6 +332,5 @@ malloctopoolblock(void *v)
{
if(v == nil)
return nil;
-
- return &((uintptr*)v)[-Npadlong];
+ return &((ulong*)v)[-Npadlong];
}