From e002d72d41b7a006788fcd38feb51a7b3c1ef870 Mon Sep 17 00:00:00 2001 From: Osei Fortune Date: Tue, 26 Jan 2021 17:25:58 -0400 Subject: [PATCH] fix(ios): force release of nsdata after saving image (#9177) gc isn't cleaning up this fast enough when used in a loop e.g https://github.com/NativeScript/plugins/issues/71 --- packages/core/image-source/index.ios.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/core/image-source/index.ios.ts b/packages/core/image-source/index.ios.ts index e829a1408..c9255a6d1 100644 --- a/packages/core/image-source/index.ios.ts +++ b/packages/core/image-source/index.ios.ts @@ -7,7 +7,7 @@ import { Color } from '../color'; // Types. import { path as fsPath, knownFolders } from '../file-system'; -import { isFileOrResourcePath, RESOURCE_PREFIX, layout } from '../utils'; +import { isFileOrResourcePath, RESOURCE_PREFIX, layout, releaseNativeObject } from '../utils'; import { getScaledDimensions } from './image-source-common'; @@ -311,7 +311,10 @@ export class ImageSource implements ImageSourceDefinition { const data = getImageData(this.ios, format, quality); if (data) { - return NSFileManager.defaultManager.createFileAtPathContentsAttributes(path, data, null); + const result = NSFileManager.defaultManager.createFileAtPathContentsAttributes(path, data, null); + // release native memory earlier + releaseNativeObject(data); + return result; } return false;