commit - d19fdc056d160a429d046e472287073edec11ea3
commit + 94349f64d16ed2159cc944a2af7a3fcaedd9c9d9
blob - c59a0edb4cb84f6996b21f9901f6dfc5f89d393e
blob + e9378dc69a89a9750e1f1776554f7c5ede02c839
--- src/cmd/page/view.c
+++ src/cmd/page/view.c
Document *doc;
Mousectl *mc;
Image *im;
+Image *tofree;
int page;
int angle = 0;
int showbottom = 0; /* on the next showpage, move the image so the bottom is visible. */
RMenu = 3,
};
+
+static void
+delayfreeimage(Image *m)
+{
+ if(m == tofree)
+ return;
+ if(tofree)
+ freeimage(tofree);
+ tofree = m;
+}
void
unhide(void)
m->lasthit = reverse ? doc->npage-1-page : page;
setcursor(mc, &reading);
+ delayfreeimage(nil);
im = cachedpage(doc, angle, page);
if(im == nil)
wexits(0);
wexits("memory");
}
resample(im, tmp);
- freeimage(im);
im = tmp;
+ delayfreeimage(tmp);
setcursor(mc, nil);
ul = screen->r.min;
redraw(screen);
wexits("memory");
}
resample(im, tmp);
- freeimage(im);
im = tmp;
+ delayfreeimage(tmp);
setcursor(mc, nil);
ul = screen->r.min;
redraw(screen);