summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-09-26 22:46:16 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-09-26 22:46:16 +0000
commit1113d54edecb68eaa55aa07996dec3b6fd8422f6 (patch)
tree52b715db59bef14d7e9d82b0e7c38660354a84f3 /string.c
parent4f6f0b1066be455ccc3f1ad80dd42c3f54068c7f (diff)
* 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 'string.c')
-rw-r--r--string.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/string.c b/string.c
index 8cd93a69b5..9a45d2f5ce 100644
--- a/string.c
+++ b/string.c
@@ -299,6 +299,14 @@ rb_str_buf_new2(const char *ptr)
return str;
}
+void
+rb_str_free(VALUE str)
+{
+ if (!STR_EMBED_P(str) && !STR_SHARED_P(str)) {
+ xfree(RSTRING(str)->as.heap.ptr);
+ }
+}
+
VALUE
rb_str_to_str(VALUE str)
{