Edit report at http://bugs.php.net/bug.php?id=53119&edit=1

 ID:                 53119
 Updated by:         johan...@php.net
 Reported by:        marc-bennewitz at arcor dot de
 Summary:            LimitIterator(ArrayIterator)->seek() doesn't work
                     correctly after OutOfBoundsE
 Status:             Open
 Type:               Bug
 Package:            SPL related
 Operating System:   Linux
 PHP Version:        5.3.3
 Block user comment: N

 New Comment:

The exception leaves the iterator in undefined behavior. That is
expected.


Previous Comments:
------------------------------------------------------------------------
[2010-10-20 20:47:02] marc-bennewitz at arcor dot de

Description:
------------
Seeking after an OutOfBoundException doesn't work without call of
rewind.

With php < 5.3 it works as expected.

Test script:
---------------
$it = new ArrayIterator(array('zf9396', 'foo', null));

$it->rewind();



try {

    $it->seek(3);

} catch (OutOfBoundsException $e) {

    var_dump($it->key());

    $it->seek(0);

    var_dump($it->key());

}





$lit = new LimitIterator($it, 0, 10);

try {

    $lit->seek(3);

} catch (OutOfBoundsException $e) {

    var_dump($lit->key());

    $lit->seek(0);

    var_dump($lit->key());

}





Expected result:
----------------
NULL

int(0)

NULL

int(0)

Actual result:
--------------
NULL

int(0)

NULL

NULL


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



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53119&edit=1

Reply via email to