From eaa43efce185f82ec27dc871ee42c76fc7f63f07 Mon Sep 17 00:00:00 2001 From: Valeriy Van Date: Fri, 9 Nov 2018 19:08:09 +0100 Subject: [PATCH] Fixes bug with unlocking pixel buffer --- .../Helper/ImageToPixelBufferConverter.swift | 5 +++-- .../Helper/ImageToPixelBufferConverter.swift | 5 +++-- .../Helper/ImageToPixelBufferConverter.swift | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CoreMLComplete/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift b/CoreMLComplete/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift index 7db9101..f3f4a3e 100644 --- a/CoreMLComplete/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift +++ b/CoreMLComplete/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift @@ -42,7 +42,9 @@ class ImageToPixelBufferConverter { return nil } - CVPixelBufferLockBaseAddress(createdPixelBuffer, CVPixelBufferLockFlags(rawValue: 0)) + let lockFlags = CVPixelBufferLockFlags(rawValue: 0) + CVPixelBufferLockBaseAddress(createdPixelBuffer, lockFlags) + defer { CVPixelBufferUnlockBaseAddress(createdPixelBuffer, lockFlags) } let pixelData = CVPixelBufferGetBaseAddress(createdPixelBuffer) let colorSpace = CGColorSpaceCreateDeviceRGB() @@ -62,7 +64,6 @@ class ImageToPixelBufferConverter { UIGraphicsPushContext(context) resizedImage.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)) UIGraphicsPopContext() - CVPixelBufferUnlockBaseAddress(createdPixelBuffer, CVPixelBufferLockFlags(rawValue: 0)) return createdPixelBuffer } diff --git a/CoreMLInit/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift b/CoreMLInit/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift index 7db9101..f3f4a3e 100644 --- a/CoreMLInit/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift +++ b/CoreMLInit/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift @@ -42,7 +42,9 @@ class ImageToPixelBufferConverter { return nil } - CVPixelBufferLockBaseAddress(createdPixelBuffer, CVPixelBufferLockFlags(rawValue: 0)) + let lockFlags = CVPixelBufferLockFlags(rawValue: 0) + CVPixelBufferLockBaseAddress(createdPixelBuffer, lockFlags) + defer { CVPixelBufferUnlockBaseAddress(createdPixelBuffer, lockFlags) } let pixelData = CVPixelBufferGetBaseAddress(createdPixelBuffer) let colorSpace = CGColorSpaceCreateDeviceRGB() @@ -62,7 +64,6 @@ class ImageToPixelBufferConverter { UIGraphicsPushContext(context) resizedImage.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)) UIGraphicsPopContext() - CVPixelBufferUnlockBaseAddress(createdPixelBuffer, CVPixelBufferLockFlags(rawValue: 0)) return createdPixelBuffer } diff --git a/Vision+CoreMLInit/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift b/Vision+CoreMLInit/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift index 7db9101..f3f4a3e 100644 --- a/Vision+CoreMLInit/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift +++ b/Vision+CoreMLInit/SmartGroceryList/Helper/ImageToPixelBufferConverter.swift @@ -42,7 +42,9 @@ class ImageToPixelBufferConverter { return nil } - CVPixelBufferLockBaseAddress(createdPixelBuffer, CVPixelBufferLockFlags(rawValue: 0)) + let lockFlags = CVPixelBufferLockFlags(rawValue: 0) + CVPixelBufferLockBaseAddress(createdPixelBuffer, lockFlags) + defer { CVPixelBufferUnlockBaseAddress(createdPixelBuffer, lockFlags) } let pixelData = CVPixelBufferGetBaseAddress(createdPixelBuffer) let colorSpace = CGColorSpaceCreateDeviceRGB() @@ -62,7 +64,6 @@ class ImageToPixelBufferConverter { UIGraphicsPushContext(context) resizedImage.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)) UIGraphicsPopContext() - CVPixelBufferUnlockBaseAddress(createdPixelBuffer, CVPixelBufferLockFlags(rawValue: 0)) return createdPixelBuffer }