Explorar o código

Add missing free in debug mode

Samuel Thibault %!s(int64=5) %!d(string=hai) anos
pai
achega
40b80d96b8
Modificáronse 1 ficheiros con 10 adicións e 0 borrados
  1. 10 0
      src/core/dependencies/tags.c

+ 10 - 0
src/core/dependencies/tags.c

@@ -120,13 +120,23 @@ static void _starpu_tag_free(void *_tag)
 			unsigned STARPU_ATTRIBUTE_UNUSED remaining = STARPU_ATOMIC_ADD(&cg->remaining, -1);
 			unsigned STARPU_ATTRIBUTE_UNUSED remaining = STARPU_ATOMIC_ADD(&cg->remaining, -1);
 
 
 			if (!ntags && (cg->cg_type == STARPU_CG_TAG))
 			if (!ntags && (cg->cg_type == STARPU_CG_TAG))
+			{
 				/* Last tag this cg depends on, cg becomes unreferenced */
 				/* Last tag this cg depends on, cg becomes unreferenced */
+#ifdef STARPU_DEBUG
+				free(cg->deps);
+				free(cg->done);
+#endif
 				free(cg);
 				free(cg);
+			}
 		}
 		}
 
 
 #ifdef STARPU_DYNAMIC_DEPS_SIZE
 #ifdef STARPU_DYNAMIC_DEPS_SIZE
 		free(tag->tag_successors.succ);
 		free(tag->tag_successors.succ);
 #endif
 #endif
+#ifdef STARPU_DEBUG
+		free(tag->tag_successors.deps);
+		free(tag->tag_successors.done);
+#endif
 
 
 		_starpu_spin_unlock(&tag->lock);
 		_starpu_spin_unlock(&tag->lock);
 		_starpu_spin_destroy(&tag->lock);
 		_starpu_spin_destroy(&tag->lock);