]> gitweb.factorcode.org Git - factor.git/blobdiff - native/string.c
all-tests now pass without out of memory errors
[factor.git] / native / string.c
index 2b075189e4b6e046c31eb8dee73ace1942b18081..0947adcce2943307762dbed6160ca76c128311cb 100644 (file)
@@ -66,11 +66,11 @@ F_STRING* resize_string(F_STRING* string, F_FIXNUM capacity, u16 fill)
 
 void primitive_resize_string(void)
 {
-       F_STRING* string; CELL capacity;
-       maybe_gc(0);
+       F_STRING* string;
+       CELL capacity = to_fixnum(dpeek2());
+       maybe_gc(string_size(capacity));
        string = untag_string_fast(dpop());
-       capacity = to_fixnum(dpop());
-       dpush(tag_object(resize_string(string,capacity,F)));
+       drepl(tag_object(resize_string(string,capacity,F)));
 }
 
 F_STRING *memory_to_string(const BYTE* string, CELL length)