summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2009-07-02 20:05:01 +0200
committerTor Andersson <tor@ghostscript.com>2009-07-02 20:05:01 +0200
commitaeb450a0b00e0996f6f6e0f4e160c4ed0b595d90 (patch)
tree4bf017762ec77893e462044ce4e199e0a88f6568 /apps
parentb23997bb49eb5ee3d7813fb993d42c1be043af74 (diff)
downloadmupdf-aeb450a0b00e0996f6f6e0f4e160c4ed0b595d90.tar.xz
Increment reference count of catalog and info objects when opening a pdf.
Diffstat (limited to 'apps')
-rw-r--r--apps/common/pdfapp.c3
-rw-r--r--apps/pdfclean.c4
-rw-r--r--apps/pdfdraw.c4
-rw-r--r--apps/pdfextract.c4
-rw-r--r--apps/pdfinfo.c4
-rw-r--r--apps/pdfshow.c4
6 files changed, 23 insertions, 0 deletions
diff --git a/apps/common/pdfapp.c b/apps/common/pdfapp.c
index bb15d354..7fa9310a 100644
--- a/apps/common/pdfapp.c
+++ b/apps/common/pdfapp.c
@@ -130,11 +130,14 @@ void pdfapp_open(pdfapp_t *app, char *filename)
app->xref->root = fz_resolveindirect(obj);
if (!app->xref->root)
pdfapp_error(app, fz_throw("syntaxerror: missing Root object"));
+ fz_keepobj(app->xref->root);
obj = fz_dictgets(app->xref->trailer, "Info");
app->xref->info = fz_resolveindirect(obj);
if (!app->xref->info)
pdfapp_warn(app, "Could not load PDF meta information.");
+ if (app->xref->info)
+ fz_keepobj(app->xref->info);
error = pdf_loadnametrees(app->xref);
if (error)
diff --git a/apps/pdfclean.c b/apps/pdfclean.c
index bfc94a36..211c461d 100644
--- a/apps/pdfclean.c
+++ b/apps/pdfclean.c
@@ -62,9 +62,13 @@ void openxref(char *filename, char *password)
/* TODO: move into mupdf lib, see pdfapp_open in pdfapp.c */
obj = fz_dictgets(xref->trailer, "Root");
xref->root = fz_resolveindirect(obj);
+ if (xref->root)
+ fz_keepobj(xref->root);
obj = fz_dictgets(xref->trailer, "Info");
xref->info = fz_resolveindirect(obj);
+ if (xref->info)
+ fz_keepobj(xref->info);
}
/*
diff --git a/apps/pdfdraw.c b/apps/pdfdraw.c
index a5bd6063..d26d4b9b 100644
--- a/apps/pdfdraw.c
+++ b/apps/pdfdraw.c
@@ -71,9 +71,13 @@ void openxref(char *filename, char *password)
/* TODO: move into mupdf lib, see pdfapp_open in pdfapp.c */
obj = fz_dictgets(xref->trailer, "Root");
xref->root = fz_resolveindirect(obj);
+ if (xref->root)
+ fz_keepobj(xref->root);
obj = fz_dictgets(xref->trailer, "Info");
xref->info = fz_resolveindirect(obj);
+ if (xref->info)
+ fz_keepobj(xref->info);
}
/*
diff --git a/apps/pdfextract.c b/apps/pdfextract.c
index b878621c..1e7e9473 100644
--- a/apps/pdfextract.c
+++ b/apps/pdfextract.c
@@ -45,9 +45,13 @@ void openxref(char *filename, char *password)
/* TODO: move into mupdf lib, see pdfapp_open in pdfapp.c */
obj = fz_dictgets(xref->trailer, "Root");
xref->root = fz_resolveindirect(obj);
+ if (xref->root)
+ fz_keepobj(xref->root);
obj = fz_dictgets(xref->trailer, "Info");
xref->info = fz_resolveindirect(obj);
+ if (xref->info)
+ fz_keepobj(xref->info);
}
void closexref()
diff --git a/apps/pdfinfo.c b/apps/pdfinfo.c
index 4d3ed2bc..a1cb3fcd 100644
--- a/apps/pdfinfo.c
+++ b/apps/pdfinfo.c
@@ -96,9 +96,13 @@ void opensrc(char *filename, char *password, int loadpages)
/* TODO: move into mupdf lib, see pdfapp_open in pdfapp.c */
obj = fz_dictgets(src->trailer, "Root");
src->root = fz_resolveindirect(obj);
+ if (src->root)
+ fz_keepobj(src->root);
obj = fz_dictgets(src->trailer, "Info");
src->info = fz_resolveindirect(obj);
+ if (src->info)
+ fz_keepobj(src->info);
error = pdf_loadnametrees(src);
if (error)
diff --git a/apps/pdfshow.c b/apps/pdfshow.c
index 981d5b4b..994a885c 100644
--- a/apps/pdfshow.c
+++ b/apps/pdfshow.c
@@ -45,9 +45,13 @@ void openxref(char *filename, char *password)
/* TODO: move into mupdf lib, see pdfapp_open in pdfapp.c */
obj = fz_dictgets(xref->trailer, "Root");
xref->root = fz_resolveindirect(obj);
+ if (xref->root)
+ fz_keepobj(xref->root);
obj = fz_dictgets(xref->trailer, "Info");
xref->info = fz_resolveindirect(obj);
+ if (xref->info)
+ fz_keepobj(xref->info);
}
void closexref()