diff options
author | Sebastian Rasmussen <sebras@hotmail.com> | 2009-12-05 17:58:41 +0100 |
---|---|---|
committer | Sebastian Rasmussen <sebras@hotmail.com> | 2009-12-05 17:58:41 +0100 |
commit | 2e2e97db605cc58d76033fc92c3806d475e2c262 (patch) | |
tree | 2489d1d277b868df6611f2019e6471458b4e3a30 | |
parent | ea270be43aeb9fc80fbeedd7be6e8609810c04b7 (diff) | |
download | mupdf-2e2e97db605cc58d76033fc92c3806d475e2c262.tar.xz |
Fluxh xref between pages in pdfdraw.
-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); |