Modified: MacRuby/trunk/rational.c (4360 => 4361)
--- MacRuby/trunk/rational.c 2010-07-14 20:37:07 UTC (rev 4360)
+++ MacRuby/trunk/rational.c 2010-07-14 23:32:17 UTC (rev 4361)
@@ -1582,13 +1582,13 @@
nurat_marshal_load(VALUE self, SEL sel, VALUE a)
{
get_dat1(self);
- dat->num = RARRAY_PTR(a)[0];
- dat->den = RARRAY_PTR(a)[1];
- rb_copy_generic_ivar(self, a);
-
- if (f_zero_p(dat->den))
+ VALUE ary = rb_convert_type(a, T_ARRAY, "Array", "to_ary");
+ dat->num = RARRAY_AT(ary, 0);
+ dat->den = RARRAY_AT(ary ,1);
+ rb_copy_generic_ivar(self, ary);
+ if (f_zero_p(dat->den)) {
rb_raise_zerodiv();
-
+ }
return self;
}