changeset 193:21afb593dd95

Bug 3295: Incorrect condition for removing TObjectData instance Reviewed-by: ykubota https://github.com/HeapStats/heapstats/pull/79
author Yasumasa Suenaga <yasuenag@gmail.com>
date Mon, 23 Jan 2017 21:48:48 +0900
parents 875e77aab468
children e761d94faf34
files ChangeLog agent/src/heapstats-engines/classContainer.cpp
diffstat 2 files changed, 4 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Jan 23 18:49:27 2017 +0900
+++ b/ChangeLog	Mon Jan 23 21:48:48 2017 +0900
@@ -1,6 +1,7 @@
 2017-01-23  Yasumasa Suenaga <yasuenag@gmail.com>
 
 	* Bug 3294: Reference counter should be handled in TClassContainer::allClear()
+	* Bug 3295: Incorrect condition for removing TObjectData instance
 
 2017-01-17  Yasumasa Suenaga <yasuenag@gmail.com>
 
--- a/agent/src/heapstats-engines/classContainer.cpp	Mon Jan 23 18:49:27 2017 +0900
+++ b/agent/src/heapstats-engines/classContainer.cpp	Mon Jan 23 21:48:48 2017 +0900
@@ -369,12 +369,9 @@
          ++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);
       }
     }