diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-19 10:24:17 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-07-19 10:24:17 +0000 |
commit | a1c76bc3de808ab3c5b36725369e952210ef8b64 (patch) | |
tree | 9c44e9098e76cec1cede0211d7a2b5239277bfc8 /error.c | |
parent | 09ce106ab3341030cc1893ca308532d196658508 (diff) | |
download | ruby-a1c76bc3de808ab3c5b36725369e952210ef8b64.tar.gz |
* eval_error.ci (get_backtrace): check the result more.
[ruby-dev:31261] [ruby-bugs-12398]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'error.c')
-rw-r--r-- | error.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -495,14 +495,14 @@ exc_inspect(VALUE exc) static VALUE exc_backtrace(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(VALUE bt) +VALUE +rb_check_backtrace(VALUE bt) { long i; static const char *err = "backtrace must be Array of String"; @@ -536,7 +536,7 @@ check_backtrace(VALUE bt) static VALUE exc_set_backtrace(VALUE exc, VALUE bt) { - return rb_iv_set(exc, "bt", check_backtrace(bt)); + return rb_iv_set(exc, "bt", rb_check_backtrace(bt)); } /* |