summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-08-15 22:58:45 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-08-15 22:58:45 +0000
commitf3e69a7b9043bded4081808cf86d26b1906302e9 (patch)
treec7e4dce4b2bb18b970eafe4449b3b3136068a200 /eval.c
parent9f4783fb9b2e5b3ff111322b8ef78f6530bbc0c1 (diff)
downloadruby-f3e69a7b9043bded4081808cf86d26b1906302e9.tar.gz
ruby-f3e69a7b9043bded4081808cf86d26b1906302e9.tar.xz
ruby-f3e69a7b9043bded4081808cf86d26b1906302e9.zip
* eval.c (compile_error): must not clear ruby_sourcefile here.
(ruby-bugs:PR#364). * eval.c (rb_longjmp): set ruby_sourcefile before making backtrace. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/eval.c b/eval.c
index ec44f509f..ee19b03c2 100644
--- a/eval.c
+++ b/eval.c
@@ -1282,7 +1282,6 @@ compile_error(at)
{
VALUE str;
- ruby_sourcefile = 0;
ruby_nerrs = 0;
str = rb_str_buf_new2("compile error");
if (at) {
@@ -3602,6 +3601,7 @@ rb_longjmp(tag, mesg)
mesg = rb_exc_new(rb_eRuntimeError, 0, 0);
}
+ ruby_set_current_source();
if (ruby_sourcefile && !NIL_P(mesg)) {
at = get_backtrace(mesg);
if (NIL_P(at)) {
@@ -3618,7 +3618,6 @@ rb_longjmp(tag, mesg)
VALUE e = ruby_errinfo;
StringValue(e);
- ruby_set_current_source();
fprintf(stderr, "Exception `%s' at %s:%d - %s\n",
rb_class2name(CLASS_OF(ruby_errinfo)),
ruby_sourcefile, ruby_sourceline,
@@ -5036,7 +5035,6 @@ eval(self, src, scope, file, line)
}
if (file == 0) {
ruby_set_current_source();
- ruby_current_node = 0;
file = ruby_sourcefile;
line = ruby_sourceline;
}