mirror of
https://github.com/ruby/ruby.git
synced 2025-09-18 10:03:59 +02:00
merge revision(s) 57170-57172: [Backport #13066]
test/unit.rb: restore parallel option * test/lib/test/unit.rb (_run_parallel): restore parallel option after retrying for --repeat-count option. ------------------------------------------------------------------------ r57170 | nobu | 2016-12-24 20:56:12 +0900 (Sat, 24 Dec 2016) | 1 line time.c: fix typo in value_insane_p ------------------------------------------------------------------------ r57171 | nobu | 2016-12-24 21:19:23 +0900 (Sat, 24 Dec 2016) | 1 line time.c: remove debug code ------------------------------------------------------------------------ r57172 | nobu | 2016-12-24 21:21:52 +0900 (Sat, 24 Dec 2016) | 4 lines time.c: fix type of usec2subsecx * time.c (usec2subsecx): fix return type, which is a numeric object but not a long int. [ruby-dev:49912] [Bug #13066] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@57830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3f306dc298
commit
a3cfd380c4
2 changed files with 6 additions and 49 deletions
45
time.c
45
time.c
|
@ -53,41 +53,6 @@ eq(VALUE x, VALUE y)
|
||||||
return RTEST(rb_funcall(x, id_eq, 1, y));
|
return RTEST(rb_funcall(x, id_eq, 1, y));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
static void *
|
|
||||||
value_insane_p(VALUE x)
|
|
||||||
{
|
|
||||||
VALUE klass;
|
|
||||||
LPEXCEPTION_POINTERS info;
|
|
||||||
void *failed_address = 0;
|
|
||||||
if (SPECIAL_CONST_P(x)) return 0;
|
|
||||||
if (!RBASIC_CLASS(x)) return (void *)x;
|
|
||||||
__try {
|
|
||||||
RB_GC_GUARD(klass) = RBASIC_CLASS(x);
|
|
||||||
}
|
|
||||||
__except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
|
|
||||||
(info = GetExceptionInformation(), EXCEPTION_EXECUTE_HANDLER) :
|
|
||||||
EXCEPTION_CONTINUE_SEARCH) {
|
|
||||||
PEXCEPTION_RECORD rec = info->ExceptionRecord;
|
|
||||||
failed_address = (void *)rec->ExceptionInformation[1];
|
|
||||||
}
|
|
||||||
return failed_address;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
inquire_value(VALUE x, const char *mesg)
|
|
||||||
{
|
|
||||||
void *failed_address = value_insane_p(x);
|
|
||||||
if (failed_address) {
|
|
||||||
rb_fatal("Access violation at %p: class of %p: %s",
|
|
||||||
failed_address, (void *)x, mesg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
# define value_insane_p(x) ((void)(x), 0)
|
|
||||||
# define inquire_value(x, mesg) (void)value_insane_p(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
cmp(VALUE x, VALUE y)
|
cmp(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
|
@ -98,8 +63,6 @@ cmp(VALUE x, VALUE y)
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
inquire_value(x, "cmp(x)");
|
|
||||||
inquire_value(y, "cmp(y)");
|
|
||||||
return rb_cmpint(rb_funcall(x, id_cmp, 1, y), x, y);
|
return rb_cmpint(rb_funcall(x, id_cmp, 1, y), x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2482,7 +2445,7 @@ obj2subsecx(VALUE obj, VALUE *subsecx)
|
||||||
return obj2ubits(obj, 6); /* vtm->sec */
|
return obj2ubits(obj, 6); /* vtm->sec */
|
||||||
}
|
}
|
||||||
|
|
||||||
static long
|
static VALUE
|
||||||
usec2subsecx(VALUE obj)
|
usec2subsecx(VALUE obj)
|
||||||
{
|
{
|
||||||
if (RB_TYPE_P(obj, T_STRING)) {
|
if (RB_TYPE_P(obj, T_STRING)) {
|
||||||
|
@ -2618,12 +2581,6 @@ time_arg(int argc, VALUE *argv, struct vtm *vtm)
|
||||||
vtm->sec = NIL_P(v[5])?0:obj2subsecx(v[5], &vtm->subsecx);
|
vtm->sec = NIL_P(v[5])?0:obj2subsecx(v[5], &vtm->subsecx);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value_insane_p(vtm->subsecx)) {
|
|
||||||
rb_fatal("argc=%d, sec=%"PRIsVALUE", subsec=%"PRIsVALUE", subsecx=%p",
|
|
||||||
argc, v[5], argc == 7 ? v[6] : Qnil,
|
|
||||||
&RBASIC_CLASS(vtm->subsecx));
|
|
||||||
}
|
|
||||||
|
|
||||||
validate_vtm(vtm);
|
validate_vtm(vtm);
|
||||||
RB_GC_GUARD(vtm->subsecx);
|
RB_GC_GUARD(vtm->subsecx);
|
||||||
}
|
}
|
||||||
|
|
10
version.h
10
version.h
|
@ -1,10 +1,10 @@
|
||||||
#define RUBY_VERSION "2.4.0"
|
#define RUBY_VERSION "2.4.0"
|
||||||
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
|
#define RUBY_RELEASE_DATE "2017-03-11"
|
||||||
#define RUBY_PATCHLEVEL 0
|
#define RUBY_PATCHLEVEL 1
|
||||||
|
|
||||||
#define RUBY_RELEASE_YEAR 2016
|
#define RUBY_RELEASE_YEAR 2017
|
||||||
#define RUBY_RELEASE_MONTH 12
|
#define RUBY_RELEASE_MONTH 3
|
||||||
#define RUBY_RELEASE_DAY 24
|
#define RUBY_RELEASE_DAY 11
|
||||||
|
|
||||||
#include "ruby/version.h"
|
#include "ruby/version.h"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue