summaryrefslogtreecommitdiff
path: root/platform/ios
diff options
context:
space:
mode:
authorMatt Holgate <matt@emobix.co.uk>2014-07-03 12:10:27 +0100
committerMatt Holgate <matt@emobix.co.uk>2014-07-03 12:10:27 +0100
commit598e69fb9f793fe1ca5be904d92e8e4da765cc76 (patch)
tree747dd84b8e197d63ea6da030791c013a82a74444 /platform/ios
parent3b2bc7c15844af39ac08fe5b0a9681ba1cce2dc0 (diff)
downloadmupdf-598e69fb9f793fe1ca5be904d92e8e4da765cc76.tar.xz
Don't crash if a document fails to open on iOS.
Handle exceptions from fz_open_document().
Diffstat (limited to 'platform/ios')
-rw-r--r--platform/ios/Classes/MuDocRef.m27
1 files changed, 20 insertions, 7 deletions
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;