From 1a68238e695ade157853de3bc1f92374dbc50497 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 22 Aug 2007 01:57:22 +0000 Subject: * eval.c (get_backtrace): check the result more. [ruby-dev:31261] [ruby-bugs-12398] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@13190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ error.c | 12 ++++++------ eval.c | 4 +++- version.h | 2 +- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 300c951f59..3d2288c706 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Aug 22 10:55:00 2007 Nobuyoshi Nakada + + * eval.c (get_backtrace): check the result more. + [ruby-dev:31261] [ruby-bugs-12398] + Wed Aug 22 10:36:15 2007 Nobuyoshi Nakada * bignum.c (rb_big_lshift, rb_big_rshift): separated functions diff --git a/error.c b/error.c index 44e709276f..608d1fa558 100644 --- a/error.c +++ b/error.c @@ -488,14 +488,14 @@ static VALUE exc_backtrace(exc) VALUE exc; { - ID bt = rb_intern("bt"); + static ID bt; - if (!rb_ivar_defined(exc, bt)) return Qnil; - return rb_ivar_get(exc, bt); + if (!bt) bt = rb_intern("bt"); + return rb_attr_get(exc, bt); } -static VALUE -check_backtrace(bt) +VALUE +rb_check_backtrace(bt) VALUE bt; { long i; @@ -532,7 +532,7 @@ exc_set_backtrace(exc, bt) VALUE exc; VALUE bt; { - return rb_iv_set(exc, "bt", check_backtrace(bt)); + return rb_iv_set(exc, "bt", rb_check_backtrace(bt)); } /* diff --git a/eval.c b/eval.c index d5e050bc51..fa0ed979a6 100644 --- a/eval.c +++ b/eval.c @@ -1197,6 +1197,8 @@ error_pos() } } +VALUE rb_check_backtrace(VALUE); + static VALUE get_backtrace(info) VALUE info; @@ -1204,7 +1206,7 @@ get_backtrace(info) if (NIL_P(info)) return Qnil; info = rb_funcall(info, rb_intern("backtrace"), 0); if (NIL_P(info)) return Qnil; - return rb_check_array_type(info); + return rb_check_backtrace(info); } static void diff --git a/version.h b/version.h index 4f3a61a239..8a8dbfd7b6 100644 --- a/version.h +++ b/version.h @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2007-08-22" #define RUBY_VERSION_CODE 186 #define RUBY_RELEASE_CODE 20070822 -#define RUBY_PATCHLEVEL 71 +#define RUBY_PATCHLEVEL 72 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 -- cgit v1.2.3