From e60deb155585c410b85d417002d1f4f32062de19 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 19 Feb 2002 06:43:58 +0000 Subject: * file.c (path_check_1): should check directory sticky bits. * process.c (security): need not to warn twice. * marshal.c (r_object): complete restoration before calling r_regist(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- marshal.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'marshal.c') diff --git a/marshal.c b/marshal.c index 72ac20ae6f..5966a7659d 100644 --- a/marshal.c +++ b/marshal.c @@ -927,11 +927,10 @@ r_object(arg) volatile long len = r_long(arg); /* gcc 2.7.2.3 -O2 bug?? */ v = rb_ary_new2(len); - r_regist(v, arg); while (len--) { rb_ary_push(v, r_object(arg)); } - return v; + return r_regist(v, arg);; } case TYPE_HASH: @@ -940,7 +939,6 @@ r_object(arg) long len = r_long(arg); v = rb_hash_new(); - r_regist(v, arg); while (len--) { VALUE key = r_object(arg); VALUE value = r_object(arg); @@ -949,7 +947,7 @@ r_object(arg) if (type == TYPE_HASH_DEF) { RHASH(v)->ifnone = r_object(arg); } - return v; + return r_regist(v, arg); } case TYPE_STRUCT: @@ -971,7 +969,6 @@ r_object(arg) rb_ary_push(values, Qnil); } v = rb_struct_alloc(klass, values); - r_regist(v, arg); for (i=0; i