summaryrefslogtreecommitdiff
path: root/marshal.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-10-27 04:20:00 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-10-27 04:20:00 +0000
commit3b835a5c51d93cb3aac96bfe4699db4d04167e59 (patch)
treedeff91eafc40fa84980031290787fd8300c7c4e9 /marshal.c
parentc431dc685ef2f74e8d415abc9150c3a3e97eb531 (diff)
register class/module
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'marshal.c')
-rw-r--r--marshal.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/marshal.c b/marshal.c
index 657be5a1b4..4f13724a27 100644
--- a/marshal.c
+++ b/marshal.c
@@ -617,10 +617,11 @@ r_object(arg)
switch (type) {
case TYPE_LINK:
id = r_long(arg);
- if (v = rb_hash_aref(arg->data, INT2FIX(id))) {
- return v;
+ v = rb_hash_aref(arg->data, INT2FIX(id));
+ if (NIL_P(v)) {
+ rb_raise(rb_eArgError, "dump format error (unlinked)");
}
- rb_raise(rb_eArgError, "dump format error (unlinked)");
+ return v;
break;
case TYPE_UCLASS:
@@ -791,7 +792,7 @@ r_object(arg)
{
char *buf;
r_bytes(buf, arg);
- return rb_path2class(buf);
+ return r_regist(rb_path2class(buf), arg);
}
default: