summaryrefslogtreecommitdiff
path: root/test/pdfclean.c
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2004-10-06 11:36:25 +0200
committerTor Andersson <tor@ghostscript.com>2004-10-06 11:36:25 +0200
commit59bd2f5bfc486b107c4bd689bd65ea7d23e2fad0 (patch)
tree2331c04f638f4144eb26163d7585f54dd5542876 /test/pdfclean.c
parent57575cabd50c4fdadb7de8ed5dec5702be7c3954 (diff)
downloadmupdf-59bd2f5bfc486b107c4bd689bd65ea7d23e2fad0.tar.xz
hashtable and object store memory bugs
Diffstat (limited to 'test/pdfclean.c')
-rw-r--r--test/pdfclean.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/pdfclean.c b/test/pdfclean.c
index c6af657b..69c51590 100644
--- a/test/pdfclean.c
+++ b/test/pdfclean.c
@@ -18,6 +18,23 @@ void usage()
exit(1);
}
+void preloadobjstms(pdf_xref *xref)
+{
+ fz_error *error;
+ fz_obj *obj;
+ int i;
+
+ for (i = 0; i < xref->size; i++)
+ {
+ if (xref->table[i].type == 'o')
+ {
+ error = pdf_loadobject0(&obj, xref, i, 0, nil);
+ if (error) fz_abort(error);
+ fz_dropobj(obj);
+ }
+ }
+}
+
void expandstreams(pdf_xref *xref)
{
fz_error *error;
@@ -140,7 +157,10 @@ int main(int argc, char **argv)
expandstreams(xref);
if (dogc)
+ {
+ preloadobjstms(xref);
pdf_garbagecollect(xref);
+ }
error = pdf_savepdf(xref, outfile, encrypt);
if (error)