summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/gc.c b/gc.c
index 6c83bd43b5..88de1d506a 100644
--- a/gc.c
+++ b/gc.c
@@ -1174,16 +1174,10 @@ obj_free(VALUE obj)
}
break;
case T_STRING:
- if (FL_TEST(obj, RSTRING_NOEMBED) &&
- RANY(obj)->as.string.as.heap.ptr && !FL_TEST(obj, ELTS_SHARED)) {
- RUBY_CRITICAL(free(RANY(obj)->as.string.as.heap.ptr));
- }
+ rb_str_free(obj);
break;
case T_ARRAY:
- if (FL_TEST(obj, RARRAY_NOEMBED) &&
- RANY(obj)->as.array.as.heap.ptr && !FL_TEST(obj, ELTS_SHARED)) {
- RUBY_CRITICAL(free(RANY(obj)->as.array.as.heap.ptr));
- }
+ rb_ary_free(obj);
break;
case T_HASH:
if (RANY(obj)->as.hash.tbl) {