From 3fda6a9a2b380a750b72d369f5fb4f11540ad1ef Mon Sep 17 00:00:00 2001 From: Aaron Chiu Date: Tue, 18 Apr 2017 19:59:57 -0700 Subject: [PATCH] clear DraweeControllerBuilder after usage Reviewed By: achen1 Differential Revision: D4908279 fbshipit-source-id: 8de9930a2160f3201f8b7a8a66415310fa2f41de --- .../java/com/facebook/react/views/image/ReactImageView.java | 4 ++++ .../frescosupport/FrescoBasedReactTextInlineImageSpan.java | 1 + 2 files changed, 5 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.java b/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.java index 259f177f0..4d65e5141 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.java @@ -449,6 +449,10 @@ public class ReactImageView extends GenericDraweeView { setController(mDraweeControllerBuilder.build()); mIsDirty = false; + + // Reset again so the DraweeControllerBuilder clears all it's references. Otherwise, this causes + // a memory leak. + mDraweeControllerBuilder.reset(); } // VisibleForTesting diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.java index 0b8dcd19f..2293bc674 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.java @@ -141,6 +141,7 @@ public class FrescoBasedReactTextInlineImageSpan extends TextInlineImageSpan { .setImageRequest(imageRequest) .build(); mDraweeHolder.setController(draweeController); + mDraweeControllerBuilder.reset(); mDrawable = mDraweeHolder.getTopLevelDrawable(); mDrawable.setBounds(0, 0, mWidth, mHeight);