mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ruby.c (set_arg0): wrong predicate when new $0 value is bigger
than original space. * gc.c (id2ref): should use NUM2ULONG() * object.c (rb_mod_const_get): check whether name is a class variable name. * object.c (rb_mod_const_set): ditto. * object.c (rb_mod_const_defined): ditto. * marshal.c (w_float): precision changed to "%.16g" * eval.c (rb_call0): wrong retry behavior. * numeric.c (fix_aref): a bug on long>int architecture. * eval.c (rb_eval_string_wrap): should restore ruby_wrapper. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
81e661b298
commit
be712bae3a
8 changed files with 65 additions and 14 deletions
32
ChangeLog
32
ChangeLog
|
|
@ -1,3 +1,19 @@
|
||||||
|
Tue Apr 24 15:35:32 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* ruby.c (set_arg0): wrong predicate when new $0 value is bigger
|
||||||
|
than original space.
|
||||||
|
|
||||||
|
Mon Apr 23 14:43:59 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* gc.c (id2ref): should use NUM2ULONG()
|
||||||
|
|
||||||
|
* object.c (rb_mod_const_get): check whether name is a class
|
||||||
|
variable name.
|
||||||
|
|
||||||
|
* object.c (rb_mod_const_set): ditto.
|
||||||
|
|
||||||
|
* object.c (rb_mod_const_defined): ditto.
|
||||||
|
|
||||||
Sun Apr 22 17:44:37 2001 WATANABE Hirofumi <eban@ruby-lang.org>
|
Sun Apr 22 17:44:37 2001 WATANABE Hirofumi <eban@ruby-lang.org>
|
||||||
|
|
||||||
* configure.in: add -mieee to CFLAGS on Linux/Alpha
|
* configure.in: add -mieee to CFLAGS on Linux/Alpha
|
||||||
|
|
@ -5,6 +21,22 @@ Sun Apr 22 17:44:37 2001 WATANABE Hirofumi <eban@ruby-lang.org>
|
||||||
|
|
||||||
* configure.in: remove -ansi on OSF/1.
|
* configure.in: remove -ansi on OSF/1.
|
||||||
|
|
||||||
|
Sat Apr 21 22:33:26 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* marshal.c (w_float): precision changed to "%.16g"
|
||||||
|
|
||||||
|
Sat Apr 21 22:07:58 2001 Guy Decoux <decoux@moulon.inra.fr>
|
||||||
|
|
||||||
|
* eval.c (rb_call0): wrong retry behavior.
|
||||||
|
|
||||||
|
Fri Apr 20 19:12:20 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* numeric.c (fix_aref): a bug on long>int architecture.
|
||||||
|
|
||||||
|
Fri Apr 20 14:57:15 2001 K.Kosako <kosako@sofnec.co.jp>
|
||||||
|
|
||||||
|
* eval.c (rb_eval_string_wrap): should restore ruby_wrapper.
|
||||||
|
|
||||||
Wed Apr 18 04:37:51 2001 Wakou Aoyama <wakou@fsinet.or.jp>
|
Wed Apr 18 04:37:51 2001 Wakou Aoyama <wakou@fsinet.or.jp>
|
||||||
|
|
||||||
* lib/cgi.rb: CGI::Cookie: no use PATH_INFO.
|
* lib/cgi.rb: CGI::Cookie: no use PATH_INFO.
|
||||||
|
|
|
||||||
4
eval.c
4
eval.c
|
|
@ -1257,6 +1257,7 @@ rb_eval_string_wrap(str, state)
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
VALUE self = ruby_top_self;
|
VALUE self = ruby_top_self;
|
||||||
|
VALUE wrapper = ruby_wrapper;
|
||||||
VALUE val;
|
VALUE val;
|
||||||
|
|
||||||
PUSH_CLASS();
|
PUSH_CLASS();
|
||||||
|
|
@ -1268,6 +1269,7 @@ rb_eval_string_wrap(str, state)
|
||||||
ruby_top_self = self;
|
ruby_top_self = self;
|
||||||
|
|
||||||
POP_CLASS();
|
POP_CLASS();
|
||||||
|
ruby_wrapper = wrapper;
|
||||||
if (state) {
|
if (state) {
|
||||||
*state = status;
|
*state = status;
|
||||||
}
|
}
|
||||||
|
|
@ -4442,7 +4444,7 @@ rb_call0(klass, recv, id, argc, argv, body, nosuper)
|
||||||
|
|
||||||
case TAG_RETRY:
|
case TAG_RETRY:
|
||||||
if (rb_block_given_p()) {
|
if (rb_block_given_p()) {
|
||||||
break;
|
JUMP_TAG(state);
|
||||||
}
|
}
|
||||||
/* fall through */
|
/* fall through */
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
2
gc.c
2
gc.c
|
|
@ -1289,7 +1289,7 @@ id2ref(obj, id)
|
||||||
unsigned long ptr, p0;
|
unsigned long ptr, p0;
|
||||||
|
|
||||||
rb_secure(4);
|
rb_secure(4);
|
||||||
p0 = ptr = NUM2UINT(id);
|
p0 = ptr = NUM2ULONG(id);
|
||||||
if (ptr == Qtrue) return Qtrue;
|
if (ptr == Qtrue) return Qtrue;
|
||||||
if (ptr == Qfalse) return Qfalse;
|
if (ptr == Qfalse) return Qfalse;
|
||||||
if (ptr == Qnil) return Qnil;
|
if (ptr == Qnil) return Qnil;
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ w_float(d, arg)
|
||||||
{
|
{
|
||||||
char buf[100];
|
char buf[100];
|
||||||
|
|
||||||
sprintf(buf, "%.12g", d);
|
sprintf(buf, "%.16g", d);
|
||||||
w_bytes(buf, strlen(buf), arg);
|
w_bytes(buf, strlen(buf), arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1295,12 +1295,14 @@ static VALUE
|
||||||
fix_aref(fix, idx)
|
fix_aref(fix, idx)
|
||||||
VALUE fix, idx;
|
VALUE fix, idx;
|
||||||
{
|
{
|
||||||
unsigned long val = FIX2LONG(fix);
|
long val = FIX2LONG(fix);
|
||||||
int i = NUM2INT(idx);
|
int i = NUM2INT(idx);
|
||||||
|
|
||||||
if (i < 0 || sizeof(VALUE)*CHAR_BIT-1 < i)
|
if (i < 0 || sizeof(VALUE)*CHAR_BIT-1 < i) {
|
||||||
|
if (val < 0) return INT2FIX(1);
|
||||||
return INT2FIX(0);
|
return INT2FIX(0);
|
||||||
if (val & (1<<i))
|
}
|
||||||
|
if (val & (1L<<i))
|
||||||
return INT2FIX(1);
|
return INT2FIX(1);
|
||||||
return INT2FIX(0);
|
return INT2FIX(0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
21
object.c
21
object.c
|
|
@ -752,14 +752,24 @@ static VALUE
|
||||||
rb_mod_const_get(mod, name)
|
rb_mod_const_get(mod, name)
|
||||||
VALUE mod, name;
|
VALUE mod, name;
|
||||||
{
|
{
|
||||||
return rb_const_get(mod, rb_to_id(name));
|
ID id = rb_to_id(name);
|
||||||
|
|
||||||
|
if (!rb_is_const_id(id)) {
|
||||||
|
rb_raise(rb_eNameError, "wrong constant name %s", name);
|
||||||
|
}
|
||||||
|
return rb_const_get(mod, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
rb_mod_const_set(mod, name, value)
|
rb_mod_const_set(mod, name, value)
|
||||||
VALUE mod, name, value;
|
VALUE mod, name, value;
|
||||||
{
|
{
|
||||||
rb_const_set(mod, rb_to_id(name), value);
|
ID id = rb_to_id(name);
|
||||||
|
|
||||||
|
if (!rb_is_const_id(id)) {
|
||||||
|
rb_raise(rb_eNameError, "wrong constant name %s", name);
|
||||||
|
}
|
||||||
|
rb_const_set(mod, id, value);
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -767,7 +777,12 @@ static VALUE
|
||||||
rb_mod_const_defined(mod, name)
|
rb_mod_const_defined(mod, name)
|
||||||
VALUE mod, name;
|
VALUE mod, name;
|
||||||
{
|
{
|
||||||
return rb_const_defined_at(mod, rb_to_id(name));
|
ID id = rb_to_id(name);
|
||||||
|
|
||||||
|
if (!rb_is_const_id(id)) {
|
||||||
|
rb_raise(rb_eNameError, "wrong constant name %s", name);
|
||||||
|
}
|
||||||
|
return rb_const_defined_at(mod, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
|
|
|
||||||
6
ruby.c
6
ruby.c
|
|
@ -877,9 +877,9 @@ set_arg0(val, id)
|
||||||
#endif
|
#endif
|
||||||
s = rb_str2cstr(val, &i);
|
s = rb_str2cstr(val, &i);
|
||||||
#ifndef __hpux
|
#ifndef __hpux
|
||||||
if (i > len) {
|
if (i < len) {
|
||||||
memcpy(origargv[0], s, len);
|
memcpy(origargv[0], s, i);
|
||||||
origargv[0][len] = '\0';
|
origargv[0][i] = '\0';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
memcpy(origargv[0], s, i);
|
memcpy(origargv[0], s, i);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#define RUBY_VERSION "1.6.4"
|
#define RUBY_VERSION "1.6.4"
|
||||||
#define RUBY_RELEASE_DATE "2001-04-19"
|
#define RUBY_RELEASE_DATE "2001-04-24"
|
||||||
#define RUBY_VERSION_CODE 164
|
#define RUBY_VERSION_CODE 164
|
||||||
#define RUBY_RELEASE_CODE 20010419
|
#define RUBY_RELEASE_CODE 20010424
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue