aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--variable.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index dbc09f1eff..7bbcc77478 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 *