1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* vm_method.c: separate clearing cache entry code.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2009-07-15 23:59:15 +00:00
parent 0e03a296e6
commit d4628c0bcd
2 changed files with 12 additions and 4 deletions

View file

@ -1,3 +1,7 @@
Thu Jul 16 08:57:44 2009 Koichi Sasada <ko1@atdot.net>
* vm_method.c: separate clearing cache entry code.
Thu Jul 16 08:56:32 2009 Koichi Sasada <ko1@atdot.net>
* dir.c (push_glob): re-fix GC problem.

View file

@ -34,7 +34,8 @@ rb_clear_cache(void)
ent = cache;
end = ent + CACHE_SIZE;
while (ent < end) {
ent->me = ent->mid = 0;
ent->me = 0;
ent->mid = 0;
ent++;
}
}
@ -52,7 +53,8 @@ rb_clear_cache_for_undef(VALUE klass, ID id)
end = ent + CACHE_SIZE;
while (ent < end) {
if ((ent->me && ent->me->klass == klass) && ent->mid == id) {
ent->me = ent->mid = 0;
ent->me = 0;
ent->mid = 0;
}
ent++;
}
@ -71,7 +73,8 @@ rb_clear_cache_by_id(ID id)
end = ent + CACHE_SIZE;
while (ent < end) {
if (ent->mid == id) {
ent->me = ent->mid = 0;
ent->me = 0;
ent->mid = 0;
}
ent++;
}
@ -90,7 +93,8 @@ rb_clear_cache_by_class(VALUE klass)
end = ent + CACHE_SIZE;
while (ent < end) {
if (ent->klass == klass || (ent->me && ent->me->klass == klass)) {
ent->me = ent->mid = 0;
ent->me = 0;
ent->mid = 0;
}
ent++;
}