summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--test/ruby/test_module.rb5
-rw-r--r--variable.c2
3 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 352d4adc74..034c0c067e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Thu Dec 27 21:56:56 2012 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * variable.c (rb_mod_remove_const): fix segv caused by r38558.
+
Tue Dec 28 01:13:48 2012 James Edward Gray II <james@graysoftinc.com>
* lib/csv.rb: Added more Hash methods to CSV::Row.
diff --git a/test/ruby/test_module.rb b/test/ruby/test_module.rb
index 52f643489c..2862cd338f 100644
--- a/test/ruby/test_module.rb
+++ b/test/ruby/test_module.rb
@@ -1591,4 +1591,9 @@ class TestModule < Test::Unit::TestCase
end
assert_equal("", stderr)
end
+
+ def test_remove_const
+ m = Module.new
+ assert_raise(NameError){ m.instance_eval { remove_const(:__FOO__) } }
+ end
end
diff --git a/variable.c b/variable.c
index 2597015d50..f6bd70a211 100644
--- a/variable.c
+++ b/variable.c
@@ -1919,7 +1919,7 @@ rb_mod_remove_const(VALUE mod, VALUE name)
}
else {
rb_name_error_str(name, "`%"PRIsVALUE"' is not allowed as a constant name",
- QUOTE_ID(name));
+ QUOTE(name));
}
}
if (!rb_is_const_id(id)) {