diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/-test-/bug-3652/bug.c | 16 | ||||
-rw-r--r-- | ext/-test-/bug-3652/extconf.rb | 1 | ||||
-rw-r--r-- | string.c | 2 | ||||
-rw-r--r-- | test/-ext-/test_bug-3652.rb | 12 |
5 files changed, 1 insertions, 35 deletions
@@ -3,11 +3,6 @@ Wed Aug 4 19:37:00 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * string.c (rb_str_set_len): rb_str_modify cannot work before the length is set, which is a precondition for rb_str_modify. -Wed Aug 4 16:09:43 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> - - * string.c (rb_str_resize): should copy the content properly. a - patch from Jeremy Evans at [ruby-core:31615]. - Wed Aug 4 15:47:21 2010 NAKAMURA Usaku <usa@ruby-lang.org> * lib/mkmf.rb (create_makefile): no need to create the directory diff --git a/ext/-test-/bug-3652/bug.c b/ext/-test-/bug-3652/bug.c deleted file mode 100644 index 290ac2ddee..0000000000 --- a/ext/-test-/bug-3652/bug.c +++ /dev/null @@ -1,16 +0,0 @@ -#include <ruby.h> - -static VALUE -bug_str_resize(VALUE self, VALUE init, VALUE repl) -{ - long initlen = NUM2LONG(init); - VALUE s = rb_str_buf_new(initlen); - return rb_str_resize(s, strlcpy(RSTRING_PTR(s), StringValueCStr(repl), (size_t)initlen)); -} - -void -Init_bug(void) -{ - VALUE mBug = rb_define_module("Bug"); - rb_define_module_function(mBug, "str_resize", bug_str_resize, 2); -} diff --git a/ext/-test-/bug-3652/extconf.rb b/ext/-test-/bug-3652/extconf.rb deleted file mode 100644 index 44f57b41c8..0000000000 --- a/ext/-test-/bug-3652/extconf.rb +++ /dev/null @@ -1 +0,0 @@ -create_makefile("-test-/bug-3652/bug") @@ -1723,7 +1723,7 @@ rb_str_resize(VALUE str, long len) else if (len <= RSTRING_EMBED_LEN_MAX) { char *ptr = RSTRING(str)->as.heap.ptr; STR_SET_EMBED(str); - if (len > 0) MEMCPY(RSTRING(str)->as.ary, ptr, char, len); + if (slen > 0) MEMCPY(RSTRING(str)->as.ary, ptr, char, slen); RSTRING(str)->as.ary[len] = '\0'; STR_SET_EMBED_LEN(str, len); if (independent) xfree(ptr); diff --git a/test/-ext-/test_bug-3652.rb b/test/-ext-/test_bug-3652.rb deleted file mode 100644 index 0e4d658081..0000000000 --- a/test/-ext-/test_bug-3652.rb +++ /dev/null @@ -1,12 +0,0 @@ -require 'test/unit' -require '-test-/bug-3652/bug' - -class Test_BUG_3652 < Test::Unit::TestCase - def test_block_call_id - bug3652 = '[ruby-core:31615]' - s = "123456789012345678901234" - assert_equal(s, Bug.str_resize(127, s), bug3652) - s = "123456789" - assert_equal(s, Bug.str_resize(127, s), bug3652) - end -end |