[#7968] array .{first, last, at} — Kazunori NISHI <kazunori@...>

西@九大です。

25 messages 1999/10/07
[#7969] Re: array .{first, last, at} — nobu.nakada@... 1999/10/07

なかだです。

[#7983] Re: array .{first, last, at} — Kazunori NISHI <kazunori@...> 1999/10/12

西@九大です。

[#7984] Re: array .{first, last, at} — matz@... (Yukihiro Matsumoto) 1999/10/12

まつもと ゆきひろです

[#7985] [patch] Array#delete_at w/ minus value — EGUCHI Osamu <eguchi@...> 1999/10/12

えぐち@エスアンドイーです。

[ruby-dev:8124] [BUG] Marshal.load

From: Koji Arai <JCA02266@...>
Date: 1999-10-26 21:02:38 UTC
List: ruby-dev #8124
新井です。

久々のバグ報告です。

#!/usr/local/bin/ruby

before = [Object, Object]
p before

after = Marshal.load(Marshal.dump(before))
p after
__END__

が

[Object, Object]
[Object, nil]

となります。パッチつけます。


Index: marshal.c
===================================================================
RCS file: /home/cvs/ruby/marshal.c,v
retrieving revision 1.4
diff -u -r1.4 marshal.c
--- marshal.c	1999/10/20 07:10:22	1.4
+++ marshal.c	1999/10/26 19:20:54
@@ -617,10 +617,11 @@
     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 @@
         {
 	    char *buf;
 	    r_bytes(buf, arg);
-	    return rb_path2class(buf);
+	    return r_regist(rb_path2class(buf), arg);
 	}
 
       default:

In This Thread

Prev Next