[macruby-changes] [4199] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Thu Jun 3 13:20:21 PDT 2010
Revision: 4199
http://trac.macosforge.org/projects/ruby/changeset/4199
Author: martinlagardette at apple.com
Date: 2010-06-03 13:20:19 -0700 (Thu, 03 Jun 2010)
Log Message:
-----------
Misc. fixes related to r4197
Revision Links:
--------------
http://trac.macosforge.org/projects/ruby/changeset/4197
Modified Paths:
--------------
MacRuby/trunk/object.c
MacRuby/trunk/string.c
Modified: MacRuby/trunk/object.c
===================================================================
--- MacRuby/trunk/object.c 2010-06-03 20:02:32 UTC (rev 4198)
+++ MacRuby/trunk/object.c 2010-06-03 20:20:19 UTC (rev 4199)
@@ -2680,6 +2680,9 @@
s = RSTRING_PTR(str);
len = RSTRING_LEN(str);
if (s) {
+ if (badcheck && memchr(s, '\0', len)) {
+ rb_raise(rb_eArgError, "string for Float contains null byte");
+ }
if (s[len]) { /* no sentinel somehow */
char *p = ALLOCA_N(char, len+1);
@@ -2687,9 +2690,6 @@
p[len] = '\0';
s = p;
}
- if (badcheck && len != strlen(s)) {
- rb_raise(rb_eArgError, "string for Float contains null byte");
- }
}
return rb_cstr_to_dbl(s, badcheck);
}
@@ -2708,7 +2708,7 @@
return DOUBLE2NUM(rb_big2dbl(val));
case T_STRING:
- return DOUBLE2NUM(rb_str_to_dbl(val, Qtrue));
+ return DOUBLE2NUM(rb_str_to_dbl(val, 1));
case T_NIL:
rb_raise(rb_eTypeError, "can't convert nil into Float");
Modified: MacRuby/trunk/string.c
===================================================================
--- MacRuby/trunk/string.c 2010-06-03 20:02:32 UTC (rev 4198)
+++ MacRuby/trunk/string.c 2010-06-03 20:20:19 UTC (rev 4199)
@@ -3414,7 +3414,7 @@
static VALUE
rstr_to_f(VALUE str, SEL sel)
{
- return DOUBLE2NUM(rb_str_to_dbl(str, Qfalse));
+ return DOUBLE2NUM(rb_str_to_dbl(str, 0));
}
/*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100603/ad1bbb70/attachment.html>
More information about the macruby-changes
mailing list