summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--string.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ed832fe647..d69bbff03e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,9 @@ Mon Dec 24 02:59:32 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
* io.c (prepare_getline_args): convert RS to external encoding.
+ * string.c (str_new_shared): was setting embedding flag of wrong
+ string object. [ruby-dev:32685]
+
Mon Dec 24 02:06:35 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
* io.c (rb_f_open): documentation update.
diff --git a/string.c b/string.c
index 728790f6fd..271960d730 100644
--- a/string.c
+++ b/string.c
@@ -245,7 +245,7 @@ str_new_shared(VALUE klass, VALUE str)
VALUE str2 = str_alloc(klass);
if (RSTRING_LEN(str) <= RSTRING_EMBED_LEN_MAX) {
- STR_SET_EMBED(str);
+ STR_SET_EMBED(str2);
memcpy(RSTRING_PTR(str2), RSTRING_PTR(str), RSTRING_LEN(str)+1);
STR_SET_EMBED_LEN(str2, RSTRING_LEN(str));
}