From 598e69fb9f793fe1ca5be904d92e8e4da765cc76 Mon Sep 17 00:00:00 2001 From: Matt Holgate Date: Thu, 3 Jul 2014 12:10:27 +0100 Subject: Don't crash if a document fails to open on iOS. Handle exceptions from fz_open_document(). --- platform/ios/Classes/MuDocRef.m | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'platform/ios/Classes') diff --git a/platform/ios/Classes/MuDocRef.m b/platform/ios/Classes/MuDocRef.m index a130fdd3..db82bbab 100644 --- a/platform/ios/Classes/MuDocRef.m +++ b/platform/ios/Classes/MuDocRef.m @@ -10,16 +10,29 @@ if (self) { dispatch_sync(queue, ^{}); - doc = fz_open_document(ctx, aFilename); - if (!doc) + + fz_var(self); + fz_var(doc); + + fz_try(ctx) { - self = nil; + doc = fz_open_document(ctx, aFilename); + if (!doc) + { + self = nil; + } + else + { + pdf_document *idoc = pdf_specifics(doc); + if (idoc) pdf_enable_js(idoc); + interactive = (idoc != NULL) && (pdf_crypt_version(idoc) == 0); + } } - else + fz_catch(ctx) { - pdf_document *idoc = pdf_specifics(doc); - if (idoc) pdf_enable_js(idoc); - interactive = (idoc != NULL) && (pdf_crypt_version(idoc) == 0); + if (doc != NULL) + fz_close_document(doc); + self = nil; } } return self; -- cgit v1.2.3