diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-04-10 05:48:43 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-04-10 05:48:43 +0000 |
commit | 12e1ee3abd5587c9d0750700a2478b2fbf8904d1 (patch) | |
tree | 2897ec289b6190b3b51602bf4ca0ebbcaad2622f /eval.c | |
parent | bb1321b4e52b0a6cec5003487215dc364739c897 (diff) |
2000-04-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -393,11 +393,13 @@ rb_attr(klass, id, read, write, ex) attriv = rb_intern(buf); if (read) { rb_add_method(klass, id, NEW_IVAR(attriv), noex); + rb_funcall(klass, rb_intern("method_added"), 1, INT2FIX(id)); } sprintf(buf, "%s=", name); id = rb_intern(buf); if (write) { rb_add_method(klass, id, NEW_ATTRSET(attriv), noex); + rb_funcall(klass, rb_intern("method_added"), 1, INT2FIX(id)); } } @@ -5072,6 +5074,7 @@ rb_mod_modfunc(argc, argv, module) } rb_clear_cache_by_id(id); rb_add_method(rb_singleton_class(module), id, body->nd_body, NOEX_PUBLIC); + rb_funcall(module, rb_intern("singleton_method_added"), 1, INT2FIX(id)); } return module; } @@ -6253,6 +6256,10 @@ thread_free(th) if (th->stk_ptr) free(th->stk_ptr); th->stk_ptr = 0; if (th->locals) st_free_table(th->locals); + if (th->status != THREAD_KILLED) { + th->prev->next = th->next; + th->next->prev = th->prev; + } if (th != main_thread) free(th); } @@ -7605,7 +7612,7 @@ static VALUE catch_i(tag) ID tag; { - return rb_funcall(Qnil, rb_intern("catch"), 0, INT2FIX(tag)); + return rb_funcall(Qnil, rb_intern("catch"), 1, INT2FIX(tag)); } VALUE |