summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-07-07 08:28:19 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-07-07 08:28:19 +0000
commit3de67ca69de67a67e564458e66dc962064fd4f42 (patch)
tree4e05791ac0538d23d0a43cbd9e78eb6e2428108c /gc.c
parent444d4435ba78fdb15f136cbb1d3c8e71c87ad559 (diff)
* eval.c (rb_call_super): k->super maybe NULL if klass is Kernel.
[ruby-dev:20519] * gc.c (obj_free): clear method cache when freeing class/module. * eval.c (rb_mod_remove_method): allow "remove_method" to accept multiple arguments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 9c8ac774f2..b1afbb1db7 100644
--- a/gc.c
+++ b/gc.c
@@ -1057,6 +1057,7 @@ obj_free(obj)
break;
case T_MODULE:
case T_CLASS:
+ rb_clear_cache_by_class((VALUE)obj);
st_free_table(RANY(obj)->as.klass.m_tbl);
if (RANY(obj)->as.object.iv_tbl) {
st_free_table(RANY(obj)->as.object.iv_tbl);