diff --git a/vm/code_block.cpp b/vm/code_block.cpp index 5ebb162f7e..4694381ed3 100644 --- a/vm/code_block.cpp +++ b/vm/code_block.cpp @@ -218,10 +218,7 @@ void update_word_references(code_block *compiled) the code heap with dead PICs that will be freed on the next GC, we add them to the free list immediately. */ else if(compiled->block.type == PIC_TYPE) - { - fflush(stdout); heap_free(&code,&compiled->block); - } else { iterate_relocations(compiled,update_word_references_step); diff --git a/vm/strings.cpp b/vm/strings.cpp index c00c17bc45..c70d9dfb6d 100644 --- a/vm/strings.cpp +++ b/vm/strings.cpp @@ -108,7 +108,9 @@ PRIMITIVE(string) static bool reallot_string_in_place_p(string *str, cell capacity) { - return in_zone(&nursery,str) && capacity <= string_capacity(str); + return in_zone(&nursery,str) + && (str->aux == F || in_zone(&nursery,untag(str->aux))) + && capacity <= string_capacity(str); } string* reallot_string(string *str_, cell capacity)