summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@hotmail.com>2009-12-05 17:58:41 +0100
committerSebastian Rasmussen <sebras@hotmail.com>2009-12-05 17:58:41 +0100
commit2e2e97db605cc58d76033fc92c3806d475e2c262 (patch)
tree2489d1d277b868df6611f2019e6471458b4e3a30
parentea270be43aeb9fc80fbeedd7be6e8609810c04b7 (diff)
downloadmupdf-2e2e97db605cc58d76033fc92c3806d475e2c262.tar.xz
Fluxh xref between pages in pdfdraw.
-rw-r--r--apps/common/pdfapp.c2
-rw-r--r--apps/common/pdftool.c8
-rw-r--r--apps/pdfdraw.c2
-rw-r--r--apps/pdftool.h1
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);