From 0c1e31bcf3f7a5925d7e5f5f686b670d83987d32 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 2 Jan 2020 18:47:27 -0800 Subject: [PATCH] Fix memory leak in sort contros pipe --- .../vision/pipeline/pipes/SortContoursPipe.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/SortContoursPipe.java b/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/SortContoursPipe.java index 19187db9a..b6b0f0b3e 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/SortContoursPipe.java +++ b/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/SortContoursPipe.java @@ -6,6 +6,7 @@ import com.chameleonvision.vision.pipeline.Pipe; import com.chameleonvision.vision.pipeline.impl.StandardCVPipeline; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.math3.util.FastMath; +import org.opencv.core.*; import java.util.ArrayList; import java.util.Comparator; @@ -78,9 +79,12 @@ public class SortContoursPipe implements Pipe(sortedContours.subList(0, Math.min(input.size(), maxTargets - 1))); + sortedContours.subList(Math.min(input.size(), maxTargets - 1), sortedContours.size()).forEach(StandardCVPipeline.TrackedTarget::release); + sortedContours.clear(); + long processTime = System.nanoTime() - processStartNanos; - return Pair.of(sortedContours, processTime); + return Pair.of(sublistedContors, processTime); } private double calcSquareCenterDistance(StandardCVPipeline.TrackedTarget rect) {