ruby-changes:18666
From: yugui <ko1@a...>
Date: Fri, 28 Jan 2011 11:26:12 +0900 (JST)
Subject: [ruby-changes:18666] Ruby:r30690 (ruby_1_9_2): merges r30601 from trunk into ruby_1_9_2.
yugui 2011-01-28 11:25:26 +0900 (Fri, 28 Jan 2011) New Revision: 30690 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30690 Log: merges r30601 from trunk into ruby_1_9_2. -- * proc.c (proc_call): Add gc guard to avoid segfault. The fix is created by Tomoyuki Chikanaga. [Bug #4238][ruby-dev:42963] Modified files: branches/ruby_1_9_2/ChangeLog branches/ruby_1_9_2/proc.c branches/ruby_1_9_2/version.h Index: ruby_1_9_2/ChangeLog =================================================================== --- ruby_1_9_2/ChangeLog (revision 30689) +++ ruby_1_9_2/ChangeLog (revision 30690) @@ -1,3 +1,8 @@ +Wed Jan 19 13:04:16 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * proc.c (proc_call): Add gc guard to avoid segfault. The fix + is created by Tomoyuki Chikanaga. [Bug #4238][ruby-dev:42963] + Tue Jan 18 23:31:01 2011 Yusuke Endoh <mame@t...> * parse.y: avoid NULL reference. [ruby-dev:43067] Index: ruby_1_9_2/proc.c =================================================================== --- ruby_1_9_2/proc.c (revision 30689) +++ ruby_1_9_2/proc.c (revision 30690) @@ -540,16 +540,16 @@ rb_proc_t *proc; rb_block_t *blockptr = 0; rb_iseq_t *iseq; + VALUE passed_procval; GetProcPtr(procval, proc); iseq = proc->block.iseq; if (BUILTIN_TYPE(iseq) == T_NODE || iseq->arg_block != -1) { if (rb_block_given_p()) { - rb_proc_t *proc; - VALUE procval; - procval = rb_block_proc(); - GetProcPtr(procval, proc); - blockptr = &proc->block; + rb_proc_t *passed_proc; + RB_GC_GUARD(passed_procval) = rb_block_proc(); + GetProcPtr(passed_procval, passed_proc); + blockptr = &passed_proc->block; } } Index: ruby_1_9_2/version.h =================================================================== --- ruby_1_9_2/version.h (revision 30689) +++ ruby_1_9_2/version.h (revision 30690) @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.2" -#define RUBY_PATCHLEVEL 167 +#define RUBY_PATCHLEVEL 168 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/