summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--eval.c10
-rw-r--r--node.h3
3 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 651e1bd..f71fb11 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Thu Aug 31 13:12:06 2006 why the lucky stiff <why@ruby-lang.org>
+
+ * eval.c (ruby_init): rename top_cref to ruby_top_cref and export,
+ along with ruby_cref, for use by the sandbox. [ruby-core:08762]
+
+ * node.h: ditto.
+
Wed Aug 30 12:01:57 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
* numeric.c (flo_hash): improve collision.
diff --git a/eval.c b/eval.c
index 8ebfbe9..7729337 100644
--- a/eval.c
+++ b/eval.c
@@ -991,8 +991,8 @@ static struct tag *prot_tag;
VALUE ruby_wrapper; /* security wrapper */
-static NODE *ruby_cref = 0;
-static NODE *top_cref;
+NODE *ruby_cref = 0;
+NODE *ruby_top_cref;
#define PUSH_CREF(c) ruby_cref = NEW_NODE(NODE_CREF,(c),0,ruby_cref)
#define POP_CREF() ruby_cref = ruby_cref->nd_next
@@ -1384,8 +1384,8 @@ ruby_init(void)
if ((state = EXEC_TAG()) == 0) {
rb_call_inits();
ruby_frame->self = ruby_top_self;
- top_cref = rb_node_newnode(NODE_CREF,rb_cObject,0,0);
- ruby_cref = top_cref;
+ ruby_top_cref = rb_node_newnode(NODE_CREF,rb_cObject,0,0);
+ ruby_cref = ruby_top_cref;
rb_define_global_const("TOPLEVEL_BINDING", rb_f_binding(ruby_top_self));
#ifdef __MACOS__
_macruby_init();
@@ -6714,7 +6714,7 @@ rb_load(VALUE fname, int wrap)
ruby_errinfo = Qnil; /* ensure */
PUSH_VARS();
- ruby_cref = top_cref;
+ ruby_cref = ruby_top_cref;
if (!wrap) {
rb_secure(4); /* should alter global state */
ruby_wrapper = 0;
diff --git a/node.h b/node.h
index 7d8f6fc..46332ca 100644
--- a/node.h
+++ b/node.h
@@ -153,6 +153,9 @@ typedef struct RNode {
} u3;
} NODE;
+extern NODE *ruby_cref;
+extern NODE *ruby_top_cref;
+
#define RNODE(obj) (R_CAST(RNode)(obj))
/* 0..4:T_TYPES, 5:FL_MARK, 6:reserved, 7:NODE_NEWLINE */