diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/common/pdfapp.c | 2 | ||||
-rw-r--r-- | apps/common/pdftool.c | 8 | ||||
-rw-r--r-- | apps/pdfdraw.c | 2 | ||||
-rw-r--r-- | apps/pdftool.h | 1 |
4 files changed, 13 insertions, 0 deletions
diff --git a/apps/common/pdfapp.c b/apps/common/pdfapp.c index 14a710b5..137825ec 100644 --- a/apps/common/pdfapp.c +++ b/apps/common/pdfapp.c @@ -236,6 +236,8 @@ static void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage) pdf_droppage(app->page); app->page = nil; + pdf_flushxref(app->xref, 0); + obj = pdf_getpageobject(app->xref, app->pageno); error = pdf_loadpage(&app->page, app->xref, obj); if (error) diff --git a/apps/common/pdftool.c b/apps/common/pdftool.c index fdabc2d6..97a95043 100644 --- a/apps/common/pdftool.c +++ b/apps/common/pdftool.c @@ -66,6 +66,14 @@ void openxref(char *filename, char *password, int dieonbadpass) pagecount = pdf_getpagecount(xref); } +void flushxref(void) +{ + if (xref) + { + pdf_flushxref(xref, 0); + } +} + void closexref(void) { if (cleanup) diff --git a/apps/pdfdraw.c b/apps/pdfdraw.c index f6fdd6bd..2310dc1d 100644 --- a/apps/pdfdraw.c +++ b/apps/pdfdraw.c @@ -126,6 +126,8 @@ static void drawfreepage(void) pdf_droppage(drawpage); drawpage = nil; + flushxref(); + /* Flush resources between pages. * TODO: should check memory usage before deciding to do this. */ diff --git a/apps/pdftool.h b/apps/pdftool.h index 706383f5..2bc39657 100644 --- a/apps/pdftool.h +++ b/apps/pdftool.h @@ -9,5 +9,6 @@ void die(fz_error error); void setcleanup(void (*cleanup)(void)); void openxref(char *filename, char *password, int dieonbadpass); +void flushxref(void); void closexref(void); |