diff --git a/ChangeLog b/ChangeLog index 4e126abe55..e5f95bbaf0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Jan 31 15:06:50 2008 NARUSE, Yui + + * marshal.c (r_object0): call r_entry/r_leave to call proc when TYPE_FIXNUM, + TYPE_NIL, TYPE_TRUE, TYPE_FALSE, TYPE_SYMBOL. + Thu Jan 31 14:03:38 2008 NAKAMURA Usaku * lib/rdoc/ri/display.rb (display_method_list, display_class_list): diff --git a/marshal.c b/marshal.c index 77205a45a6..724f420d71 100644 --- a/marshal.c +++ b/marshal.c @@ -1208,14 +1208,20 @@ 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; case TYPE_FIXNUM: @@ -1223,6 +1229,8 @@ 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; case TYPE_FLOAT: @@ -1497,6 +1505,8 @@ 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; case TYPE_SYMLINK: