summaryrefslogtreecommitdiff
path: root/source/html
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2017-06-12 00:42:32 +0800
committerSebastian Rasmussen <sebras@gmail.com>2017-06-16 23:45:38 +0800
commit2c81252f355e77c0bb49f79ea32bd64d7ebbde6b (patch)
treea70ba30f445fe48b15787ea582bdae3bbf56156b /source/html
parent5dfdd1bc29c68e86ee151af24be7240300c659e2 (diff)
downloadmupdf-2c81252f355e77c0bb49f79ea32bd64d7ebbde6b.tar.xz
Drop HTML document in case of error.
Diffstat (limited to 'source/html')
-rw-r--r--source/html/html-doc.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/source/html/html-doc.c b/source/html/html-doc.c
index 67587fa1..566aeac6 100644
--- a/source/html/html-doc.c
+++ b/source/html/html-doc.c
@@ -187,16 +187,21 @@ htdoc_open_document(fz_context *ctx, const char *filename)
doc->super.lookup_metadata = htdoc_lookup_metadata;
doc->super.is_reflowable = 1;
- doc->zip = fz_open_directory(ctx, dirname);
- doc->set = fz_new_html_font_set(ctx);
-
- buf = fz_read_file(ctx, filename);
fz_try(ctx)
+ {
+ doc->zip = fz_open_directory(ctx, dirname);
+ doc->set = fz_new_html_font_set(ctx);
+
+ buf = fz_read_file(ctx, filename);
doc->html = fz_parse_html(ctx, doc->set, doc->zip, ".", buf, fz_user_css(ctx));
+ }
fz_always(ctx)
fz_drop_buffer(ctx, buf);
fz_catch(ctx)
+ {
+ fz_drop_document(ctx, &doc->super);
fz_rethrow(ctx);
+ }
return (fz_document*)doc;
}