[PHP] Bug SPL/RecursiveIteratorIterator

Soprano

Member
Hallo,

ich experimentiere gerade mit den Iteratorn in der SPL.

Beim Ausführen von

$it = new RecursiveDirectoryIterator('/tmp');
foreach(new RecursiveIteratorIterator($it) as $path)
{
echo "$path\n";
}

erhalte ich auf FreeBSD 5.4-RELEASE immer folgenden Fehler:

> php -q -f spltest.php
apruC0k8l
.shtool.6527
mysql.sock
.shtool.6552
.shtool.6577
.shtool.6602
.shtool.6627
.shtool.6652
.shtool.6677
.shtool.6702
.shtool.6727
.shtool.30602
.shtool.30702
.shtool.30627
.shtool.30652
.shtool.30677
.shtool.30727
.shtool.30752
.shtool.30777
.shtool.30802
unpack.log
aprNrzFnG
apr0WFgrA
php in free(): warning: chunk is already free
/usr/ports/lang/php5/work/php-5.0.5/ext/spl/spl_iterators.c(133) : Freeing 0x082136A4 (16 bytes), script=spltest.php
=== Total 1 memory leaks detected ===


Auf Windows und Linux (RedHat) funktioniert es ohne Probleme, jeweils PHP 5.0.5.


Dieses Verhalten zeigt sich nicht nur mit dem RecursiveDirectoryIterator, sondern auch mit einem eigens geschriebenen (RecursiveIterator für ein DOMDocument), mit dem ich dann den RecursiveIteratorIterator konstruiere.

Kann das jemand bestätigen bzw. mir helfen, das Problem zu lösen?

Wäre das was für :huth: ?

LG
 
Entweder das beweist die Überlegenheit von Windows, oder Du hast auf der BSD-Box in der php.ini "report_memleaks=on"...

Gruß,
Wolfgang
 
Zurück
Oben