mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* hash.c (rb_hash_replace): should copy ifnone.
* hash.c (rb_hash_dup): should preserve HASH_PROC_DEFAULT and HASH_DELETED flags. * hash.c (rb_hash_shift): shift from empty hash should not return its default proc. * hash.c (rb_hash_default_proc): new method. [new] * array.c (rb_ary_aref): no need for Bignum check. * array.c (rb_ary_aset): explicit Bignum check removd. * numeric.c (fix_aref): normalize bignum before bit-op. * bignum.c (rb_big_rand): max may be Bignum zero. * bignum.c (rb_cstr_to_inum): should normalize bignums, to avoid returning fixable bignum value. * bignum.c (rb_uint2big): there should be no zero sized bignum. * ext/extmk.rb.in: extmake() that works properly for both tkutil (tk/tkutil.so) and digest/sha1. * hash.c (rb_hash_equal): should check HASH_PROC_DEFAULT too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
510c93caac
commit
cf5d04f663
9 changed files with 123 additions and 42 deletions
36
ChangeLog
36
ChangeLog
|
@ -1,7 +1,43 @@
|
||||||
|
Tue Aug 13 15:32:14 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* hash.c (rb_hash_replace): should copy ifnone.
|
||||||
|
|
||||||
|
* hash.c (rb_hash_dup): should preserve HASH_PROC_DEFAULT and
|
||||||
|
HASH_DELETED flags.
|
||||||
|
|
||||||
|
* hash.c (rb_hash_shift): shift from empty hash should not return
|
||||||
|
its default proc.
|
||||||
|
|
||||||
|
* hash.c (rb_hash_default_proc): new method. [new]
|
||||||
|
|
||||||
|
Tue Aug 13 00:37:11 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* array.c (rb_ary_aref): no need for Bignum check.
|
||||||
|
|
||||||
|
* array.c (rb_ary_aset): explicit Bignum check removd.
|
||||||
|
|
||||||
|
* numeric.c (fix_aref): normalize bignum before bit-op.
|
||||||
|
|
||||||
|
* bignum.c (rb_big_rand): max may be Bignum zero.
|
||||||
|
|
||||||
|
* bignum.c (rb_cstr_to_inum): should normalize bignums, to avoid
|
||||||
|
returning fixable bignum value.
|
||||||
|
|
||||||
|
* bignum.c (rb_uint2big): there should be no zero sized bignum.
|
||||||
|
|
||||||
|
Mon Aug 12 23:45:28 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* ext/extmk.rb.in: extmake() that works properly for both tkutil
|
||||||
|
(tk/tkutil.so) and digest/sha1.
|
||||||
|
|
||||||
Mon Aug 12 22:29:35 2002 Akinori MUSHA <knu@iDaemons.org>
|
Mon Aug 12 22:29:35 2002 Akinori MUSHA <knu@iDaemons.org>
|
||||||
|
|
||||||
* ruby.c (set_arg0): Correct the position of #endif.
|
* ruby.c (set_arg0): Correct the position of #endif.
|
||||||
|
|
||||||
|
Mon Aug 12 17:25:06 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* hash.c (rb_hash_equal): should check HASH_PROC_DEFAULT too.
|
||||||
|
|
||||||
Mon Aug 12 16:15:37 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
|
Mon Aug 12 16:15:37 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
|
||||||
|
|
||||||
* bignum.c (rb_big_cmp): raise for NaN. (ruby-bugs-ja:PR#284).
|
* bignum.c (rb_big_cmp): raise for NaN. (ruby-bugs-ja:PR#284).
|
||||||
|
|
21
array.c
21
array.c
|
@ -298,16 +298,21 @@ rb_ary_store(ary, idx, val)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (idx >= RARRAY(ary)->aux.capa) {
|
if (idx >= RARRAY(ary)->aux.capa) {
|
||||||
long capa_inc = RARRAY(ary)->aux.capa / 2;
|
long new_capa = RARRAY(ary)->aux.capa / 2;
|
||||||
if (capa_inc < ARY_DEFAULT_SIZE) {
|
|
||||||
capa_inc = ARY_DEFAULT_SIZE;
|
if (new_capa < ARY_DEFAULT_SIZE) {
|
||||||
|
new_capa = ARY_DEFAULT_SIZE;
|
||||||
}
|
}
|
||||||
RARRAY(ary)->aux.capa = idx + capa_inc;
|
new_capa += idx;
|
||||||
|
if (new_capa > new_capa * (long)sizeof(VALUE)) {
|
||||||
|
rb_raise(rb_eArgError, "index too big");
|
||||||
|
}
|
||||||
|
RARRAY(ary)->aux.capa = new_capa;
|
||||||
REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->aux.capa);
|
REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->aux.capa);
|
||||||
}
|
}
|
||||||
if (idx > RARRAY(ary)->len) {
|
if (idx > RARRAY(ary)->len) {
|
||||||
rb_mem_clear(RARRAY(ary)->ptr+RARRAY(ary)->len,
|
rb_mem_clear(RARRAY(ary)->ptr+RARRAY(ary)->len,
|
||||||
idx-RARRAY(ary)->len + 1);
|
idx-RARRAY(ary)->len + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (idx >= RARRAY(ary)->len) {
|
if (idx >= RARRAY(ary)->len) {
|
||||||
|
@ -502,9 +507,6 @@ rb_ary_aref(argc, argv, ary)
|
||||||
if (FIXNUM_P(arg)) {
|
if (FIXNUM_P(arg)) {
|
||||||
return rb_ary_entry(ary, FIX2LONG(arg));
|
return rb_ary_entry(ary, FIX2LONG(arg));
|
||||||
}
|
}
|
||||||
if (TYPE(arg) == T_BIGNUM) {
|
|
||||||
rb_raise(rb_eIndexError, "index too big");
|
|
||||||
}
|
|
||||||
/* check if idx is Range */
|
/* check if idx is Range */
|
||||||
switch (rb_range_beg_len(arg, &beg, &len, RARRAY(ary)->len, 0)) {
|
switch (rb_range_beg_len(arg, &beg, &len, RARRAY(ary)->len, 0)) {
|
||||||
case Qfalse:
|
case Qfalse:
|
||||||
|
@ -706,9 +708,6 @@ rb_ary_aset(argc, argv, ary)
|
||||||
offset = FIX2LONG(argv[0]);
|
offset = FIX2LONG(argv[0]);
|
||||||
goto fixnum;
|
goto fixnum;
|
||||||
}
|
}
|
||||||
if (TYPE(argv[0]) == T_BIGNUM) {
|
|
||||||
rb_raise(rb_eIndexError, "index too big");
|
|
||||||
}
|
|
||||||
if (rb_range_beg_len(argv[0], &beg, &len, RARRAY(ary)->len, 1)) {
|
if (rb_range_beg_len(argv[0], &beg, &len, RARRAY(ary)->len, 1)) {
|
||||||
/* check if idx is Range */
|
/* check if idx is Range */
|
||||||
rb_ary_update(ary, beg, len, argv[1]);
|
rb_ary_update(ary, beg, len, argv[1]);
|
||||||
|
|
7
bignum.c
7
bignum.c
|
@ -142,7 +142,7 @@ rb_uint2big(n)
|
||||||
}
|
}
|
||||||
|
|
||||||
i = DIGSPERLONG;
|
i = DIGSPERLONG;
|
||||||
while (i-- && !digits[i]) ;
|
while (--i && !digits[i]) ;
|
||||||
RBIGNUM(big)->len = i+1;
|
RBIGNUM(big)->len = i+1;
|
||||||
return big;
|
return big;
|
||||||
}
|
}
|
||||||
|
@ -398,7 +398,7 @@ rb_cstr_to_inum(str, base, badcheck)
|
||||||
else {
|
else {
|
||||||
VALUE big = rb_uint2big(val);
|
VALUE big = rb_uint2big(val);
|
||||||
RBIGNUM(big)->sign = sign;
|
RBIGNUM(big)->sign = sign;
|
||||||
return big;
|
return bignorm(big);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bigparse:
|
bigparse:
|
||||||
|
@ -1685,6 +1685,9 @@ rb_big_rand(max, rand_buf)
|
||||||
long len;
|
long len;
|
||||||
|
|
||||||
len = RBIGNUM(max)->len;
|
len = RBIGNUM(max)->len;
|
||||||
|
if (len == 0 && BDIGITS(max)[0] == 0) {
|
||||||
|
return rb_float_new(rand_buf[0]);
|
||||||
|
}
|
||||||
v = bignew(len,1);
|
v = bignew(len,1);
|
||||||
while (len--) {
|
while (len--) {
|
||||||
BDIGITS(v)[len] = ((BDIGIT)~0) * rand_buf[len];
|
BDIGITS(v)[len] = ((BDIGIT)~0) * rand_buf[len];
|
||||||
|
|
|
@ -693,7 +693,7 @@ def extmake(target)
|
||||||
unless $install or $clean
|
unless $install or $clean
|
||||||
if $static_ext.size > 0 ||
|
if $static_ext.size > 0 ||
|
||||||
!File.exist?("./Makefile") ||
|
!File.exist?("./Makefile") ||
|
||||||
older("./Makefile", "#{$top_srcdir}/ext/@setup@") ||
|
older("./Makefile", $setup) ||
|
||||||
older("./Makefile", "#{$topdir}/ext/extmk.rb") ||
|
older("./Makefile", "#{$topdir}/ext/extmk.rb") ||
|
||||||
older("./Makefile", "#{$top_srcdir}/ext/#{target}/makefile.rb") ||
|
older("./Makefile", "#{$top_srcdir}/ext/#{target}/makefile.rb") ||
|
||||||
older("./Makefile", "#{$top_srcdir}/ext/#{target}/extconf.rb")
|
older("./Makefile", "#{$top_srcdir}/ext/#{target}/extconf.rb")
|
||||||
|
@ -708,10 +708,9 @@ def extmake(target)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
$static = $target if $static
|
|
||||||
if File.exist?("./Makefile")
|
if File.exist?("./Makefile")
|
||||||
if $static
|
if $static
|
||||||
$extlist.push [$static, File.basename($target)]
|
$extlist.push [$static, $target, File.basename($target)]
|
||||||
end
|
end
|
||||||
if $install
|
if $install
|
||||||
if /bccwin32/ =~ RUBY_PLATFORM
|
if /bccwin32/ =~ RUBY_PLATFORM
|
||||||
|
@ -731,6 +730,7 @@ def extmake(target)
|
||||||
end
|
end
|
||||||
if $static
|
if $static
|
||||||
$extlibs ||= ""
|
$extlibs ||= ""
|
||||||
|
$extlibs += " " + $DLDFLAGS if $DLDFLAGS
|
||||||
$extlibs += " " + $LDFLAGS unless $LDFLAGS == ""
|
$extlibs += " " + $LDFLAGS unless $LDFLAGS == ""
|
||||||
$extlibs += " " + $libs unless $libs == ""
|
$extlibs += " " + $libs unless $libs == ""
|
||||||
$extlibs += " " + $LOCAL_LIBS unless $LOCAL_LIBS == ""
|
$extlibs += " " + $LOCAL_LIBS unless $LOCAL_LIBS == ""
|
||||||
|
@ -761,6 +761,7 @@ for setup in ["@setup@", "#{$top_srcdir}/ext/@setup@"]
|
||||||
target = target.downcase if /mswin32|bccwin32/ =~ RUBY_PLATFORM
|
target = target.downcase if /mswin32|bccwin32/ =~ RUBY_PLATFORM
|
||||||
$static_ext[target] = true
|
$static_ext[target] = true
|
||||||
end
|
end
|
||||||
|
$setup = setup
|
||||||
f.close
|
f.close
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
@ -797,13 +798,13 @@ miniruby = "miniruby@EXEEXT@"
|
||||||
|
|
||||||
$extobjs = "" unless $extobjs
|
$extobjs = "" unless $extobjs
|
||||||
if $extlist.size > 0
|
if $extlist.size > 0
|
||||||
for s,t in $extlist
|
for s,t,i in $extlist
|
||||||
f = format("%s/%s.%s", s, t, $LIBEXT)
|
f = format("%s/%s.%s", s, i, $LIBEXT)
|
||||||
if File.exist?(f)
|
if File.exist?(f)
|
||||||
$extinit += format("\
|
$extinit += format("\
|
||||||
\tInit_%s();\n\
|
\tInit_%s();\n\
|
||||||
\trb_provide(\"%s\");\n\
|
\trb_provide(\"%s\");\n\
|
||||||
", t, s)
|
", i, t)
|
||||||
$extobjs += "ext/"
|
$extobjs += "ext/"
|
||||||
$extobjs += f
|
$extobjs += f
|
||||||
$extobjs += " "
|
$extobjs += " "
|
||||||
|
@ -812,7 +813,7 @@ if $extlist.size > 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if older("extinit.c", "#{$top_srcdir}/ext/@setup@")
|
if older("extinit.c", $setup) || older("extinit.c", "#{$topdir}/ext/extmk.rb")
|
||||||
f = open("extinit.c", "w")
|
f = open("extinit.c", "w")
|
||||||
f.printf "void Init_ext() {\n"
|
f.printf "void Init_ext() {\n"
|
||||||
f.printf $extinit
|
f.printf $extinit
|
||||||
|
@ -827,7 +828,7 @@ if $extlist.size > 0
|
||||||
|
|
||||||
Dir.chdir ".."
|
Dir.chdir ".."
|
||||||
|
|
||||||
if older(ruby, "#{$top_srcdir}/ext/@setup@") or older(ruby, miniruby)
|
if older(ruby, $setup) or older(ruby, miniruby)
|
||||||
rm_f ruby
|
rm_f ruby
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,8 @@ class IO
|
||||||
STDOUT.print c
|
STDOUT.print c
|
||||||
STDOUT.flush
|
STDOUT.flush
|
||||||
end
|
end
|
||||||
if buf =~ e_pat then
|
if mat=e_pat.match(buf) then
|
||||||
result = [buf,$1,$2,$3,$4,$5,$6,$7,$8,$9]
|
result = [buf,*mat.to_a[1..-1]]
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
47
hash.c
47
hash.c
|
@ -259,6 +259,21 @@ rb_hash_clone(hash)
|
||||||
return clone;
|
return clone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
rb_hash_dup(hash)
|
||||||
|
VALUE hash;
|
||||||
|
{
|
||||||
|
VALUE dup = rb_obj_dup(hash);
|
||||||
|
|
||||||
|
if (FL_TEST(hash, HASH_PROC_DEFAULT)) {
|
||||||
|
FL_SET(dup, HASH_PROC_DEFAULT);
|
||||||
|
}
|
||||||
|
if (FL_TEST(hash, HASH_DELETED)) {
|
||||||
|
FL_SET(dup, HASH_DELETED);
|
||||||
|
}
|
||||||
|
return dup;
|
||||||
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
to_hash(hash)
|
to_hash(hash)
|
||||||
VALUE hash;
|
VALUE hash;
|
||||||
|
@ -353,6 +368,18 @@ rb_hash_set_default(hash, ifnone)
|
||||||
return ifnone;
|
return ifnone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
rb_hash_default_proc(hash)
|
||||||
|
VALUE hash;
|
||||||
|
{
|
||||||
|
VALUE key;
|
||||||
|
|
||||||
|
if (FL_TEST(hash, HASH_PROC_DEFAULT)) {
|
||||||
|
return RHASH(hash)->ifnone;
|
||||||
|
}
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
index_i(key, value, args)
|
index_i(key, value, args)
|
||||||
VALUE key, value;
|
VALUE key, value;
|
||||||
|
@ -448,8 +475,15 @@ rb_hash_shift(hash)
|
||||||
var.stop = 0;
|
var.stop = 0;
|
||||||
st_foreach(RHASH(hash)->tbl, shift_i, &var);
|
st_foreach(RHASH(hash)->tbl, shift_i, &var);
|
||||||
|
|
||||||
if (var.stop == 0) return RHASH(hash)->ifnone;
|
if (var.stop) {
|
||||||
return rb_assoc_new(var.key, var.val);
|
return rb_assoc_new(var.key, var.val);
|
||||||
|
}
|
||||||
|
else if (FL_TEST(hash, HASH_PROC_DEFAULT)) {
|
||||||
|
return rb_funcall(RHASH(hash)->ifnone, id_yield, 2, hash, Qnil);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return RHASH(hash)->ifnone;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -573,6 +607,10 @@ rb_hash_replace(hash, hash2)
|
||||||
hash2 = to_hash(hash2);
|
hash2 = to_hash(hash2);
|
||||||
rb_hash_clear(hash);
|
rb_hash_clear(hash);
|
||||||
st_foreach(RHASH(hash2)->tbl, replace_i, hash);
|
st_foreach(RHASH(hash2)->tbl, replace_i, hash);
|
||||||
|
RHASH(hash)->ifnone = RHASH(hash2)->ifnone;
|
||||||
|
if (FL_TEST(hash2, HASH_PROC_DEFAULT)) {
|
||||||
|
FL_SET(hash, HASH_PROC_DEFAULT);
|
||||||
|
}
|
||||||
|
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
@ -854,7 +892,8 @@ rb_hash_equal(hash1, hash2)
|
||||||
if (TYPE(hash2) != T_HASH) return Qfalse;
|
if (TYPE(hash2) != T_HASH) return Qfalse;
|
||||||
if (RHASH(hash1)->tbl->num_entries != RHASH(hash2)->tbl->num_entries)
|
if (RHASH(hash1)->tbl->num_entries != RHASH(hash2)->tbl->num_entries)
|
||||||
return Qfalse;
|
return Qfalse;
|
||||||
if (!rb_equal(RHASH(hash1)->ifnone, RHASH(hash2)->ifnone))
|
if (!(rb_equal(RHASH(hash1)->ifnone, RHASH(hash2)->ifnone) &&
|
||||||
|
FL_TEST(hash1, HASH_PROC_DEFAULT) == FL_TEST(hash2, HASH_PROC_DEFAULT)))
|
||||||
return Qfalse;
|
return Qfalse;
|
||||||
|
|
||||||
data.tbl = RHASH(hash2)->tbl;
|
data.tbl = RHASH(hash2)->tbl;
|
||||||
|
@ -1576,6 +1615,7 @@ Init_Hash()
|
||||||
rb_define_method(rb_cHash,"initialize", rb_hash_initialize, -1);
|
rb_define_method(rb_cHash,"initialize", rb_hash_initialize, -1);
|
||||||
|
|
||||||
rb_define_method(rb_cHash,"clone", rb_hash_clone, 0);
|
rb_define_method(rb_cHash,"clone", rb_hash_clone, 0);
|
||||||
|
rb_define_method(rb_cHash,"dup", rb_hash_dup, 0);
|
||||||
rb_define_method(rb_cHash,"rehash", rb_hash_rehash, 0);
|
rb_define_method(rb_cHash,"rehash", rb_hash_rehash, 0);
|
||||||
|
|
||||||
rb_define_method(rb_cHash,"to_hash", rb_hash_to_hash, 0);
|
rb_define_method(rb_cHash,"to_hash", rb_hash_to_hash, 0);
|
||||||
|
@ -1590,6 +1630,7 @@ Init_Hash()
|
||||||
rb_define_method(rb_cHash,"store", rb_hash_aset, 2);
|
rb_define_method(rb_cHash,"store", rb_hash_aset, 2);
|
||||||
rb_define_method(rb_cHash,"default", rb_hash_default, -1);
|
rb_define_method(rb_cHash,"default", rb_hash_default, -1);
|
||||||
rb_define_method(rb_cHash,"default=", rb_hash_set_default, 1);
|
rb_define_method(rb_cHash,"default=", rb_hash_set_default, 1);
|
||||||
|
rb_define_method(rb_cHash,"default_proc", rb_hash_default_proc, 0);
|
||||||
rb_define_method(rb_cHash,"index", rb_hash_index, 1);
|
rb_define_method(rb_cHash,"index", rb_hash_index, 1);
|
||||||
rb_define_method(rb_cHash,"indexes", rb_hash_indexes, -1);
|
rb_define_method(rb_cHash,"indexes", rb_hash_indexes, -1);
|
||||||
rb_define_method(rb_cHash,"indices", rb_hash_indexes, -1);
|
rb_define_method(rb_cHash,"indices", rb_hash_indexes, -1);
|
||||||
|
|
28
numeric.c
28
numeric.c
|
@ -1464,24 +1464,26 @@ fix_aref(fix, idx)
|
||||||
VALUE fix, idx;
|
VALUE fix, idx;
|
||||||
{
|
{
|
||||||
long val = FIX2LONG(fix);
|
long val = FIX2LONG(fix);
|
||||||
|
long i;
|
||||||
|
|
||||||
if (TYPE(idx) == T_BIGNUM) {
|
if (TYPE(idx) == T_BIGNUM) {
|
||||||
if (!RBIGNUM(idx)->sign || val >= 0)
|
idx = rb_big_norm(idx);
|
||||||
return INT2FIX(0);
|
if (!FIXNUM_P(idx)) {
|
||||||
return INT2FIX(1);
|
if (!RBIGNUM(idx)->sign || val >= 0)
|
||||||
}
|
return INT2FIX(0);
|
||||||
else {
|
|
||||||
int i = NUM2INT(idx);
|
|
||||||
|
|
||||||
if (i < 0) return INT2FIX(0);
|
|
||||||
if (sizeof(VALUE)*CHAR_BIT-1 < i) {
|
|
||||||
if (val < 0) return INT2FIX(1);
|
|
||||||
return INT2FIX(0);
|
|
||||||
}
|
|
||||||
if (val & (1L<<i))
|
|
||||||
return INT2FIX(1);
|
return INT2FIX(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i = NUM2LONG(idx);
|
||||||
|
|
||||||
|
if (i < 0) return INT2FIX(0);
|
||||||
|
if (sizeof(VALUE)*CHAR_BIT-1 < i) {
|
||||||
|
if (val < 0) return INT2FIX(1);
|
||||||
return INT2FIX(0);
|
return INT2FIX(0);
|
||||||
}
|
}
|
||||||
|
if (val & (1L<<i))
|
||||||
|
return INT2FIX(1);
|
||||||
|
return INT2FIX(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
|
|
1
random.c
1
random.c
|
@ -224,7 +224,6 @@ rb_f_rand(argc, argv, obj)
|
||||||
}
|
}
|
||||||
vmax = rb_dbl2big(RFLOAT(vmax)->value);
|
vmax = rb_dbl2big(RFLOAT(vmax)->value);
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case T_BIGNUM:
|
|
||||||
{
|
{
|
||||||
long len = RBIGNUM(vmax)->len;
|
long len = RBIGNUM(vmax)->len;
|
||||||
double *buf = ALLOCA_N(double, len);
|
double *buf = ALLOCA_N(double, len);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#define RUBY_VERSION "1.7.2"
|
#define RUBY_VERSION "1.7.2"
|
||||||
#define RUBY_RELEASE_DATE "2002-08-12"
|
#define RUBY_RELEASE_DATE "2002-08-13"
|
||||||
#define RUBY_VERSION_CODE 172
|
#define RUBY_VERSION_CODE 172
|
||||||
#define RUBY_RELEASE_CODE 20020812
|
#define RUBY_RELEASE_CODE 20020813
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue