diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-09-10 08:22:03 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-09-10 08:22:03 +0000 |
commit | 24974c0ea15e7d1c221505880229d6be51862f92 (patch) | |
tree | b85bc2ba5c4017dd806ebb802936bde5fecafc40 | |
parent | 826341c7180cffe56fb1fb390360d0a95a21d73c (diff) | |
download | ruby-24974c0ea15e7d1c221505880229d6be51862f92.tar.gz |
gc.c: preserve encoding
* gc.c (should_be_callable): preserve encoding of class name in
error messages.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | gc.c | 4 | ||||
-rw-r--r-- | test/ruby/test_objectspace.rb | 5 |
2 files changed, 7 insertions, 2 deletions
@@ -2279,8 +2279,8 @@ static void should_be_callable(VALUE block) { if (!rb_obj_respond_to(block, rb_intern("call"), TRUE)) { - rb_raise(rb_eArgError, "wrong type argument %s (should be callable)", - rb_obj_classname(block)); + rb_raise(rb_eArgError, "wrong type argument %"PRIsVALUE" (should be callable)", + rb_obj_class(block)); } } static void diff --git a/test/ruby/test_objectspace.rb b/test/ruby/test_objectspace.rb index a4198f8ed4..de7c6be916 100644 --- a/test/ruby/test_objectspace.rb +++ b/test/ruby/test_objectspace.rb @@ -78,6 +78,11 @@ End end assert_in_out_err([], code[""], ["finalized"]) assert_in_out_err([], code["private "], ["finalized"]) + c = EnvUtil.labeled_class("C\u{3042}").new + o = Object.new + assert_raise_with_message(ArgumentError, /C\u{3042}/) { + ObjectSpace.define_finalizer(o, c) + } end def test_each_object |