ruby-changes:1920
From: ko1@a...
Date: 8 Sep 2007 10:23:12 +0900
Subject: [ruby-changes:1920] matz - Ruby:r13411 (ruby_1_8): * struct.c (rb_struct_s_members): should raise TypeError instead
matz 2007-09-08 10:22:58 +0900 (Sat, 08 Sep 2007)
New Revision: 13411
Modified files:
branches/ruby_1_8/ChangeLog
branches/ruby_1_8/marshal.c
branches/ruby_1_8/struct.c
branches/ruby_1_8/version.h
Log:
* struct.c (rb_struct_s_members): should raise TypeError instead
of call rb_bug(). [ruby-dev:31709]
* marshal.c (r_object0): no nil check require any more.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=13411&r2=13410
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/struct.c?r1=13411&r2=13410
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/version.h?r1=13411&r2=13410
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/marshal.c?r1=13411&r2=13410
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog (revision 13410)
+++ ruby_1_8/ChangeLog (revision 13411)
@@ -1,3 +1,10 @@
+Sat Sep 8 10:22:20 2007 Yukihiro Matsumoto <matz@r...>
+
+ * struct.c (rb_struct_s_members): should raise TypeError instead
+ of call rb_bug(). [ruby-dev:31709]
+
+ * marshal.c (r_object0): no nil check require any more.
+
Sat Sep 8 09:38:19 2007 Tadayoshi Funaba <tadf@d...>
* lib/date/format.rb (str[fp]time): now check specifications more
Index: ruby_1_8/version.h
===================================================================
--- ruby_1_8/version.h (revision 13410)
+++ ruby_1_8/version.h (revision 13411)
@@ -1,7 +1,7 @@
#define RUBY_VERSION "1.8.6"
-#define RUBY_RELEASE_DATE "2007-09-05"
+#define RUBY_RELEASE_DATE "2007-09-08"
#define RUBY_VERSION_CODE 186
-#define RUBY_RELEASE_CODE 20070905
+#define RUBY_RELEASE_CODE 20070908
#define RUBY_PATCHLEVEL 5000
#define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
#define RUBY_VERSION_TEENY 6
#define RUBY_RELEASE_YEAR 2007
#define RUBY_RELEASE_MONTH 9
-#define RUBY_RELEASE_DAY 5
+#define RUBY_RELEASE_DAY 8
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];
Index: ruby_1_8/marshal.c
===================================================================
--- ruby_1_8/marshal.c (revision 13410)
+++ ruby_1_8/marshal.c (revision 13411)
@@ -1199,9 +1199,6 @@
klass = path2class(r_unique(arg));
mem = rb_struct_s_members(klass);
- if (mem == Qnil) {
- rb_raise(rb_eTypeError, "uninitialized struct");
- }
len = r_long(arg);
values = rb_ary_new2(len);
Index: ruby_1_8/struct.c
===================================================================
--- ruby_1_8/struct.c (revision 13410)
+++ ruby_1_8/struct.c (revision 13411)
@@ -41,8 +41,11 @@
VALUE members = rb_struct_iv_get(klass, "__members__");
if (NIL_P(members)) {
- rb_bug("non-initialized struct");
+ rb_raise(rb_eTypeError, "uninitialized struct");
}
+ if (TYPE(members) != T_ARRAY) {
+ rb_raise(rb_eTypeError, "corrupted struct");
+ }
return members;
}
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml