# HG changeset patch # User Yasumasa Suenaga # Date 1485175831 -32400 # Node ID 9fb6779d97d122199f3b9646aa9d4321ec2df4fb # Parent 9722a18483101930b02273b85613a2364f8d62ec Bug 3295: Incorrect condition for removing TObjectData instance Reviewed-by: ykubota https://github.com/HeapStats/heapstats/pull/79 diff -r 9722a1848310 -r 9fb6779d97d1 agent/ChangeLog --- a/agent/ChangeLog Mon Jan 23 18:50:37 2017 +0900 +++ b/agent/ChangeLog Mon Jan 23 21:50:31 2017 +0900 @@ -1,6 +1,7 @@ 2017-01-23 Yasumasa Suenaga * Bug 3294: Reference counter should be handled in TClassContainer::allClear() + * Bug 3295: Incorrect condition for removing TObjectData instance 2017-01-17 Yasumasa Suenaga diff -r 9722a1848310 -r 9fb6779d97d1 agent/src/classContainer.cpp --- a/agent/src/classContainer.cpp Mon Jan 23 18:50:37 2017 +0900 +++ b/agent/src/classContainer.cpp Mon Jan 23 21:50:31 2017 +0900 @@ -404,12 +404,9 @@ cur != classMap->end(); ++cur) { TObjectData *pos = (*cur).second; - if (pos != NULL) { - atomic_inc(&pos->numRefsFromChildren, -1); - if (atomic_get(&pos->numRefsFromChildren) == 0) { - free(pos->className); - free(pos); - } + if ((pos != NULL) && (atomic_get(&pos->numRefsFromChildren) == 0)) { + free(pos->className); + free(pos); } }