diff --git a/ChangeLog b/ChangeLog index 28b213dccb..c51c8fa5e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Thu Jan 31 17:30:42 2008 NAKAMURA Usaku + + * marshal.c (r_object0): no need to call r_entry for immediate values. + Thu Jan 31 15:46:30 2008 NAKAMURA Usaku * lib/rdoc/ri/formatter.rb (output): add accessor. diff --git a/bootstraptest/test_marshal.rb b/bootstraptest/test_marshal.rb index ecbcb60c91..7e34176169 100644 --- a/bootstraptest/test_marshal.rb +++ b/bootstraptest/test_marshal.rb @@ -1,5 +1,5 @@ assert_normal_exit %q{ - Marshal.load(Marshal.dump({"k"=>"v"}), lambda {|v| }) + Marshal.load(Marshal.dump({"k"=>"v"}), lambda {|v| v}) } diff --git a/marshal.c b/marshal.c index 724f420d71..2cf9a19f56 100644 --- a/marshal.c +++ b/marshal.c @@ -1208,19 +1208,16 @@ r_object0(struct load_arg *arg, int *ivp, VALUE extmod) case TYPE_NIL: v = Qnil; - v = r_entry(v, arg); v = r_leave(v, arg); break; case TYPE_TRUE: v = Qtrue; - v = r_entry(v, arg); v = r_leave(v, arg); break; case TYPE_FALSE: v = Qfalse; - v = r_entry(v, arg); v = r_leave(v, arg); break; @@ -1229,7 +1226,6 @@ r_object0(struct load_arg *arg, int *ivp, VALUE extmod) long i = r_long(arg); v = LONG2FIX(i); } - v = r_entry(v, arg); v = r_leave(v, arg); break; @@ -1505,7 +1501,6 @@ r_object0(struct load_arg *arg, int *ivp, VALUE extmod) case TYPE_SYMBOL: v = ID2SYM(r_symreal(arg)); - v = r_entry(v, arg); v = r_leave(v, arg); break;