ID: 30911 Updated by: [EMAIL PROTECTED] Reported By: slaporte at eurocortex dot fr -Status: Open +Status: Feedback Bug Type: DOM XML related Operating System: red hat PHP Version: 4.3.9 New Comment:
is the memory released after the request finishes? Or does it stay there. Previous Comments: ------------------------------------------------------------------------ [2004-11-26 15:38:07] slaporte at eurocortex dot fr Description: ------------ Hello i'm using php and dom xml i encounter a memory leak the destructor of xpath context is not called i'm using 4_3_9 version i put some fprintf(stderr, ...) into the destructor and it never go inside the destructor was registered with "xpathcontext" le_xpathctxp = zend_register_list_destructors_ex(php_free_xpath_context, NULL, "xpathcontext", module_number); the class with "XPathContext" INIT_OVERLOADED_CLASS_ENTRY(ce, "XPathContext", php_xpathctx_class_functions, NULL, NULL, NULL); i try to make both lowercase but it is changing nothing the test script is very simple and when you run it and the process grow and grow and grow .... i add a function free to xpathcontext object that function calls the destructor then the memory is released but i would prefer that the destructor be called naturally Reproduce code: --------------- function StringToXml($sXml) { $oDom = domxml_open_mem($sXml); $oCtx = $oDom->xpath_new_context(); unset($oCtx); $oDom->free(); unset($oDom); } $s = getFile("test.xml"); for($n=200000; $n--;) { echo "$n<br/>"; flush(); StringToXml($s); } Expected result: ---------------- php process should not grow, memory should be released Actual result: -------------- php process grow ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=30911&edit=1