[macruby-changes] [4361] MacRuby/trunk/rational.c

source_changes at macosforge.org source_changes at macosforge.org
Wed Jul 14 16:32:18 PDT 2010


Revision: 4361
          http://trac.macosforge.org/projects/ruby/changeset/4361
Author:   lsansonetti at apple.com
Date:     2010-07-14 16:32:17 -0700 (Wed, 14 Jul 2010)
Log Message:
-----------
<rdar://problem/8191999> rubyfuzz: crash in rb_ary_ptr / rb_rational_reciprocal

Modified Paths:
--------------
    MacRuby/trunk/rational.c

Modified: MacRuby/trunk/rational.c
===================================================================
--- 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;
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100714/9827aac7/attachment.html>


More information about the macruby-changes mailing list