[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]