Skip to content

Commit 5a3baea

Browse files
authored
Merge pull request #293 from AppDevNext/lbtMaster
Fix poolable object leak context issue
2 parents c80dc1e + d215e0c commit 5a3baea

File tree

4 files changed

+25
-0
lines changed

4 files changed

+25
-0
lines changed

MPChartLib/src/main/java/com/github/mikephil/charting/jobs/AnimatedMoveViewJob.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,15 @@ public static AnimatedMoveViewJob getInstance(ViewPortHandler viewPortHandler, f
3636
}
3737

3838
public static void recycleInstance(AnimatedMoveViewJob instance){
39+
// Clear reference avoid memory leak
40+
instance.mViewPortHandler = null;
41+
instance.xValue = 0f;
42+
instance.yValue = 0f;
43+
instance.mTrans = null;
44+
instance.view = null;
45+
instance.xOrigin = 0f;
46+
instance.yOrigin = 0f;
47+
instance.animator.setDuration(0);
3948
pool.recycle(instance);
4049
}
4150

MPChartLib/src/main/java/com/github/mikephil/charting/jobs/MoveViewJob.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ public static MoveViewJob getInstance(ViewPortHandler viewPortHandler, float xVa
3131

3232
public static void recycleInstance(MoveViewJob instance){
3333
instance.recycle();
34+
// Clear reference avoid memory leak
35+
instance.mViewPortHandler = null;
36+
instance.xValue = 0f;
37+
instance.yValue = 0f;
38+
instance.mTrans = null;
39+
instance.view = null;
3440
pool.recycle(instance);
3541
}
3642

MPChartLib/src/main/java/com/github/mikephil/charting/jobs/ZoomJob.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,15 @@ public static ZoomJob getInstance(ViewPortHandler viewPortHandler, float scaleX,
3737
}
3838

3939
public static void recycleInstance(ZoomJob instance) {
40+
// Clear reference avoid memory leak
41+
instance.xValue = 0f;
42+
instance.yValue = 0f;
43+
instance.scaleX = 0f;
44+
instance.scaleY = 0f;
45+
instance.mViewPortHandler = null;
46+
instance.mTrans = null;
47+
instance.axisDependency = null;
48+
instance.view = null;
4049
pool.recycle(instance);
4150
}
4251

MPChartLib/src/main/java/com/github/mikephil/charting/utils/ObjectPool.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ public synchronized T get(){
117117
}
118118

119119
T result = (T)objects[this.objectsPointer];
120+
objects[this.objectsPointer] = null;
120121
result.currentOwnerId = Poolable.NO_OWNER;
121122
this.objectsPointer--;
122123

0 commit comments

Comments
 (0)