summaryrefslogtreecommitdiff
path: root/variable.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-11 22:15:11 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-11 22:15:11 +0000
commit1dcf1174ea2a803e6905a04760121fe1426035b3 (patch)
tree3f37ee14e1b8c7b5f6f9ce6e1e978bbf1d12d177 /variable.c
parent9a5b57f61fd9ef14b1bc6c0b540c0edbb86a409a (diff)
* ruby.c (ruby_init_loadpath_safe, ruby_init_gems): set and remove
TMP_RUBY_PREFIX. * variable.c (rb_mod_remove_const): new function. * tool/compile_prelude.rb: split each preludes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/variable.c b/variable.c
index 62256a049e..d7b99f180b 100644
--- a/variable.c
+++ b/variable.c
@@ -1633,12 +1633,19 @@ VALUE
rb_mod_remove_const(VALUE mod, VALUE name)
{
const ID id = rb_to_id(name);
- VALUE val;
- st_data_t v, n = id;
if (!rb_is_const_id(id)) {
rb_name_error(id, "`%s' is not allowed as a constant name", rb_id2name(id));
}
+ return rb_const_remove(mod, id);
+}
+
+VALUE
+rb_const_remove(VALUE mod, ID id)
+{
+ VALUE val;
+ st_data_t v, n = id;
+
if (!OBJ_UNTRUSTED(mod) && rb_safe_level() >= 4)
rb_raise(rb_eSecurityError, "Insecure: can't remove constant");
if (OBJ_FROZEN(mod)) rb_error_frozen("class/module");