diff options
author | Michael Manganiello <adamantike@users.noreply.github.com> | 2022-09-09 02:03:07 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-09 02:03:07 +0000 |
commit | 935471d95cba81d4e4f5463ffc0a905a6481a8ef (patch) | |
tree | ade7c5743f0821526f76341e88427b0a9f9088ea /app/src/main/res/layout | |
parent | 7293b9e75823441b921f6a1fb8c222a1528f6462 (diff) | |
download | infinity-for-reddit-935471d95cba81d4e4f5463ffc0a905a6481a8ef.tar infinity-for-reddit-935471d95cba81d4e4f5463ffc0a905a6481a8ef.tar.gz infinity-for-reddit-935471d95cba81d4e4f5463ffc0a905a6481a8ef.tar.bz2 infinity-for-reddit-935471d95cba81d4e4f5463ffc0a905a6481a8ef.tar.lz infinity-for-reddit-935471d95cba81d4e4f5463ffc0a905a6481a8ef.tar.xz infinity-for-reddit-935471d95cba81d4e4f5463ffc0a905a6481a8ef.tar.zst infinity-for-reddit-935471d95cba81d4e4f5463ffc0a905a6481a8ef.zip |
Fix memory leak on BigImageViewer (#1067)
Leak found using LeakCanary. Steps:
1. Enable the LeakCanary dependency.
1. Open the app.
1. Open any post image, and go back.
According to `Piasy/BigImageViewer` documentation,
[Initialize section](https://github.com/Piasy/BigImageViewer/blob/9cc045e8146dc8833a487576745f17158bae4a4a/README.md#initialize),
the app context must be used to avoid memory leaks.
Leak trace:
```
2022-09-04 19:51:38.154 13332-13332/ml.docilealligator.infinityforreddit.debug D/LeakCanary:
┬───
│ GC Root: Thread object
│
├─ android.os.HandlerThread instance
│ Leaking: NO (PathClassLoader↓ is not leaking)
│ Thread name: 'LeakCanary-Heap-Dump'
│ ↓ Thread.contextClassLoader
├─ dalvik.system.PathClassLoader instance
│ Leaking: NO (BigImageViewer↓ is not leaking and A ClassLoader is never leaking)
│ ↓ ClassLoader.runtimeInternalObjects
├─ java.lang.Object[] array
│ Leaking: NO (BigImageViewer↓ is not leaking)
│ ↓ Object[257]
├─ com.github.piasy.biv.BigImageViewer class
│ Leaking: NO (a class is never leaking)
│ ↓ static BigImageViewer.sInstance
│ ~~~~~~~~~
├─ com.github.piasy.biv.BigImageViewer instance
│ Leaking: UNKNOWN
│ Retaining 969.9 kB in 14812 objects
│ ↓ BigImageViewer.mImageLoader
│ ~~~~~~~~~~~~
├─ com.github.piasy.biv.loader.glide.GlideImageLoader instance
│ Leaking: UNKNOWN
│ Retaining 969.9 kB in 14811 objects
│ ↓ GlideImageLoader.mRequestManager
│ ~~~~~~~~~~~~~~~
├─ com.bumptech.glide.RequestManager instance
│ Leaking: UNKNOWN
│ Retaining 969.9 kB in 14808 objects
│ context instance of ml.docilealligator.infinityforreddit.activities.ViewPostDetailActivity with mDestroyed = true
│ ↓ RequestManager.context
│ ~~~~~~~
╰→ ml.docilealligator.infinityforreddit.activities.ViewPostDetailActivity instance
Leaking: YES (ObjectWatcher was watching this because ml.docilealligator.infinityforreddit.activities.
ViewPostDetailActivity received Activity#onDestroy() callback and Activity#mDestroyed is true)
Retaining 966.2 kB in 14703 objects
key = f69c74cc-521e-4f6c-b5c8-8f787e27df75
watchDurationMillis = 5547
retainedDurationMillis = 541
mApplication instance of ml.docilealligator.infinityforreddit.Infinity
mBase instance of androidx.appcompat.view.ContextThemeWrapper
```
Diffstat (limited to 'app/src/main/res/layout')
0 files changed, 0 insertions, 0 deletions