ID:               41582
 User updated by:  judas dot iscariote at gmail dot com
 Reported By:      judas dot iscariote at gmail dot com
 Status:           Closed
 Bug Type:         SimpleXML related
 Operating System: Any
 PHP Version:      5CVS-2007-06-04 (CVS)
 Assigned To:      helly
 New Comment:

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 :-)


Previous Comments:
------------------------------------------------------------------------

[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.



------------------------------------------------------------------------

[2007-06-04 10:59:01] [EMAIL PROTECTED]

Marcus, check the patch out:
http://dev.daylessday.org/diff/bug41582.diff

------------------------------------------------------------------------

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

Reply via email to