summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-04-10 05:48:43 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-04-10 05:48:43 +0000
commit12e1ee3abd5587c9d0750700a2478b2fbf8904d1 (patch)
tree2897ec289b6190b3b51602bf4ca0ebbcaad2622f /eval.c
parentbb1321b4e52b0a6cec5003487215dc364739c897 (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.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 827e1f9575..b4cf5c3540 100644
--- a/eval.c
+++ b/eval.c
@@ -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