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/