[Lxml-checkins] r49402 - lxml/trunk/src/lxml

scoder at codespeak.net scoder at codespeak.net
Wed Dec 5 19:31:51 CET 2007


Author: scoder
Date: Wed Dec  5 19:31:51 2007
New Revision: 49402

Modified:
   lxml/trunk/src/lxml/parsertarget.pxi
Log:
fix: memory leak in target parser

Modified: lxml/trunk/src/lxml/parsertarget.pxi
==============================================================================
--- lxml/trunk/src/lxml/parsertarget.pxi	(original)
+++ lxml/trunk/src/lxml/parsertarget.pxi	Wed Dec  5 19:31:51 2007
@@ -115,5 +115,14 @@
 
     cdef xmlDoc* _handleParseResultDoc(self, _BaseParser parser,
                                        xmlDoc* result, filename) except NULL:
+        if result is not NULL and result._private is NULL:
+            # no _Document proxy => orphen
+            tree.xmlFreeDoc(result)
+        if self._c_ctxt.myDoc is not NULL and \
+                self._c_ctxt.myDoc is not result and \
+                self._c_ctxt.myDoc._private is NULL:
+            # no _Document proxy => orphen
+            tree.xmlFreeDoc(self._c_ctxt.myDoc)
+            self._c_ctxt.myDoc = NULL
         self._raise_if_stored()
         raise _TargetParserResult(self._python_target.close())


More information about the lxml-checkins mailing list