Handle code heap exhaustion with a critical error, instead of sig11 + corrupt image

slava 2006-09-05 23:10:42 +00:00
parent 8249adc3f6
commit dc8f6d703a
2 changed files with 6 additions and 1 deletions

View File

@ -11,7 +11,6 @@
]
- prettier printing of hashtable literals, alists, cond, ...
- alien-indirect
- handle code heap exhaustion with a critical error
- more compact relocation info
- problem if major gc happens during relocation
- in fact relocation should not cons at all

View File

@ -225,6 +225,12 @@ CELL add_compiled_block(CELL code_format, F_VECTOR *code,
CELL literal_length = untag_fixnum_fast(literals->top) * CELLS;
CELL words_length = untag_fixnum_fast(words->top) * CELLS;
CELL total_length = sizeof(F_COMPILED) + code_length + rel_length
+ literal_length + words_length;
if(compiling.here + total_length >= compiling.limit)
critical_error("Code heap exhausted",compiling.limit);
/* compiled header */
F_COMPILED header;
header.code_length = code_length;