From f02ce816b76cd69258a1917456d8a4a954fa2d64 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Wed, 16 Feb 2022 23:10:39 +0100 Subject: [PATCH] fix: UIImage leaking after Image is disposed --- packages/core/ui/image/index.ios.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/core/ui/image/index.ios.ts b/packages/core/ui/image/index.ios.ts index d99a00578..e3cd77e99 100644 --- a/packages/core/ui/image/index.ios.ts +++ b/packages/core/ui/image/index.ios.ts @@ -24,6 +24,21 @@ export class Image extends ImageBase { this._setNativeClipToBounds(); } + public disposeNativeView(): void { + super.disposeNativeView(); + + if (this.imageSource?.ios) { + // release the native UIImage + CFRelease(this.imageSource.ios); + } + + this.imageSource = null; + + if (this.nativeViewProtected?.image) { + this.nativeViewProtected.image = null; + } + } + private setTintColor(value: Color) { if (value && this.nativeViewProtected.image && !this._templateImageWasCreated) { this.nativeViewProtected.image = this.nativeViewProtected.image.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);