diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 21:40:24 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-15 21:40:24 +0000 |
commit | 1845b36b50f75bfdedabdc2b0787e0e9c75c8588 (patch) | |
tree | 9359f228332c95a928c4c034b96650cb31eb6176 | |
parent | 55c3f7b6440b3c49e39941876b9f07e913501675 (diff) |
* 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_5@13024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | error.c | 12 | ||||
-rw-r--r-- | eval.c | 4 | ||||
-rw-r--r-- | version.h | 2 |
4 files changed, 15 insertions, 8 deletions
@@ -1,3 +1,8 @@ +Thu Aug 16 06:39:19 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * eval.c (get_backtrace): check the result more. + [ruby-dev:31261] [ruby-bugs-12398] + Thu Aug 16 06:32:25 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * bignum.c (rb_big_lshift, rb_big_rshift): separated functions @@ -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)); } /* @@ -1200,6 +1200,8 @@ error_pos() } } +VALUE rb_check_backtrace(VALUE); + static VALUE get_backtrace(info) VALUE info; @@ -1207,7 +1209,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 @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2007-08-16" #define RUBY_VERSION_CODE 185 #define RUBY_RELEASE_CODE 20070816 -#define RUBY_PATCHLEVEL 80 +#define RUBY_PATCHLEVEL 81 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 |