From 51df70548a2f68e332c74163412ed771fad7b2a8 Mon Sep 17 00:00:00 2001 From: maxli Date: Thu, 21 Mar 2024 11:40:29 +0800 Subject: [PATCH] fix(android): remove ImageDataHolder recycle --- .../component/image/ImageDataHolder.java | 27 ++----------------- .../renderer/component/image/ImageLoader.java | 7 +---- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/component/image/ImageDataHolder.java b/renderer/native/android/src/main/java/com/tencent/renderer/component/image/ImageDataHolder.java index 2e44d8f70b9..833da270559 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/component/image/ImageDataHolder.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/component/image/ImageDataHolder.java @@ -74,7 +74,6 @@ public class ImageDataHolder extends ImageRecycleObject implements ImageDataSupp private Bitmap mBitmap; @Nullable private BitmapFactory.Options mOptions; - private final AtomicInteger mRefCount = new AtomicInteger(0); public ImageDataHolder(@NonNull String source) { init(source, null, 0, 0); @@ -128,13 +127,12 @@ public void recycle() { @Override public void attached() { - mRefCount.incrementAndGet(); + } @Override public void detached() { - mRefCount.decrementAndGet(); - clear(); + } @Override @@ -145,27 +143,6 @@ public void cached() { @Override public void evicted() { resetStateFlag(FLAG_CACHED); - clear(); - } - - private void clear() { - if (checkStateFlag(FLAG_CACHED) || mRefCount.get() > 0) { - return; - } - if (mBitmap != null) { - if (checkStateFlag(FLAG_RECYCLABLE)) { - // If the bitmap is created locally, we need to manage its life cycle ourselves. - mBitmap.recycle(); - } - mBitmap = null; - } - mGifMovie = null; - mDrawable = null; - mOptions = null; - mSource = null; - mKey = null; - mStateFlags = 0; - recycle(); } @Override diff --git a/renderer/native/android/src/main/java/com/tencent/renderer/component/image/ImageLoader.java b/renderer/native/android/src/main/java/com/tencent/renderer/component/image/ImageLoader.java index 97707e91424..28ccb2308be 100644 --- a/renderer/native/android/src/main/java/com/tencent/renderer/component/image/ImageLoader.java +++ b/renderer/native/android/src/main/java/com/tencent/renderer/component/image/ImageLoader.java @@ -105,12 +105,7 @@ private void handleResourceData(@NonNull String url, @NonNull final ImageDataKey byte[] bytes = dataHolder.getBytes(); if (dataHolder.resultCode == ResourceDataHolder.RESOURCE_LOAD_SUCCESS_CODE && bytes != null) { - imageHolder = ImageDataHolder.obtain(); - if (imageHolder != null) { - imageHolder.init(url, urlKey, width, height); - } else { - imageHolder = new ImageDataHolder(url, urlKey, width, height); - } + imageHolder = new ImageDataHolder(url, urlKey, width, height); try { imageHolder.decodeImageData(bytes, initProps, mImageDecoderAdapter); // Should check the request data returned from the host, if the data is