summaryrefslogtreecommitdiff
path: root/marshal.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-02-27 04:52:21 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-02-27 04:52:21 +0000
commit3fc04d9361549d5bb15f869c22d7ce9591a0ac8c (patch)
treeb160a4f2ed1605c1a4ef62d6c568ff807fda24c5 /marshal.c
parent2fcd221fecabe3e6acaa21c54ae6d1ccbe8c0204 (diff)
* ext/dbm/dbm.c (fdbm_select): 1.7 behavior.
* ext/gdbm/gdbm.c (fgdbm_select): ditto. * ext/sdbm/sdbm.c (fsdbm_select): ditto. * ext/dbm/dbm.c (fdbm_delete): adopt Hash#delete behavior. * ext/sdbm/sdbm.c (fsdbm_delete): ditto. * ext/gdbm/gdbm.c: need not to dup key to the block. * ext/sdbm/sdbm.c : replace RuntimeError with SDBMError. * eval.c (rb_f_missing): NoMethod error messages for true, false, nil must respond visibility like for other objects. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'marshal.c')
-rw-r--r--marshal.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/marshal.c b/marshal.c
index 8b71e90..28f5464 100644
--- a/marshal.c
+++ b/marshal.c
@@ -901,11 +901,10 @@ r_object(arg)
len--;
#endif
}
- big = RBIGNUM(rb_big_norm((VALUE)big));
- if (TYPE(big) == T_BIGNUM) {
- r_regist((VALUE)big, arg);
+ v = rb_big_norm((VALUE)big);
+ if (TYPE(v) == T_BIGNUM) {
+ r_regist(v, arg);
}
- v = (VALUE)big;
}
break;
@@ -1009,10 +1008,10 @@ r_object(arg)
klass = rb_path2class(r_unique(arg));
v = rb_obj_alloc(klass);
- r_regist(v, arg);
if (TYPE(v) != T_OBJECT) {
rb_raise(rb_eArgError, "dump format error");
}
+ r_regist(v, arg);
r_ivar(v, arg);
}
break;
@@ -1051,9 +1050,10 @@ r_object(arg)
case TYPE_SYMBOL:
v = ID2SYM(r_symreal(arg));
+ break;
case TYPE_SYMLINK:
- v = ID2SYM(r_symlink(arg));
+ return ID2SYM(r_symlink(arg));
default:
rb_raise(rb_eArgError, "dump format error(0x%x)", type);