aboutsummaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-22 00:19:15 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-22 00:19:15 +0000
commit136b284b5959a6e71abf46da41b00dce102a0c59 (patch)
tree7d465bb841445d65384347e96477275de3fb81dc /eval.c
parent141dae12c51031159bb0fe59be42e3507423d21a (diff)
downloadruby-136b284b5959a6e71abf46da41b00dce102a0c59.tar.gz
* parse.y: remove global variables ruby_eval_tree and
ruby_eval_tree_begin. * array.c (rb_ary_collect_bang): element size might change during comparison. [ruby-dev:24300] * array.c (rb_ary_reject_bang): ditto. [ruby-dev:24300] * array.c (rb_ary_eql): ditto. [ruby-dev:24300] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/eval.c b/eval.c
index 6ab9f5e6aa..eddf931e76 100644
--- a/eval.c
+++ b/eval.c
@@ -645,8 +645,6 @@ rb_attr(klass, id, read, write, ex)
extern int ruby_in_compile;
VALUE ruby_errinfo = Qnil;
-extern NODE *ruby_eval_tree_begin;
-extern NODE *ruby_eval_tree;
extern int ruby_nerrs;
static VALUE rb_eLocalJumpError;
@@ -949,6 +947,7 @@ static struct tag *prot_tag;
#define TAG_RAISE 0x6
#define TAG_THROW 0x7
#define TAG_FATAL 0x8
+#define TAG_CONT 0x9
#define TAG_MASK 0xf
VALUE ruby_class;
@@ -1278,13 +1277,11 @@ eval_node(self, node)
VALUE self;
NODE *node;
{
- NODE *beg_tree = ruby_eval_tree_begin;
-
- ruby_eval_tree_begin = 0;
- if (beg_tree) {
- rb_eval(self, beg_tree);
+ if (!node) return Qnil;
+ if (nd_type(node) == NODE_PRELUDE) {
+ rb_eval(self, node->nd_head);
+ node = node->nd_body;
}
-
if (!node) return Qnil;
return rb_eval(self, node);
}
@@ -1443,6 +1440,8 @@ ruby_cleanup(ex)
return ex;
}
+extern NODE *ruby_eval_tree;
+
int
ruby_exec()
{
@@ -7508,9 +7507,6 @@ Init_eval()
__send__ = rb_intern("__send__");
rb_global_variable((VALUE*)&top_scope);
- rb_global_variable((VALUE*)&ruby_eval_tree_begin);
-
- rb_global_variable((VALUE*)&ruby_eval_tree);
rb_global_variable((VALUE*)&ruby_dyna_vars);
rb_define_virtual_variable("$@", errat_getter, errat_setter);