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

ruby-changes:14988

From: ko1 <ko1@a...>
Date: Wed, 10 Mar 2010 04:21:58 +0900 (JST)
Subject: [ruby-changes:14988] Ruby:r26862 (trunk): * compile.c (defined_expr), insns.def (defined): fix to pass a Symbol

ko1	2010-03-10 04:21:37 +0900 (Wed, 10 Mar 2010)

  New Revision: 26862

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

  Log:
    * compile.c (defined_expr), insns.def (defined): fix to pass a Symbol
      object such as :$foo for the "defined?($foo)" expression
      on defined instruction.  This patch fixes ISeq#to_a/load.

  Modified files:
    trunk/ChangeLog
    trunk/compile.c
    trunk/insns.def
    trunk/version.h

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 26861)
+++ ChangeLog	(revision 26862)
@@ -1,3 +1,9 @@
+Wed Mar 10 04:17:08 2010  Koichi Sasada  <ko1@a...>
+
+	* compile.c (defined_expr), insns.def (defined): fix to pass a Symbol
+	  object such as :$foo for the "defined?($foo)" expression
+	  on defined instruction.  This patch fixes ISeq#to_a/load.
+
 Tue Mar  9 20:50:09 2010  Yusuke Endoh  <mame@t...>
 
 	* test/dl/test_method.rb: delete a residual test for dl on libffi.
Index: insns.def
===================================================================
--- insns.def	(revision 26861)
+++ insns.def	(revision 26862)
@@ -764,7 +764,7 @@
 	klass = vm_get_cbase(GET_ISEQ(), GET_LFP(), GET_DFP());
 	break;
       case DEFINED_GVAR:
-	if (rb_gvar_defined((struct rb_global_entry *)(obj & ~1))) {
+	if (rb_gvar_defined(rb_global_entry(SYM2ID(obj)))) {
 	    expr_type = "global-variable";
 	}
 	break;
Index: compile.c
===================================================================
--- compile.c	(revision 26861)
+++ compile.c	(revision 26862)
@@ -2623,7 +2623,7 @@
       case NODE_GVAR:
 	ADD_INSN(ret, nd_line(node), putnil);
 	ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_GVAR),
-		  ((VALUE)node->nd_entry) | 1, needstr);
+		  ID2SYM(node->nd_entry->id), needstr);
 	return 1;
 
       case NODE_CVAR:
Index: version.h
===================================================================
--- version.h	(revision 26861)
+++ version.h	(revision 26862)
@@ -1,5 +1,5 @@
 #define RUBY_VERSION "1.9.2"
-#define RUBY_RELEASE_DATE "2010-03-09"
+#define RUBY_RELEASE_DATE "2010-03-10"
 #define RUBY_PATCHLEVEL -1
 #define RUBY_BRANCH_NAME "trunk"
 
@@ -8,7 +8,7 @@
 #define RUBY_VERSION_TEENY 1
 #define RUBY_RELEASE_YEAR 2010
 #define RUBY_RELEASE_MONTH 3
-#define RUBY_RELEASE_DAY 9
+#define RUBY_RELEASE_DAY 10
 
 #include "ruby/version.h"
 

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

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