summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2019-05-28 11:41:49 +0900
committerKoichi Sasada <ko1@atdot.net>2019-05-28 11:44:08 +0900
commitf9401d5d44dd4ae69b6a14fcccd41c2810033986 (patch)
treea96ef1fb00ecf1f02b2f159dd080b005fb2d763c /gc.c
parent2229acaa54e1011ae77710e10f8c9e7933403127 (diff)
should skip T_ZOMBIE here.
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index cf9d1e4039..4d92ede42a 100644
--- a/gc.c
+++ b/gc.c
@@ -7523,8 +7523,17 @@ count_pinned(struct heap_page *page)
void *poisoned = asan_poisoned_object_p(v);
asan_unpoison_object(v, false);
- if (RBASIC(v)->flags && RVALUE_PINNED(v)) {
+ switch (BUILTIN_TYPE(v)) {
+ case T_NONE:
+ break;
+ case T_ZOMBIE:
pinned++;
+ break;
+ default:
+ if (RVALUE_PINNED(v)) {
+ pinned++;
+ }
+ break;
}
if (poisoned) {