Annotation of embedaddon/php/Zend/tests/bug52614.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #52614 (Memory leak when writing on uninitialized variable returned from method call)
3: --FILE--
4: <?php
5: class foo {
6: public $a1;
7: public $a2 = array();
8: public $a3;
9: public $o1;
10: public $o2;
11:
12: public function f1() {
13: return $this->a1;
14: }
15:
16: public function f2() {
17: return $this->a2;
18: }
19:
20: public function f3() {
21: $this->a3 = array();
22: return $this->a3;
23: }
24:
25: public function f4() {
26: return $this->o1;
27: }
28:
29: public function f5() {
30: $this->o2 = new stdClass;
31: return $this->o2;
32: }
33:
34: public function &f6() {
35: return $this->a1;
36: }
37:
38: public function f7(&$x) {
39: $x = 2;
40: }
41:
42: }
43:
44: $foo = new foo;
45:
46: $foo->f1()[0] = 1;
47: var_dump($foo->a1);
48:
49: $foo->f2()[0] = 1;
50: var_dump($foo->a2);
51:
52: $foo->f3()[0] = 1;
53: var_dump($foo->a3);
54:
55: $foo->f4()->a = 1;
56: var_dump($foo->o1);
57:
58: $foo->f5()->a = 1;
59: var_dump($foo->o2);
60:
61: $foo->a1[0] = 1;
62: $foo->f7($foo->f6()[0]);
63: var_dump($foo->a1[0]);
64: $foo->f1()[0]++;
65: var_dump($foo->a1[0]);
66: $foo->f6()[0]++;
67: var_dump($foo->a1[0]);
68: --EXPECTF--
69: NULL
70: array(0) {
71: }
72: array(0) {
73: }
74:
75: Warning: Creating default object from empty value in %sbug52614.php on line 52
76: NULL
77: object(stdClass)#%d (1) {
78: ["a"]=>
79: int(1)
80: }
81: int(2)
82: int(2)
83: int(3)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>