From b87fe7e58501b192544549bd96abe602b7055a42 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Thu, 30 Sep 2021 07:35:50 -0400 Subject: [PATCH] Protect crashes against invalid Procreate documents --- SilicaViewer/Document.swift | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/SilicaViewer/Document.swift b/SilicaViewer/Document.swift index 6bb4778..c8bc3ab 100644 --- a/SilicaViewer/Document.swift +++ b/SilicaViewer/Document.swift @@ -512,7 +512,12 @@ class Document: NSDocument { ccgContext?.fill(info.cgRect) let context = CIContext() - var masterImage = CIImage(cgImage: (ccgContext?.makeImage())!) + + guard let cgImage = ccgContext?.makeImage() else { + return nil + } + + var masterImage = CIImage(cgImage: cgImage) var previousImage: CGImage? = nil @@ -571,8 +576,11 @@ class Document: NSDocument { } } - let cgImage = context.createCGImage(masterImage, from: info.cgRect, format: .RGBA8, colorSpace: info.colorSpace)! - var image = NSImage(cgImage: cgImage, size: info.nsSize) + guard let finalCgImage = context.createCGImage(masterImage, from: info.cgRect, format: .RGBA8, colorSpace: info.colorSpace) else { + return nil + } + + var image = NSImage(cgImage: finalCgImage, size: info.nsSize) if info.orientation == 3 { image = image.imageRotatedByDegreess(degrees: 90)