From b81a66d1ef2e578d9e248ea36d3cf4beb72bab53 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 19 Feb 2008 02:14:14 +0000 Subject: * eval.c (ruby_exec_node): no thread starts inside iseq compilation. * eval.c (rb_f_raise): skip current control frame. [ruby-core:15589] * insns.def (opt_div): raise as the ordinary method. [ruby-core:15589] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ eval.c | 8 +++++--- insns.def | 2 +- version.h | 6 +++--- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 122651e89d..6a66fdccec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Feb 19 11:14:13 2008 Nobuyoshi Nakada + + * eval.c (ruby_exec_node): no thread starts inside iseq compilation. + + * eval.c (rb_f_raise): skip current control frame. [ruby-core:15589] + + * insns.def (opt_div): raise as the ordinary method. [ruby-core:15589] + Mon Feb 18 15:16:30 2008 Tanaka Akira * string.c (rb_str_each_line): fix newline size. diff --git a/eval.c b/eval.c index b738ec431e..e7d9c1f45e 100644 --- a/eval.c +++ b/eval.c @@ -225,9 +225,9 @@ ruby_exec_node(void *n, char *file) PUSH_TAG(); if ((state = EXEC_TAG()) == 0) { + VALUE iseq = rb_iseq_new(n, rb_str_new2("
"), + rb_str_new2(file), Qfalse, ISEQ_TYPE_TOP); SAVE_ROOT_JMPBUF(th, { - VALUE iseq = rb_iseq_new(n, rb_str_new2("
"), - rb_str_new2(file), Qfalse, ISEQ_TYPE_TOP); th->base_block = 0; val = rb_iseq_eval(iseq); }); @@ -775,7 +775,9 @@ rb_f_raise(int argc, VALUE *argv) argv = &err; } } - rb_raise_jump(rb_make_exception(argc, argv)); + err = rb_make_exception(argc, argv); + GET_THREAD()->cfp++; + rb_raise_jump(err); return Qnil; /* not reached */ } diff --git a/insns.def b/insns.def index 2c0e52ea16..d89d989ac6 100644 --- a/insns.def +++ b/insns.def @@ -1513,7 +1513,7 @@ opt_div /* copied from numeric.c#fixdivmod */ long mod; if (y == 0) - rb_num_zerodiv(); + goto INSN_LABEL(normal_dispatch); if (y < 0) { if (x < 0) div = -x / -y; diff --git a/version.h b/version.h index a945934e88..1958ef04b5 100644 --- a/version.h +++ b/version.h @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2008-02-18" +#define RUBY_RELEASE_DATE "2008-02-19" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20080218 +#define RUBY_RELEASE_CODE 20080219 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2008 #define RUBY_RELEASE_MONTH 2 -#define RUBY_RELEASE_DAY 18 +#define RUBY_RELEASE_DAY 19 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; -- cgit v1.2.3