* 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
This commit is contained in:
nobu 2008-02-19 02:14:14 +00:00
Родитель 390adf6112
Коммит b81a66d1ef
4 изменённых файлов: 17 добавлений и 7 удалений

Просмотреть файл

@ -1,3 +1,11 @@
Tue Feb 19 11:14:13 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* 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 <akr@fsij.org>
* string.c (rb_str_each_line): fix newline size.

8
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("<main>"),
rb_str_new2(file), Qfalse, ISEQ_TYPE_TOP);
SAVE_ROOT_JMPBUF(th, {
VALUE iseq = rb_iseq_new(n, rb_str_new2("<main>"),
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 */
}

Просмотреть файл

@ -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;

Просмотреть файл

@ -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[];