diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-09-22 00:19:15 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-09-22 00:19:15 +0000 |
commit | 136b284b5959a6e71abf46da41b00dce102a0c59 (patch) | |
tree | 7d465bb841445d65384347e96477275de3fb81dc /eval.c | |
parent | 141dae12c51031159bb0fe59be42e3507423d21a (diff) | |
download | ruby-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.c | 18 |
1 files changed, 7 insertions, 11 deletions
@@ -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); |