[#14922] alias $gvar — Koji Arai <JCA02266@...>

新井です。

19 messages 2001/10/14

[#15006] Re: eval.c (rb_stack_check): prohibit recursive raising error — WATANABE Hirofumi <eban@...>

わたなべです。

13 messages 2001/10/26
[#15008] Re: eval.c (rb_stack_check): prohibit recursive raising error — Shugo Maeda <shugo@...> 2001/10/26

前田です。

[ruby-dev:14973] Re: [PATCH] Marshal.load/dump

From: nobu.nakada@...
Date: 2001-10-22 06:51:14 UTC
List: ruby-dev #14973
なかだです。

At Mon, 22 Oct 2001 12:58:30 +0900,
Tanaka Akira <akr@m17n.org> wrote:
> % ruby -e 'Marshal.load(Marshal.dump(String.clone.new("abc")))' 
> -e:1:in `load': dump format error (user class) (ArgumentError)
>         from -e:1
> % ruby -v
> ruby 1.7.1 (2001-10-21) [i386-freebsd4.2]
> 
> というように、状況に変化はないようです。

 すいません。試したつもりだったんですが、なにか間違ってたよう
です。とりあえずclasspathで比較するようにしてみました。


Index: marshal.c
===================================================================
RCS file: /cvs/ruby/src/ruby/marshal.c,v
retrieving revision 1.48
diff -u -2 -p -r1.48 marshal.c
--- marshal.c	2001/10/19 14:32:51	1.48
+++ marshal.c	2001/10/22 06:43:15
@@ -248,7 +248,9 @@ w_uclass(obj, klass, arg)
     struct dump_arg *arg;
 {
-    if (rb_class_real(CLASS_OF(obj)) != klass) {
+    char *name;
+    if (rb_class_real(CLASS_OF(obj)) != klass &&
+	strcmp(name = RSTRING(rb_mod_name(CLASS_OF(obj)))->ptr, RSTRING(rb_mod_name(klass))->ptr)) {
 	w_byte(TYPE_UCLASS, arg);
-	w_unique(rb_class2name(CLASS_OF(obj)), arg);
+	w_unique(name, arg);
     }
 }


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread