From 4bf7d3d63e11db064099bacc153018312c762b4c Mon Sep 17 00:00:00 2001 From: Hannes Achleitner Date: Sat, 5 Jul 2025 08:05:51 +0200 Subject: [PATCH] Simplify View reference memory leak Inspired by https://github.com/PhilJay/MPAndroidChart/pull/5511 --- .../github/mikephil/charting/jobs/AnimatedMoveViewJob.java | 4 +--- .../java/com/github/mikephil/charting/jobs/MoveViewJob.java | 3 --- .../main/java/com/github/mikephil/charting/jobs/ZoomJob.java | 4 +--- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/AnimatedMoveViewJob.java b/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/AnimatedMoveViewJob.java index cfc8d1b250..e6903cf854 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/AnimatedMoveViewJob.java +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/AnimatedMoveViewJob.java @@ -37,14 +37,12 @@ public static AnimatedMoveViewJob getInstance(ViewPortHandler viewPortHandler, f public static void recycleInstance(AnimatedMoveViewJob instance){ // Clear reference avoid memory leak - instance.mViewPortHandler = null; instance.xValue = 0f; instance.yValue = 0f; - instance.mTrans = null; - instance.view = null; instance.xOrigin = 0f; instance.yOrigin = 0f; instance.animator.setDuration(0); + instance.recycle(); pool.recycle(instance); } diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/MoveViewJob.java b/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/MoveViewJob.java index a63d441c91..e24d746f4a 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/MoveViewJob.java +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/MoveViewJob.java @@ -32,11 +32,8 @@ public static MoveViewJob getInstance(ViewPortHandler viewPortHandler, float xVa public static void recycleInstance(MoveViewJob instance){ instance.recycle(); // Clear reference avoid memory leak - instance.mViewPortHandler = null; instance.xValue = 0f; instance.yValue = 0f; - instance.mTrans = null; - instance.view = null; pool.recycle(instance); } diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/ZoomJob.java b/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/ZoomJob.java index c4098ea0b7..8c4c74df96 100644 --- a/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/ZoomJob.java +++ b/MPChartLib/src/main/java/com/github/mikephil/charting/jobs/ZoomJob.java @@ -42,10 +42,8 @@ public static void recycleInstance(ZoomJob instance) { instance.yValue = 0f; instance.scaleX = 0f; instance.scaleY = 0f; - instance.mViewPortHandler = null; - instance.mTrans = null; instance.axisDependency = null; - instance.view = null; + instance.recycle(); pool.recycle(instance); }