summaryrefslogtreecommitdiff
path: root/test/pdfclean.c
diff options
context:
space:
mode:
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)