Annotation of embedaddon/php/Zend/tests/bug39297.phpt, revision 1.1.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>