Bug 690594

Summary: memleak in pdfdraw
Product: MuPDF Reporter: Krzysztof Kowalczyk <kkowalczyk>
Component: mupdfAssignee: Tor Andersson <tor.andersson>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P4    
Version: unspecified   
Hardware: Macintosh   
OS: MacOS X   
Customer: Word Size: ---

Description Krzysztof Kowalczyk 2009-07-03 00:40:18 UTC
pdfdraw doesn't close the xref, causing memleaks. It makes finding real memleaks
with valgrind harder.

Index: apps/pdfdraw.c
===================================================================
--- apps/pdfdraw.c	(revision 1201)
+++ apps/pdfdraw.c	(working copy)
@@ -80,6 +80,26 @@
 	fz_keepobj(xref->info);
 }
 
+void closexref(void)
+{
+	if (pagetree)
+	{
+		pdf_droppagetree(pagetree);
+		pagetree = nil;
+	}
+
+	if (xref)
+	{
+		if (xref->store)
+		{
+			pdf_dropstore(xref->store);
+			xref->store = nil;
+		}
+		pdf_closexref(xref);
+		xref = nil;
+	}
+}
+
 /*
  */
 
@@ -474,5 +494,6 @@
 	drawpages("1-");
 
     fz_droprenderer(drawgc);
+    closexref();
 }