summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ext/nkf/nkf.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index dcf607cccb..85c254a552 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);