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

Reply via email to