From 0aed7c6874ba75f1a85899d0ed0ea07b24a9f3ef Mon Sep 17 00:00:00 2001 From: ko1 Date: Fri, 13 Dec 2013 04:31:06 +0000 Subject: * error.c: add Exception#backtrace_locations. Now, there are no setter and independent from Exception#backtrace. [Feature #8960] * eval.c (setup_exception): set backtrace locations for `bt_location' special attribute. * vm_backtrace.c (rb_backtrace_to_location_ary): added. * internal.h: ditto. * test/ruby/test_backtrace.rb: add a test for Exception#backtrace_locations. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'eval.c') diff --git a/eval.c b/eval.c index c92d05dc19..2882c57295 100644 --- a/eval.c +++ b/eval.c @@ -493,10 +493,12 @@ setup_exception(rb_thread_t *th, int tag, volatile VALUE mesg) if (OBJ_FROZEN(mesg)) { mesg = rb_obj_dup(mesg); } + rb_iv_set(mesg, "bt_locations", at); set_backtrace(mesg, at); } } } + if (!NIL_P(mesg)) { th->errinfo = mesg; } -- cgit v1.2.3