diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/nkf/nkf.c | 3 |
2 files changed, 7 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Mon Oct 27 01:05:48 2008 NARUSE, Yui <naruse@ruby-lang.org> + + * ext/nkf/nkf.c (rb_nkf_convert): avoid GC. + reported in [ruby-dev:36909] and patched [ruby-dev:36941] by mame. + Sun Oct 26 21:28:42 2008 Yusuke Endoh <mame@tsg.ne.jp> * test/json/test_json.rb: remove dependency on permutation gem. diff --git a/ext/nkf/nkf.c b/ext/nkf/nkf.c index a0c14b55a4..d9db1de086 100644 --- a/ext/nkf/nkf.c +++ b/ext/nkf/nkf.c @@ -135,6 +135,7 @@ int nkf_split_options(const char *arg) static VALUE rb_nkf_convert(VALUE obj, VALUE opt, VALUE src) { + volatile tmp; reinit(); StringValue(opt); nkf_split_options(RSTRING_PTR(opt)); @@ -155,7 +156,7 @@ rb_nkf_convert(VALUE obj, VALUE opt, VALUE src) StringValue(src); input = (unsigned char *)RSTRING_PTR(src); i_len = RSTRING_LEN(src); - result = rb_str_new(0, i_len*3 + 10); + tmp = result = rb_str_new(0, i_len*3 + 10); output_ctr = 0; output = (unsigned char *)RSTRING_PTR(result); |