Fix save-image-and-exit bug

db4
Slava Pestov 2008-09-19 14:44:58 -05:00
parent 005cdd4d3a
commit be4915ee9c
2 changed files with 8 additions and 4 deletions

View File

@ -1,4 +1,4 @@
USING: generic kernel kernel.private math memory prettyprint USING: generic kernel kernel.private math memory prettyprint io
sequences tools.test words namespaces layouts classes sequences tools.test words namespaces layouts classes
classes.builtin arrays quotations ; classes.builtin arrays quotations ;
IN: memory.tests IN: memory.tests
@ -19,6 +19,7 @@ TUPLE: testing x y z ;
[ ] [ [ ] [
num-types get [ num-types get [
type>class [ type>class [
dup . flush
"predicate" word-prop instances [ "predicate" word-prop instances [
class drop class drop
] each ] each

View File

@ -186,13 +186,16 @@ void strip_compiled_quotations(void)
DEFINE_PRIMITIVE(save_image_and_exit) DEFINE_PRIMITIVE(save_image_and_exit)
{ {
/* This reduces deployed image size */ /* We unbox this before doing anything else. This is the only point
strip_compiled_quotations(); where we might throw an error, so we have to throw an error here since
later steps destroy the current image. */
F_CHAR *path = unbox_native_string(); F_CHAR *path = unbox_native_string();
REGISTER_C_STRING(path); REGISTER_C_STRING(path);
/* This reduces deployed image size */
strip_compiled_quotations();
/* strip out userenv data which is set on startup anyway */ /* strip out userenv data which is set on startup anyway */
CELL i; CELL i;
for(i = 0; i < FIRST_SAVE_ENV; i++) for(i = 0; i < FIRST_SAVE_ENV; i++)