Annotation of embedaddon/php/Zend/tests/bug39297.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #39297 (Memory corryption because of indirect modification of overloaded array)
        !             3: --FILE--
        !             4: <?php
        !             5: function compareByRef(&$first, &$second) {
        !             6:     return $first === $second;
        !             7: }
        !             8: 
        !             9: class MyTree implements ArrayAccess {
        !            10:     public $parent;
        !            11:     public $children = array();
        !            12: 
        !            13:     public function offsetExists($offset) {
        !            14:     }
        !            15: 
        !            16:     public function offsetUnset($offset) {
        !            17:     }
        !            18: 
        !            19:     public function offsetSet($offset, $value) {
        !            20:        echo "offsetSet()\n";
        !            21:         $cannonicalName = strtolower($offset);
        !            22:         $this->children[$cannonicalName] = $value;
        !            23:         $value->parent = $this;
        !            24:     }    
        !            25:     
        !            26:     public function offsetGet($offset) {
        !            27:        echo "offsetGet()\n";
        !            28:         $cannonicalName = strtolower($offset);
        !            29:         return $this->children[$cannonicalName];
        !            30:     }
        !            31: 
        !            32: }
        !            33: 
        !            34: $id = 'Test';
        !            35: 
        !            36: $root = new MyTree();
        !            37: $child = new MyTree();
        !            38: $root[$id] = $child;
        !            39: 
        !            40: var_dump(compareByRef($root[$id], $child));
        !            41: ?>
        !            42: --EXPECT--
        !            43: offsetSet()
        !            44: offsetGet()
        !            45: bool(true)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>