diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-09-26 22:46:16 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-09-26 22:46:16 +0000 |
commit | 1113d54edecb68eaa55aa07996dec3b6fd8422f6 (patch) | |
tree | 52b715db59bef14d7e9d82b0e7c38660354a84f3 /gc.c | |
parent | 4f6f0b1066be455ccc3f1ad80dd42c3f54068c7f (diff) | |
download | ruby-1113d54edecb68eaa55aa07996dec3b6fd8422f6.tar.gz |
* array.c (rb_ary_shift): shift/unshift performance boost patch,
based on the patch from Eric Mahurin <eric_mahurin at yahoo.com>.
[ruby-core:05861]
* array.c (rb_ary_unshift_m): ditto.
* array.c (ary_make_shared): ditto.
* array.c (RESIZE_CAPA): ditto.
* array.c (rb_ary_free): new function to free memory. code moved
from gc.c.
* string.c (rb_str_free): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 10 |
1 files changed, 2 insertions, 8 deletions
@@ -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) { |