# HG changeset patch # User Yasumasa Suenaga # Date 1485165037 -32400 # Node ID 9722a18483101930b02273b85613a2364f8d62ec # Parent eafa619db958017c15f754c09d512d36757424a3 Bug 3294: Reference counter should be handled in TClassContainer::allClear() Reviewed-by: ykubota https://github.com/HeapStats/heapstats/pull/78 diff -r eafa619db958 -r 9722a1848310 agent/ChangeLog --- a/agent/ChangeLog Tue Jan 17 12:08:51 2017 +0900 +++ b/agent/ChangeLog Mon Jan 23 18:50:37 2017 +0900 @@ -1,3 +1,7 @@ +2017-01-23 Yasumasa Suenaga + + * Bug 3294: Reference counter should be handled in TClassContainer::allClear() + 2017-01-17 Yasumasa Suenaga * Bug 3284: HeapStats Agent might crash when object children are scanned diff -r eafa619db958 -r 9722a1848310 agent/src/classContainer.cpp --- a/agent/src/classContainer.cpp Tue Jan 17 12:08:51 2017 +0900 +++ b/agent/src/classContainer.cpp Mon Jan 23 18:50:37 2017 +0900 @@ -404,9 +404,12 @@ cur != classMap->end(); ++cur) { TObjectData *pos = (*cur).second; - if (likely(pos != NULL)) { + if (pos != NULL) { + atomic_inc(&pos->numRefsFromChildren, -1); + if (atomic_get(&pos->numRefsFromChildren) == 0) { free(pos->className); free(pos); + } } }