diff --git a/ChangeLog b/ChangeLog index 86936e9883..32006e62ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Mar 13 22:19:17 2005 Nobuyoshi Nakada + + * eval.c (recursive_pop): raise TypeError instead of fatal error. + fixed: [ruby-dev:25843] + Sun Mar 13 10:09:17 2005 Masatoshi SEKI * test/rinda/test_rinda.rb: remove test_gc. [ruby-dev:25871] @@ -25,10 +30,10 @@ Thu Mar 10 19:10:29 2005 Hidetoshi NAGAI * ext/tk/sample/tkrttimer.rb: sample of TkRTTimer class - * ext/tk/lib/tk/textmark.rb: move TkTextMark#+ and TkTextMark#- to + * ext/tk/lib/tk/textmark.rb: move TkTextMark#+ and TkTextMark#- to TkText::IndexModMethods - * ext/tk/lib/tk/text.rb: improve TkTextMark#+ and TkTextMark#-, and + * ext/tk/lib/tk/text.rb: improve TkTextMark#+ and TkTextMark#-, and add them to TkText::IndexModMethods module * ext/tk/sample/tktextio.rb: add test part of "seek by text index @@ -49,7 +54,7 @@ Wed Mar 9 19:42:21 2005 GOTOU Yuuzou - SSLContext#tmp_dh_callback is called in key exchange with DH algorithm. it must return an OpenSSL::PKey::DH object. - * ext/openssl/ossl_ssl.c: + * ext/openssl/ossl_ssl.c: (ossl_sslctx_set_ciphers): ignore the argument if it's nil. (ossl_start_ssl, ossl_ssl_write): call rb_sys_fail if errno isn't 0. [ruby-dev:25831] @@ -97,7 +102,7 @@ Tue Mar 8 12:36:17 2005 Yukihiro Matsumoto Tue Mar 8 10:48:53 2005 NAKAMURA Usaku * eval.c (rb_exec_recursive): declaration should precede statements - before C99. + before C99. Tue Mar 8 10:05:40 2005 Yukihiro Matsumoto @@ -114,7 +119,7 @@ Tue Mar 8 01:19:00 2005 NARUSE, Yui Mon Mar 7 21:29:40 2005 GOTOU Yuuzou - * lib/webrick/server.rb (WEBrick::GenericServer#start): should + * lib/webrick/server.rb (WEBrick::GenericServer#start): should restore @token if accept failure. suggested by Dominique Brezinski. [ruby-core:04518] diff --git a/eval.c b/eval.c index 8aed6dfa62..e50bbed4f0 100644 --- a/eval.c +++ b/eval.c @@ -4633,7 +4633,6 @@ break_jump(retval) static VALUE bmcall _((VALUE, VALUE)); static int method_arity _((VALUE)); -/*:nodoc:*/ static VALUE rb_yield_0(val, self, klass, flags, avalue) VALUE val, self, klass; /* OK */ @@ -13039,11 +13038,17 @@ recursive_pop() sym = ID2SYM(ruby_frame->this_func); if (NIL_P(hash) || TYPE(hash) != T_HASH) { - rb_bug("invalid inspect_tbl hash"); + VALUE symname = rb_inspect(sym); + VALUE thrname = rb_inspect(rb_thread_current()); + rb_raise(rb_eTypeError, "invalid inspect_tbl hash for %s in %s", + StringValuePtr(symname), StringValuePtr(thrname)); } list = rb_hash_aref(hash, sym); if (NIL_P(list) || TYPE(list) != T_ARRAY) { - rb_bug("invalid inspect_tbl list"); + VALUE symname = rb_inspect(sym); + VALUE thrname = rb_inspect(rb_thread_current()); + rb_raise(rb_eTypeError, "invalid inspect_tbl list for %s in %s", + StringValuePtr(symname), StringValuePtr(thrname)); } rb_ary_pop(list); }