From 2d1578804b769d00be6145ad335a90b7184e50bb Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 15 Oct 2014 14:37:51 +0000 Subject: vm_backtrace.c: unknown name method * vm_backtrace.c (location_format): adjust unknown name method results to other functions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- vm_backtrace.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'vm_backtrace.c') diff --git a/vm_backtrace.c b/vm_backtrace.c index 9948654ad2..d461f05586 100644 --- a/vm_backtrace.c +++ b/vm_backtrace.c @@ -288,14 +288,18 @@ location_absolute_path_m(VALUE self) static VALUE location_format(VALUE file, int lineno, VALUE name) { + VALUE s = rb_enc_sprintf(rb_enc_compatible(file, name), "%s", RSTRING_PTR(file)); if (lineno != 0) { - return rb_enc_sprintf(rb_enc_compatible(file, name), "%s:%d:in `%s'", - RSTRING_PTR(file), lineno, RSTRING_PTR(name)); + rb_str_catf(s, ":%d", lineno); + } + rb_str_cat_cstr(s, ":in "); + if (NIL_P(name)) { + rb_str_cat_cstr(s, "unknown method"); } else { - return rb_enc_sprintf(rb_enc_compatible(file, name), "%s:in `%s'", - RSTRING_PTR(file), RSTRING_PTR(name)); + rb_str_catf(s, "`%s'", RSTRING_PTR(name)); } + return s; } static VALUE -- cgit v1.2.3