diff options
| author | 2023-05-22 22:27:12 +0000 | |
|---|---|---|
| committer | 2023-05-22 22:27:12 +0000 | |
| commit | d52e734a2ec8935e4f246a7521e3b4f3f8e89701 (patch) | |
| tree | f030ab3a4bf5ca978f27b291fe4d31504a8cd457 | |
| parent | 96c64c020ccb6c468dadda3dad4aeefccb2dd307 (diff) | |
| parent | dfd125dc25fef939f6232f8c6cb59a6a6ffa7733 (diff) | |
Merge "Fix some memory leakage"
| -rw-r--r-- | media/java/android/media/MediaCodec.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 8e8ed6c7acec..5c3aa96925f5 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -3089,7 +3089,10 @@ final public class MediaCodec { mValid = false; mNativeContext = 0; } - sPool.offer(this); + + if (!mInternal) { + sPool.offer(this); + } } private native void native_recycle(); @@ -3153,6 +3156,7 @@ final public class MediaCodec { mNativeContext = context; mMappable = isMappable; mValid = (context != 0); + mInternal = true; } private static final BlockingQueue<LinearBlock> sPool = @@ -3163,6 +3167,7 @@ final public class MediaCodec { private boolean mMappable = false; private ByteBuffer mMapped = null; private long mNativeContext = 0; + private boolean mInternal = false; } /** |