diff options
author | tmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-10-19 19:21:05 +0000 |
---|---|---|
committer | tmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-10-19 19:21:05 +0000 |
commit | 3a90444c553176bac933d385fb27bda3195727a6 (patch) | |
tree | a152f8a56d135a88e4e4de4dde1a6063d35b3b1e | |
parent | 16b445008dc75a5e267b8236d913414ad6b51e2c (diff) | |
download | ruby-3a90444c553176bac933d385fb27bda3195727a6.tar.gz |
* variable.c (rb_class2name): call rb_tmp_class_path() directly to avoid extra rb_str_dup() from rb_class_name().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | variable.c | 6 |
2 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Sun Oct 20 04:18:48 2013 Aman Gupta <ruby@tmm1.net> + + * variable.c (rb_class2name): call rb_tmp_class_path() directly to + avoid extra rb_str_dup() from rb_class_name(). + Sat Oct 19 19:59:02 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> * win32/file.c (code_page): use simple array instead of st_table. diff --git a/variable.c b/variable.c index fa4a769b33..1614afb742 100644 --- a/variable.c +++ b/variable.c @@ -385,8 +385,10 @@ rb_class_name(VALUE klass) const char * rb_class2name(VALUE klass) { - VALUE name = rb_class_name(klass); - return RSTRING_PTR(name); + int permanent; + VALUE path = rb_tmp_class_path(klass, &permanent, rb_ivar_set); + if (NIL_P(path)) return NULL; + return RSTRING_PTR(path); } const char * |