[ruby-talk:00229] [patch] marshal.c

From: Shugo Maeda <shugo@...>
Date: 1999-02-11 16:24:56 UTC
List: ruby-talk #229
Marshal::dump does not work correctly with user specified _load method.

Shugo
--- marshal.c.orig	Fri Feb 12 00:44:13 1999
+++ marshal.c	Fri Feb 12 00:46:28 1999
@@ -253,7 +253,7 @@
 
 	    w_byte(TYPE_USERDEF, arg);
 	    w_unique(rb_class2name(CLASS_OF(obj)), arg);
-	    v = rb_funcall(obj, s_dump, 1, limit);
+	    v = rb_funcall(obj, s_dump, 1, INT2NUM(limit));
 	    if (TYPE(v) != T_STRING) {
 		rb_raise(rb_eTypeError, "_dump_to must return String");
 	    }
@@ -755,7 +755,7 @@
 		v = rb_funcall(klass, s_load, 1, r_string(arg));
 		return r_regist(v, arg);
 	    }
-	    rb_raise(rb_eTypeError, "class %s needs to have method `_load_from'",
+	    rb_raise(rb_eTypeError, "class %s needs to have method `_load'",
 		     rb_class2name(klass));
 	}
         break;

In This Thread

Prev Next