ID: 41582 Updated by: [EMAIL PROTECTED] Reported By: judas dot iscariote at gmail dot com -Status: Closed +Status: Assigned Bug Type: SimpleXML related Operating System: Any PHP Version: 5CVS-2007-06-04 (CVS) -Assigned To: helly +Assigned To: dmitry New Comment:
Dmitry: new comment added that may need your attention Previous Comments: ------------------------------------------------------------------------ [2007-06-15 06:32:25] judas dot iscariote at gmail dot com Dmitry, first thanks for taking care of correcting the leak.. however.. now a funny warning is raised !! $xml->movie[1]->characters->character[]->name = 'Miss Coder'; causes : Warning: main(): (main ? x_X) Cannot add element movie number 1 when only 0 such elements exist in...(this part is correct though) that's not so annoying or critical and we can live with it, however does not look good. Addtionally I gave this stuff a better test now.. and Im still able to find some good as well edge/wrong cases where this stuff needs improvement. for example: $xml->movie[2.5]->characters->character[0]->name = ''; leaks memory as well. this is bad code of course ;) however I think this raises the real issue.. IMHO the code should check if the element number is >= 0 and an integer (not a float,maybe cast it to integer? and or emit warning/notice when the wrong type is used...) other case, that "looks" valid. // the string '0'; $xml->movie['0']->characters->character[0]->name = ''; leaks memory and emits... Notice: Indirect modification of overloaded element of SimpleXMLElement has no effect in .. but 0 as an integer works fine :-) ------------------------------------------------------------------------ [2007-06-13 13:53:02] [EMAIL PROTECTED] This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2007-06-06 11:28:56] [EMAIL PROTECTED] Well, there are some cases which cannot be fixed at all. Fortunately they only happen when the code is b0rked, so I don't think it's critical. Markus, can you think of any solution for the leak? ------------------------------------------------------------------------ [2007-06-06 10:53:13] judas dot iscariote at gmail dot com fix works. but leaks memory in the above situation. $xml = new SimpleXMLElement('<?xml version="1.0" standalone="yes"?> <collection></collection>'); $xml->movie[1]->characters->character[]->name = 'Miss Coder'; Zend/zend_execute.c(1249) : Freeing 0x00C97DA0 (24 bytes), script=simplecrashes.php === Total 1 memory leaks detected === ------------------------------------------------------------------------ [2007-06-05 10:03:18] [EMAIL PROTECTED] This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/41582 -- Edit this bug report at http://bugs.php.net/?id=41582&edit=1