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 | ec5d5a58e30a8766b4b3a73588dcce25332325c8 (patch) | |
tree | 7d465bb841445d65384347e96477275de3fb81dc /eval.c | |
parent | 4a69f0e61fa34078197bbb4340b2ba79403eaf89 (diff) | |
download | ruby-ec5d5a58e30a8766b4b3a73588dcce25332325c8.tar.gz ruby-ec5d5a58e30a8766b4b3a73588dcce25332325c8.tar.xz ruby-ec5d5a58e30a8766b4b3a73588dcce25332325c8.zip |
* 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: http://svn.ruby-lang.org/repos/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); |