projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.9.4.68:
[sbcl.git]
/
src
/
runtime
/
purify.c
diff --git
a/src/runtime/purify.c
b/src/runtime/purify.c
index
e6a8f39
..
eaa602e
100644
(file)
--- a/
src/runtime/purify.c
+++ b/
src/runtime/purify.c
@@
-127,9
+127,15
@@
newspace_alloc(long nwords, int constantp)
lispobj *ret;
nwords=CEILING(nwords,2);
if(constantp) {
lispobj *ret;
nwords=CEILING(nwords,2);
if(constantp) {
+ if(read_only_free + nwords >= (lispobj *)READ_ONLY_SPACE_END) {
+ lose("Ran out of read-only space while purifying!");
+ }
ret=read_only_free;
read_only_free+=nwords;
} else {
ret=read_only_free;
read_only_free+=nwords;
} else {
+ if(static_free + nwords >= (lispobj *)STATIC_SPACE_END) {
+ lose("Ran out of static space while purifying!");
+ }
ret=static_free;
static_free+=nwords;
}
ret=static_free;
static_free+=nwords;
}
@@
-1485,9
+1491,8
@@
purify(lispobj static_roots, lispobj read_only_roots)
printf(" handlers");
fflush(stdout);
#endif
printf(" handlers");
fflush(stdout);
#endif
- pscav((lispobj *) all_threads->interrupt_data->interrupt_handlers,
- sizeof(all_threads->interrupt_data->interrupt_handlers)
- / sizeof(lispobj),
+ pscav((lispobj *) interrupt_handlers,
+ sizeof(interrupt_handlers) / sizeof(lispobj),
0);
#ifdef PRINTNOISE
0);
#ifdef PRINTNOISE