* 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.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2010-03-09 19:21:37 +00:00
parent bbcb186ae6
commit 9da12c5850
4 changed files with 10 additions and 4 deletions

View file

@ -764,7 +764,7 @@ defined
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;