aboutsummaryrefslogtreecommitdiffstats
path: root/string.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-13 11:52:15 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-13 11:52:15 +0000
commit9595af4ad59f9a8f98941d22619b61206be1a4c2 (patch)
treeeb27cc82ab0c9674639ba858812f2432320b1019 /string.c
parent719841ca3779e22bb8ad3d2f4d3fc93d0db62030 (diff)
downloadruby-9595af4ad59f9a8f98941d22619b61206be1a4c2.tar.gz
* string.c (rb_str_shared_replace): make str noembed after free.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/string.c b/string.c
index 2ab8082817..edbc8d6d6e 100644
--- a/string.c
+++ b/string.c
@@ -402,10 +402,10 @@ rb_str_shared_replace(VALUE str, VALUE str2)
STR_SET_EMBED_LEN(str, RSTRING_LEN(str2));
return;
}
- STR_SET_NOEMBED(str);
if (!STR_SHARED_P(str) && !STR_EMBED_P(str)) {
free(RSTRING_PTR(str));
}
+ STR_SET_NOEMBED(str);
STR_UNSET_NOCAPA(str);
RSTRING(str)->as.heap.ptr = RSTRING_PTR(str2);
RSTRING(str)->as.heap.len = RSTRING_LEN(str2);