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

ruby-changes:13705

From: naruse <ko1@a...>
Date: Tue, 27 Oct 2009 05:58:41 +0900 (JST)
Subject: [ruby-changes:13705] Ruby:r25494 (trunk): * vm.c (invoke_block_from_c): return Qnil when its iseq is

naruse	2009-10-27 05:58:25 +0900 (Tue, 27 Oct 2009)

  New Revision: 25494

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25494

  Log:
    * vm.c (invoke_block_from_c): return Qnil when its iseq is
      SPECIAL CONST. [ruby-core:26335]

  Modified files:
    trunk/ChangeLog
    trunk/vm.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 25493)
+++ ChangeLog	(revision 25494)
@@ -1,3 +1,8 @@
+Tue Oct 27 05:56:39 2009  NARUSE, Yui  <naruse@r...>
+
+	* vm.c (invoke_block_from_c): return Qnil when its iseq is
+	  SPECIAL CONST. [ruby-core:26335]
+
 Tue Oct 27 05:11:49 2009  NARUSE, Yui  <naruse@r...>
 
 	* vm_exec.c (DECL_SC_REG): check defined(__asm__) before use it.
Index: vm.c
===================================================================
--- vm.c	(revision 25493)
+++ vm.c	(revision 25494)
@@ -523,7 +523,9 @@
 		    VALUE self, int argc, const VALUE *argv,
 		    const rb_block_t *blockptr, const NODE *cref)
 {
-    if (BUILTIN_TYPE(block->iseq) != T_NODE) {
+    if (SPECIAL_CONST_P(block->iseq))
+	return Qnil;
+    else if (BUILTIN_TYPE(block->iseq) != T_NODE) {
 	const rb_iseq_t *iseq = block->iseq;
 	const rb_control_frame_t *cfp;
 	int i, opt_pc, arg_size = iseq->arg_size;

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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