aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/malloc.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-06-04 21:09:06 -0700
committerRuss Cox <rsc@golang.org>2009-06-04 21:09:06 -0700
commita52fb815e47503126b2a8d9c0907e9c9e6d01193 (patch)
tree9cb3038771ca4903a50485973e6e24a21280c73e /src/runtime/malloc.c
parent6739b8d606e7439a5a2d5c29dd9e67451131e8b6 (diff)
downloadgo-a52fb815e47503126b2a8d9c0907e9c9e6d01193.tar.xz
386-related fixes and guards
R=r DELTA=44 (19 added, 1 deleted, 24 changed) OCL=29912 CL=29915
Diffstat (limited to 'src/runtime/malloc.c')
-rw-r--r--src/runtime/malloc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/runtime/malloc.c b/src/runtime/malloc.c
index b33cc6fe25..81cdfb3001 100644
--- a/src/runtime/malloc.c
+++ b/src/runtime/malloc.c
@@ -58,7 +58,10 @@ malloc(uintptr size)
}
// setup for mark sweep
- mlookup(v, nil, nil, &ref);
+ if(!mlookup(v, nil, nil, &ref)) {
+ printf("malloc %D; mlookup failed\n", (uint64)size);
+ throw("malloc mlookup");
+ }
*ref = RefNone;
m->mallocing = 0;
@@ -93,7 +96,8 @@ free(void *v)
throw("malloc/free - deadlock");
m->mallocing = 1;
- mlookup(v, nil, nil, &ref);
+ if(!mlookup(v, nil, nil, &ref))
+ throw("free mlookup");
*ref = RefFree;
// Find size class for v.
@@ -283,7 +287,8 @@ stackalloc(uint32 n)
return v;
}
v = malloc(n);
- mlookup(v, nil, nil, &ref);
+ if(!mlookup(v, nil, nil, &ref))
+ throw("stackalloc mlookup");
*ref = RefStack;
return v;
}