diff --git a/ChangeLog b/ChangeLog index 06e48d57d3..5cea64c200 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,14 @@ Sun Feb 4 02:22:59 2007 Akinori MUSHA * lib/cgi.rb (CGI::QueryExtension::read_multipart): Remove a debug print. +Sat Feb 3 23:21:13 2007 Yukihiro Matsumoto + + * insns.def (setclassvariable): remove unnecessary operand. + + * compile.c (iseq_compile_each): ditto. + + * common.mk (insns_info.inc): add dependency for insns_info.inc. + Sat Feb 3 14:32:58 2007 Masaki Suketa * ext/win32ole/win32ole.c (ole_val2olevariantdata, ole_val2variant): diff --git a/common.mk b/common.mk index 7fde34b98f..7a63492083 100644 --- a/common.mk +++ b/common.mk @@ -558,9 +558,12 @@ optinsn.inc: optunifs.inc: $(BASERUBY) $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) optunifs.inc -insns.inc: +insns.inc: $(srcdir)/insns.def $(BASERUBY) $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) +insns_info.inc: $(srcdir)/insns.def + $(BASERUBY) $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) insns_info.inc + vmtc.inc: $(BASERUBY) $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) vmtc.inc diff --git a/compile.c b/compile.c index 41c69efd20..5455bd7034 100644 --- a/compile.c +++ b/compile.c @@ -3351,9 +3351,8 @@ iseq_compile_each(yarv_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped) if (!poped) { ADD_INSN(ret, nd_line(node), dup); } - ADD_INSN2(ret, nd_line(node), setclassvariable, - ID2SYM(node->nd_vid), - Qfalse); + ADD_INSN1(ret, nd_line(node), setclassvariable, + ID2SYM(node->nd_vid)); break; } case NODE_OP_ASGN1:{ diff --git a/insns.def b/insns.def index f02adb2b4f..99401cc395 100644 --- a/insns.def +++ b/insns.def @@ -222,16 +222,11 @@ getclassvariable */ DEFINE_INSN setclassvariable -(ID id, VALUE declp) +(ID id) (VALUE val) () { - VALUE klass = eval_get_cvar_base(th, GET_ISEQ()); - - if (declp == Qtrue && RTEST(ruby_verbose) && FL_TEST(klass, FL_SINGLETON)) { - rb_warn("declaring singleton class variable"); - } - rb_cvar_set(klass, id, val); + rb_cvar_set(eval_get_cvar_base(th, GET_ISEQ()), id, val); } /**