summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-19 02:14:14 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-02-19 02:14:14 +0000
commitb81a66d1ef2e578d9e248ea36d3cf4beb72bab53 (patch)
treec8b7dd7809d0f2058c70dd857de3eba96c080175
parent390adf6112228a4c32381a4882c8076ff6b44c84 (diff)
* 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
-rw-r--r--ChangeLog8
-rw-r--r--eval.c8
-rw-r--r--insns.def2
-rw-r--r--version.h6
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 <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.
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("<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 */
}
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[];