VM: more fine-grained control over which special objects to save

It removes a few roots that doesn't need to be saved in the image and
can save a few hundred bytes.
db4
Björn Lindqvist 2015-12-13 08:10:36 +01:00
parent 28a0f3a01a
commit 08766090d3
1 changed files with 4 additions and 5 deletions

View File

@ -123,13 +123,12 @@ enum special_object {
/* save-image-and-exit discards special objects that are filled in on startup
anyway, to reduce image size */
#define OBJ_FIRST_SAVE OBJ_STARTUP_QUOT
#define OBJ_LAST_SAVE OBJ_STAGE2
inline static bool save_special_p(cell i) {
/* Need to fix the order here. */
return (i >= OBJ_FIRST_SAVE && i <= OBJ_LAST_SAVE) ||
(i >= OBJ_CANONICAL_TRUE);
return (i >= OBJ_STARTUP_QUOT && i <= LEAF_SIGNAL_HANDLER_WORD) ||
(i >= REDEFINITION_COUNTER && i <= OBJ_UNDEFINED) ||
i == OBJ_STAGE2 ||
(i >= OBJ_CANONICAL_TRUE && i <= OBJ_BIGNUM_NEG_ONE);
}
template <typename Iterator> void object::each_slot(Iterator& iter) {