diff --git a/ChangeLog b/ChangeLog index bdec9ca33f..6f7b9d2768 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Jun 15 15:55:55 2007 Koichi Sasada + + * insns.def(setconstant, toregexp): fix to mark object correctly. + Fri Jun 15 13:24:18 2007 Koichi Sasada * hash.c: exchange semantics of Hash#each and Hash#each_pair. diff --git a/insns.def b/insns.def index 02ffe11673..91607ef952 100644 --- a/insns.def +++ b/insns.def @@ -285,9 +285,11 @@ setconstant case T_CLASS: case T_MODULE: break; - default: + default: { + volatile VALUE tmp = rb_obj_as_string(klass); rb_raise(rb_eTypeError, "%s is not a class/module", - RSTRING_PTR(rb_obj_as_string(klass))); + RSTRING_PTR(tmp)); + } } rb_const_set(klass, id, val); @@ -446,6 +448,7 @@ toregexp (VALUE str) (VALUE val) { + volatile VALUE tmp = str; val = rb_reg_new(RSTRING_PTR(str), RSTRING_LEN(str), flag); }