mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-11 03:00:49 +00:00
Compare commits
1852
Commits
php-5.3.18
...
PHP-5.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8d89d8027e | ||
|
|
3f1787c426 | ||
|
|
38eaacafdf | ||
|
|
2c00988f17 | ||
|
|
ca63423e79 | ||
|
|
9be1bf44c5 | ||
|
|
fb5c00a4e1 | ||
|
|
9bb28ce1b7 | ||
|
|
ccef27192e | ||
|
|
66c19b66e4 | ||
|
|
05703d7c1e | ||
|
|
6195ce8646 | ||
|
|
b8f9b3da5d | ||
|
|
e74b921e8b | ||
|
|
2df44321cf | ||
|
|
6115e491a5 | ||
|
|
12f2e71609 | ||
|
|
06ffd2f72e | ||
|
|
73426e2227 | ||
|
|
956f263a6b | ||
|
|
acdab8fe5e | ||
|
|
82fc47e1f6 | ||
|
|
bb16adb518 | ||
|
|
35c5dca015 | ||
|
|
af26f3ac20 | ||
|
|
a542241b95 | ||
|
|
54b9cea279 | ||
|
|
11b71e8139 | ||
|
|
c502abde01 | ||
|
|
fd10ad5897 | ||
|
|
1c08413cb7 | ||
|
|
7a703e6171 | ||
|
|
58ed71c422 | ||
|
|
4da3dd5ab6 | ||
|
|
e97817ef64 | ||
|
|
f49bc6b3c2 | ||
|
|
fad8abc7e8 | ||
|
|
3fdcf7cf62 | ||
|
|
af49241bc7 | ||
|
|
55e08048e0 | ||
|
|
bc0b052b9e | ||
|
|
4d7947e9ef | ||
|
|
db1be3a1db | ||
|
|
49ebc7f046 | ||
|
|
3ba85be3bb | ||
|
|
82a5a9e140 | ||
|
|
681badfd05 | ||
|
|
478bcb175e | ||
|
|
b77ccca751 | ||
|
|
4701b2f73b | ||
|
|
7880310833 | ||
|
|
1aa136b320 | ||
|
|
f2a41cff3f | ||
|
|
98e3a48e2d | ||
|
|
a6fe971a56 | ||
|
|
868527f3e7 | ||
|
|
0b0ac1d573 | ||
|
|
da63a7f7af | ||
|
|
c2e7f836f0 | ||
|
|
f74ecc17a5 | ||
|
|
0950f81007 | ||
|
|
cfd74ffe27 | ||
|
|
ba2c9dedf2 | ||
|
|
4430d9966f | ||
|
|
41005c6c88 | ||
|
|
525d33eed9 | ||
|
|
c58f17c42d | ||
|
|
c3a8f96f6c | ||
|
|
7826a06e0b | ||
|
|
759a8b9446 | ||
|
|
a3182ac2a3 | ||
|
|
fc2b1e2a79 | ||
|
|
b1fe698524 | ||
|
|
f498b62422 | ||
|
|
e94971dbe7 | ||
|
|
69b11bdef9 | ||
|
|
bc999cdaf4 | ||
|
|
8d90b0ff74 | ||
|
|
27f59e307a | ||
|
|
f57b83ab6d | ||
|
|
2a691ce523 | ||
|
|
0381900bcc | ||
|
|
cbc7075bba | ||
|
|
0e473130e7 | ||
|
|
65bb0aca6b | ||
|
|
815791353b | ||
|
|
f146f8cc10 | ||
|
|
c0ed68739f | ||
|
|
ec47728e16 | ||
|
|
f4c42609b3 | ||
|
|
866c0ea6d5 | ||
|
|
1df38c1197 | ||
|
|
64ea787635 | ||
|
|
c4c0f6a383 | ||
|
|
c18f02640f | ||
|
|
4177b0ba6d | ||
|
|
f0eb333194 | ||
|
|
5426c47807 | ||
|
|
e2273d5e76 | ||
|
|
caf5b39c0a | ||
|
|
40c0c9a05f | ||
|
|
6fee21aa2a | ||
|
|
3b2ee4624a | ||
|
|
1eca78dfb3 | ||
|
|
2360d3f220 | ||
|
|
445576b781 | ||
|
|
a6b7d2d401 | ||
|
|
32f7b26b4d | ||
|
|
552ca2a813 | ||
|
|
362a671d89 | ||
|
|
1575f1c735 | ||
|
|
ca65ebcc11 | ||
|
|
146279400b | ||
|
|
d97402d555 | ||
|
|
e2c62afc14 | ||
|
|
2955253a6b | ||
|
|
7c1c077605 | ||
|
|
f8a8bc88a0 | ||
|
|
869e108542 | ||
|
|
609df59c34 | ||
|
|
dc0e682204 | ||
|
|
945d56c634 | ||
|
|
27c9b1248b | ||
|
|
b556dd8473 | ||
|
|
05f463678c | ||
|
|
da98a6ef95 | ||
|
|
89ada40520 | ||
|
|
990fde4594 | ||
|
|
27f45b73e3 | ||
|
|
380b07ba68 | ||
|
|
461718c235 | ||
|
|
3e83fa2593 | ||
|
|
364932076c | ||
|
|
f70d5ffde5 | ||
|
|
b0d86cd41b | ||
|
|
ac7f3d152a | ||
|
|
6b40f3a1c3 | ||
|
|
e7cc84fd8f | ||
|
|
ce402edcb4 | ||
|
|
414dcdfdfc | ||
|
|
42dcaa63ea | ||
|
|
d8507549de | ||
|
|
dff3c34c1a | ||
|
|
2e9f9b1f42 | ||
|
|
758a7e3f36 | ||
|
|
fb6063930a | ||
|
|
c603868c4d | ||
|
|
f860806648 | ||
|
|
085ba3cd08 | ||
|
|
7f62b05f57 | ||
|
|
019907901d | ||
|
|
d8082a74c2 | ||
|
|
fe6c7b489e | ||
|
|
b624ff8898 | ||
|
|
15ef31c63c | ||
|
|
7bc94e0751 | ||
|
|
55dd260d1f | ||
|
|
4c5487c0cd | ||
|
|
e3788f2fd8 | ||
|
|
88bc2f5504 | ||
|
|
47449fc3ac | ||
|
|
d8384bb3f7 | ||
|
|
a9ef1e50d2 | ||
|
|
107dd67f81 | ||
|
|
50561fdf79 | ||
|
|
1832497350 | ||
|
|
21527852b2 | ||
|
|
9fb3cc5c78 | ||
|
|
352afe350e | ||
|
|
74206084f9 | ||
|
|
8456269c0c | ||
|
|
bb2f525761 | ||
|
|
1ea6ba90be | ||
|
|
13ff4bb0ca | ||
|
|
7d242ab2aa | ||
|
|
e0a87f0d01 | ||
|
|
e7df132d39 | ||
|
|
ebaa48e50e | ||
|
|
1a5428e8d6 | ||
|
|
088693622a | ||
|
|
12fc5ecaa1 | ||
|
|
83edf04cf0 | ||
|
|
1025fc7e29 | ||
|
|
ec3c8b0744 | ||
|
|
a3fb27d824 | ||
|
|
b905940f9f | ||
|
|
0904130f11 | ||
|
|
e720f444c0 | ||
|
|
b56f2fe12d | ||
|
|
54ee2cf3e4 | ||
|
|
f86d51727b | ||
|
|
e2a0dc72d4 | ||
|
|
60a661d7f9 | ||
|
|
cdc11d0f49 | ||
|
|
42ebe9efb2 | ||
|
|
9ec2a5bba8 | ||
|
|
05f0de0c22 | ||
|
|
cbacd949f8 | ||
|
|
0785d0d4af | ||
|
|
2650819396 | ||
|
|
82e38322ed | ||
|
|
9dd09fa253 | ||
|
|
78bafb0a0f | ||
|
|
11e98efaeb | ||
|
|
4572d1ca93 | ||
|
|
2e3affd121 | ||
|
|
c64fd50c99 | ||
|
|
d0341050db | ||
|
|
8b5ef28849 | ||
|
|
ce5840bfdd | ||
|
|
a98e4ef9e8 | ||
|
|
68babbb4cd | ||
|
|
7547d0cfbd | ||
|
|
8e9f4c457e | ||
|
|
4e196361d8 | ||
|
|
de2f172277 | ||
|
|
06c10055d5 | ||
|
|
42b7576ae8 | ||
|
|
79fcfd26f3 | ||
|
|
4f07d5a965 | ||
|
|
426f625c99 | ||
|
|
9a0f85e1fa | ||
|
|
ba508184f0 | ||
|
|
0833aba80f | ||
|
|
2d820b6dee | ||
|
|
215ed32e25 | ||
|
|
03c4f24419 | ||
|
|
5743a33991 | ||
|
|
9183f91b50 | ||
|
|
78ba9bf7d7 | ||
|
|
b50858afb3 | ||
|
|
f865b20700 | ||
|
|
13fa7f7256 | ||
|
|
3f49790ce6 | ||
|
|
f463d67389 | ||
|
|
d530f46597 | ||
|
|
ac6c88a4dc | ||
|
|
42d4af122b | ||
|
|
c85bb04fa5 | ||
|
|
46079e009c | ||
|
|
03913f1308 | ||
|
|
c82f578f82 | ||
|
|
9555ebfabb | ||
|
|
8d626495ed | ||
|
|
5e2f93d2dd | ||
|
|
767c3476f0 | ||
|
|
4ef8f95450 | ||
|
|
bf6759dd01 | ||
|
|
af53d53b11 | ||
|
|
d6463e5a3f | ||
|
|
ae194a9a9c | ||
|
|
9859b1f397 | ||
|
|
fddecc1352 | ||
|
|
0d845f2ea4 | ||
|
|
0ddcc317e5 | ||
|
|
80fdc3ac5e | ||
|
|
3b80c7560c | ||
|
|
751bd7f024 | ||
|
|
43fa58a0c1 | ||
|
|
5106b38ae5 | ||
|
|
9e20484a18 | ||
|
|
82ddbebbe4 | ||
|
|
3704f085ed | ||
|
|
8688512c84 | ||
|
|
2fb797e325 | ||
|
|
522bdfb820 | ||
|
|
c7ef927a4b | ||
|
|
63394e6885 | ||
|
|
41ce678468 | ||
|
|
05b895cd39 | ||
|
|
75841af9f6 | ||
|
|
55518f5360 | ||
|
|
740b23ecdf | ||
|
|
b17ba8c110 | ||
|
|
3c2689b7a7 | ||
|
|
2556bb635c | ||
|
|
800e57ea5c | ||
|
|
ddac7fe373 | ||
|
|
6d7ea1ac5e | ||
|
|
042862140c | ||
|
|
1724f8e6a8 | ||
|
|
fcfc10f3ff | ||
|
|
ff870e6149 | ||
|
|
e0cfa4d51b | ||
|
|
6dba27dc90 | ||
|
|
da68b9b16f | ||
|
|
02dee4ae0f | ||
|
|
342e04ca80 | ||
|
|
8fe2b1bed4 | ||
|
|
f5da540a4a | ||
|
|
c741a9e719 | ||
|
|
06a2e4ce94 | ||
|
|
923ec1c813 | ||
|
|
b8257c86e2 | ||
|
|
701d735b4a | ||
|
|
efa98f98a7 | ||
|
|
c65348f1ef | ||
|
|
b64e13a8d8 | ||
|
|
ac33ea9aa3 | ||
|
|
76f175e312 | ||
|
|
8b882a5b3f | ||
|
|
0a99718803 | ||
|
|
ba4a956864 | ||
|
|
3190028b5b | ||
|
|
2e128a6e09 | ||
|
|
bcc763bfb9 | ||
|
|
cd9eaf74b2 | ||
|
|
150a72925b | ||
|
|
37d7c2b316 | ||
|
|
6e06124ea7 | ||
|
|
5cc99a6ac0 | ||
|
|
a67935f091 | ||
|
|
47536e7ac1 | ||
|
|
093a132957 | ||
|
|
1b5f44e88c | ||
|
|
d8ea4f11d1 | ||
|
|
0ad3be52c6 | ||
|
|
2a328b9ba7 | ||
|
|
96c20f31ba | ||
|
|
f81d41c762 | ||
|
|
3059580aed | ||
|
|
2183cfb649 | ||
|
|
25cf53b352 | ||
|
|
eafc0420f0 | ||
|
|
7423659c35 | ||
|
|
a8a5e7573c | ||
|
|
146e3220b7 | ||
|
|
348694d57c | ||
|
|
078c700804 | ||
|
|
6cb09f8e0b | ||
|
|
6086495713 | ||
|
|
b330229b84 | ||
|
|
c7200842cc | ||
|
|
bb1332fe02 | ||
|
|
1ed47a60c6 | ||
|
|
97ec1ff4de | ||
|
|
1bf24dcad9 | ||
|
|
e414432792 | ||
|
|
3a2fb03556 | ||
|
|
a029c98992 | ||
|
|
7094c2e6cf | ||
|
|
f275a211cd | ||
|
|
71f96764db | ||
|
|
104346f695 | ||
|
|
867e81ddcf | ||
|
|
e4782e05ca | ||
|
|
b53261c1f7 | ||
|
|
d2b516a17e | ||
|
|
5343858182 | ||
|
|
90b5168603 | ||
|
|
0cdfe8042a | ||
|
|
b5e1063103 | ||
|
|
21bdd33fff | ||
|
|
b857a3579f | ||
|
|
d861d47034 | ||
|
|
d1b80a614a | ||
|
|
0857ef4e0e | ||
|
|
52ea2ff77a | ||
|
|
758e9b813f | ||
|
|
0d1eea3e50 | ||
|
|
68d3a2a4a3 | ||
|
|
4e0748c5cf | ||
|
|
6ba14f7c60 | ||
|
|
cee2f89bac | ||
|
|
af2640314c | ||
|
|
5a731ab4a8 | ||
|
|
3de754c066 | ||
|
|
276f733eff | ||
|
|
c2982d7dd0 | ||
|
|
caa994f64a | ||
|
|
386958ed03 | ||
|
|
12d269131a | ||
|
|
d6091a30e2 | ||
|
|
9ba95c7002 | ||
|
|
4e13631ec1 | ||
|
|
ef4e1a153e | ||
|
|
7577029efd | ||
|
|
328a1117f1 | ||
|
|
748de20686 | ||
|
|
40f8b98419 | ||
|
|
1bdfef5b38 | ||
|
|
af2cbccc89 | ||
|
|
a958154f5c | ||
|
|
3c6eac005e | ||
|
|
2010493086 | ||
|
|
17953a4c1d | ||
|
|
33218a673f | ||
|
|
931158fde1 | ||
|
|
5eb5dfa536 | ||
|
|
5e37deccc1 | ||
|
|
d09cdd9f71 | ||
|
|
eab21631e8 | ||
|
|
79d65efb1d | ||
|
|
cff8050b83 | ||
|
|
8622b50012 | ||
|
|
4413882286 | ||
|
|
bfc4de7e6f | ||
|
|
55e2692100 | ||
|
|
2518165f92 | ||
|
|
79b610def8 | ||
|
|
d544099dcb | ||
|
|
3ae330cd00 | ||
|
|
bfbbf5cedc | ||
|
|
7de57d1a0f | ||
|
|
221d961e02 | ||
|
|
a7d4af0f34 | ||
|
|
df96b038aa | ||
|
|
5db859f053 | ||
|
|
a235714d20 | ||
|
|
c8add6a3c2 | ||
|
|
6deefd1444 | ||
|
|
a6f21df54c | ||
|
|
baef306ffe | ||
|
|
d8eb4055f0 | ||
|
|
2d4b98bf8b | ||
|
|
3df7ed81db | ||
|
|
38d7c22ee0 | ||
|
|
21d984c1bb | ||
|
|
f5f6a1bb02 | ||
|
|
52cd8053dc | ||
|
|
3452a4d9cb | ||
|
|
a40c67d2fa | ||
|
|
f94cbfb33d | ||
|
|
3ba3e35a3e | ||
|
|
695d12d0db | ||
|
|
85a1e14e37 | ||
|
|
40d52ebc39 | ||
|
|
b4ff2c495f | ||
|
|
18ccd896c7 | ||
|
|
710d2fef1c | ||
|
|
695b15b209 | ||
|
|
fc325ce662 | ||
|
|
62a06d2d9e | ||
|
|
719b107576 | ||
|
|
381734bede | ||
|
|
7a9d1fb1d5 | ||
|
|
eca56e4b59 | ||
|
|
05affa4c86 | ||
|
|
7b23a065e8 | ||
|
|
ce6b662ed6 | ||
|
|
08fdbaecf8 | ||
|
|
9285368cc1 | ||
|
|
ed160b9a19 | ||
|
|
2063ff5a15 | ||
|
|
b1c2b7a493 | ||
|
|
4939dff84e | ||
|
|
1d019347cd | ||
|
|
8ce349b8e0 | ||
|
|
f3797e0015 | ||
|
|
c60e945965 | ||
|
|
19859a1b35 | ||
|
|
82be7f8f85 | ||
|
|
db4678d6af | ||
|
|
a86cdc6952 | ||
|
|
d7d5069d8b | ||
|
|
5a27a76b1b | ||
|
|
00448a5211 | ||
|
|
2640b806d6 | ||
|
|
1930be2528 | ||
|
|
6b1cc632d1 | ||
|
|
2843a96a82 | ||
|
|
f4a9417486 | ||
|
|
254adf10bd | ||
|
|
770b04e09e | ||
|
|
f0893ba362 | ||
|
|
b3a89ba1ba | ||
|
|
9f24154bed | ||
|
|
d81b8bcb7b | ||
|
|
2399cb1321 | ||
|
|
16a1587e08 | ||
|
|
3b4f3489f9 | ||
|
|
4a3be1d920 | ||
|
|
ac378c3b78 | ||
|
|
c51ccc9243 | ||
|
|
3526bcf9cf | ||
|
|
531f14ca6e | ||
|
|
d98646435e | ||
|
|
ebec35f646 | ||
|
|
119e74d6c2 | ||
|
|
5e63dccbb9 | ||
|
|
bfdac383dc | ||
|
|
f4feaeeff9 | ||
|
|
2e0caa5f5f | ||
|
|
00b89e2d34 | ||
|
|
bdbc54c1ab | ||
|
|
8fa2dc1c64 | ||
|
|
feac7f8dbb | ||
|
|
496a8fbfbd | ||
|
|
bb671b8928 | ||
|
|
4a3aae2b74 | ||
|
|
8e5c9a3d35 | ||
|
|
00e1c513c3 | ||
|
|
d16cfb98e1 | ||
|
|
cc65afef4d | ||
|
|
9d36b04b69 | ||
|
|
b8a50ab35b | ||
|
|
2cfff608bd | ||
|
|
7d1ea234ff | ||
|
|
cdf0dde4e4 | ||
|
|
53db4b6087 | ||
|
|
146a948d37 | ||
|
|
a778e8ae49 | ||
|
|
28bcbea342 | ||
|
|
1887ae79d6 | ||
|
|
85afcb802d | ||
|
|
d9918485df | ||
|
|
2f8f30a9d1 | ||
|
|
3a121f0377 | ||
|
|
8709e2b651 | ||
|
|
233a99a4e5 | ||
|
|
32c7c2f458 | ||
|
|
9f562a55a4 | ||
|
|
909033e650 | ||
|
|
2284d365f9 | ||
|
|
591103e629 | ||
|
|
b5e3c39343 | ||
|
|
e7c2bb9077 | ||
|
|
9ae244bca8 | ||
|
|
5493a5af6b | ||
|
|
353f3d693d | ||
|
|
c941788794 | ||
|
|
db46216831 | ||
|
|
5906410a83 | ||
|
|
e3049fe418 | ||
|
|
f37d8ad76a | ||
|
|
ffa626068b | ||
|
|
16b517057e | ||
|
|
0cd04dd8ee | ||
|
|
6477d350b2 | ||
|
|
5b90adb4f7 | ||
|
|
74a7342ac1 | ||
|
|
0d93c5366d | ||
|
|
d067b201cf | ||
|
|
89511b316a | ||
|
|
fbe44d0345 | ||
|
|
8e3bf69780 | ||
|
|
24150c7b1d | ||
|
|
3ccba5514f | ||
|
|
8f95eb97e2 | ||
|
|
39a1bc4a46 | ||
|
|
7f3804f4ae | ||
|
|
659c0d344a | ||
|
|
3bd4199865 | ||
|
|
6d72c22eea | ||
|
|
2a1d0e96c0 | ||
|
|
573c568e85 | ||
|
|
311d262169 | ||
|
|
d4f91d59dd | ||
|
|
feb4c90222 | ||
|
|
5c966aaa06 | ||
|
|
972c932097 | ||
|
|
1950289d3d | ||
|
|
8369e2bfab | ||
|
|
9a53c1577f | ||
|
|
c1b700d871 | ||
|
|
015f87f5a9 | ||
|
|
94e8a7b47d | ||
|
|
39fec23c4c | ||
|
|
79864e31c1 | ||
|
|
8aa7f7e3f9 | ||
|
|
0a0d20f919 | ||
|
|
11f5296b41 | ||
|
|
239a85c33e | ||
|
|
fda8417776 | ||
|
|
05febcfc9a | ||
|
|
9c71c7530b | ||
|
|
926ec43123 | ||
|
|
a6306386c3 | ||
|
|
37e937db25 | ||
|
|
ea6ac022d6 | ||
|
|
99365dfd46 | ||
|
|
1ad623b515 | ||
|
|
d795792f8f | ||
|
|
5bad102755 | ||
|
|
e465c076f5 | ||
|
|
cfb4c916b8 | ||
|
|
eb51b4f23a | ||
|
|
dedcaff2f2 | ||
|
|
896fe268fb | ||
|
|
352d90baac | ||
|
|
8595c6b6b8 | ||
|
|
6644e5c5ec | ||
|
|
519642125f | ||
|
|
1a94c0f341 | ||
|
|
aa6ecd5619 | ||
|
|
fce70d11e6 | ||
|
|
7576762fb6 | ||
|
|
cadd10f56b | ||
|
|
8ba63bf7c0 | ||
|
|
3656d13b68 | ||
|
|
d225b1ce81 | ||
|
|
fae7e2bff2 | ||
|
|
b0f4a8e912 | ||
|
|
584fb97aed | ||
|
|
abe7b677f3 | ||
|
|
4dceadd4c1 | ||
|
|
40d04782e0 | ||
|
|
5135548c9d | ||
|
|
eb393b600c | ||
|
|
81afaf32d7 | ||
|
|
63a9f23f74 | ||
|
|
86e161007c | ||
|
|
5fa11c0579 | ||
|
|
332f700522 | ||
|
|
6d58950fe6 | ||
|
|
40108e7c04 | ||
|
|
46d47e77d0 | ||
|
|
fae392c88f | ||
|
|
485321056a | ||
|
|
4924aa83f3 | ||
|
|
ff8c742822 | ||
|
|
525e7171a4 | ||
|
|
4dac7613a2 | ||
|
|
b601848ecd | ||
|
|
207248483e | ||
|
|
1a635c7c89 | ||
|
|
4baee906ce | ||
|
|
8594a3806f | ||
|
|
aad8b12fea | ||
|
|
a2ad16ef21 | ||
|
|
08c6d398cc | ||
|
|
b01b5d8e58 | ||
|
|
2d36d2dd9f | ||
|
|
fd1fc2de89 | ||
|
|
fd13faea13 | ||
|
|
28a638fe7b | ||
|
|
7b6535c100 | ||
|
|
047f1e936f | ||
|
|
d738786436 | ||
|
|
9f0a5dc5e0 | ||
|
|
bba259101f | ||
|
|
d67b99c290 | ||
|
|
e61a96db00 | ||
|
|
51a414ac42 | ||
|
|
00330f2ae7 | ||
|
|
1aa8063f2f | ||
|
|
0205c37cf8 | ||
|
|
17157f8092 | ||
|
|
f157b9f12a | ||
|
|
46e5e2d0c2 | ||
|
|
3a32a2f48a | ||
|
|
4f043328df | ||
|
|
20e400b6c0 | ||
|
|
f809403a2d | ||
|
|
f52a914791 | ||
|
|
5450a0dcd1 | ||
|
|
e50067c6ce | ||
|
|
8516c7deb1 | ||
|
|
fe7ea4ca83 | ||
|
|
0de3906316 | ||
|
|
a8541e0178 | ||
|
|
0a650df8da | ||
|
|
ade2667c70 | ||
|
|
ce6102342f | ||
|
|
b09e421111 | ||
|
|
28e45cf6e4 | ||
|
|
4a23aa4535 | ||
|
|
4b9cca7c0c | ||
|
|
155eff97df | ||
|
|
39e0e30af0 | ||
|
|
5efebee28a | ||
|
|
55b18c598d | ||
|
|
d52c8ab857 | ||
|
|
8037889e2c | ||
|
|
26b9ee7df1 | ||
|
|
b4734f0dc6 | ||
|
|
18335130cc | ||
|
|
e649f719bd | ||
|
|
8fc219f0e3 | ||
|
|
a16a9a753e | ||
|
|
5050078bc0 | ||
|
|
1832daf3cc | ||
|
|
3efb2acb34 | ||
|
|
d9d53a1d69 | ||
|
|
c7a9ce70e8 | ||
|
|
327c876dc6 | ||
|
|
5329f7ce4c | ||
|
|
a4f8a9214c | ||
|
|
09a5954e67 | ||
|
|
e0fef8b821 | ||
|
|
4e9005d847 | ||
|
|
1c82847edd | ||
|
|
ab8e8c6380 | ||
|
|
1bb1e8f5fa | ||
|
|
69ba9df048 | ||
|
|
ff757583ff | ||
|
|
cbf631cf84 | ||
|
|
eaed8e0922 | ||
|
|
84c1e20749 | ||
|
|
6a8e47ca98 | ||
|
|
dfaf49e9fd | ||
|
|
e65f524f92 | ||
|
|
69f10386f4 | ||
|
|
ee70304a32 | ||
|
|
137eb633aa | ||
|
|
fe99a3a8a1 | ||
|
|
62eceedcc4 | ||
|
|
e1f15df15c | ||
|
|
6696ac41c5 | ||
|
|
b1efdfae47 | ||
|
|
d7842bb07c | ||
|
|
bac150263b | ||
|
|
eb6732ad60 | ||
|
|
4c11305640 | ||
|
|
43b641eab9 | ||
|
|
8325a296cb | ||
|
|
0d7b574472 | ||
|
|
2fa9bcdc29 | ||
|
|
27054e3850 | ||
|
|
07081e2699 | ||
|
|
67745d4f44 | ||
|
|
8013c023cb | ||
|
|
3d75c3fa8b | ||
|
|
912cb5d161 | ||
|
|
56bad109e2 | ||
|
|
e421488f99 | ||
|
|
21545018c3 | ||
|
|
6118b0b738 | ||
|
|
2fe662392a | ||
|
|
7a48dfb28e | ||
|
|
67bf61b087 | ||
|
|
e3d3eaddf1 | ||
|
|
c4bf1f8f65 | ||
|
|
e1d1c8d901 | ||
|
|
805a596542 | ||
|
|
5663cf0e81 | ||
|
|
a14f4684a1 | ||
|
|
1b12c6b362 | ||
|
|
cb49e8b1ce | ||
|
|
d2928e0af0 | ||
|
|
f3396e9ef2 | ||
|
|
a613be3e96 | ||
|
|
8cdc2fec19 | ||
|
|
c9b44080d2 | ||
|
|
5c8567e212 | ||
|
|
d56d1de230 | ||
|
|
6a12eef216 | ||
|
|
0a4ced10ed | ||
|
|
7d48c9c32d | ||
|
|
b2a62cf620 | ||
|
|
91f51b34d4 | ||
|
|
2748841db5 | ||
|
|
921d5d6a30 | ||
|
|
77687e57bf | ||
|
|
a8ec99c299 | ||
|
|
e2fccffa2d | ||
|
|
1a429389b7 | ||
|
|
0f8e764685 | ||
|
|
d6416633d2 | ||
|
|
296b11c9fb | ||
|
|
c091e91140 | ||
|
|
fe15677f4e | ||
|
|
fe86da56e8 | ||
|
|
1442b416a8 | ||
|
|
6b4bd35d11 | ||
|
|
a7f8fb3461 | ||
|
|
582697ae5c | ||
|
|
811b268fb1 | ||
|
|
43c40d602b | ||
|
|
3e4ea8305d | ||
|
|
37485d4d38 | ||
|
|
756018250f | ||
|
|
af5c1b862d | ||
|
|
0660599ae2 | ||
|
|
e13089d1da | ||
|
|
20251c4f37 | ||
|
|
8108a04110 | ||
|
|
09cdac3d98 | ||
|
|
27586a947a | ||
|
|
6368b9fc66 | ||
|
|
bedb66ba33 | ||
|
|
7394b3734b | ||
|
|
8c9a6e1436 | ||
|
|
65a055397f | ||
|
|
d415b23ff6 | ||
|
|
416122f885 | ||
|
|
256d015dd5 | ||
|
|
7e9d0f7898 | ||
|
|
b5937e49d8 | ||
|
|
b5e227d4c5 | ||
|
|
a105687232 | ||
|
|
b9a9d572d8 | ||
|
|
5b9ce68207 | ||
|
|
98f0b33836 | ||
|
|
74a947383f | ||
|
|
084e58fa8b | ||
|
|
07bcc295c4 | ||
|
|
5b80f925cf | ||
|
|
008173f899 | ||
|
|
37d8de4ba6 | ||
|
|
7256d2ca6a | ||
|
|
c8df0dcb0a | ||
|
|
e8c97542bf | ||
|
|
33a4feed28 | ||
|
|
776ebe8f1f | ||
|
|
3fc55e77e6 | ||
|
|
a012d5a5dc | ||
|
|
da3d88851d | ||
|
|
3e52976f30 | ||
|
|
4d93757dca | ||
|
|
b56adc718b | ||
|
|
36adf916d9 | ||
|
|
3f5f747d90 | ||
|
|
ae82f51fc0 | ||
|
|
bfb55aa96d | ||
|
|
fbd2655dff | ||
|
|
bbef4e8da2 | ||
|
|
250543afc9 | ||
|
|
553245e48d | ||
|
|
94d9d3f920 | ||
|
|
1ace2e5ac7 | ||
|
|
047f1a26a0 | ||
|
|
a8aaf58df3 | ||
|
|
3d7b5b792e | ||
|
|
ad6e24cfb1 | ||
|
|
f10ce39b79 | ||
|
|
f487c128cc | ||
|
|
62ee4aa49f | ||
|
|
a62134d159 | ||
|
|
c883ae3d1f | ||
|
|
84bd08261f | ||
|
|
c216440f1c | ||
|
|
f3bc8a341b | ||
|
|
8d1c55499d | ||
|
|
49afbfac4a | ||
|
|
bd07142b91 | ||
|
|
6cd2919f3d | ||
|
|
a90af34542 | ||
|
|
b8e9edcce3 | ||
|
|
bcc8aad178 | ||
|
|
8993ccd75c | ||
|
|
5ee2605386 | ||
|
|
1a45dcf5ea | ||
|
|
8c142dd228 | ||
|
|
3ba37514df | ||
|
|
d7cc37874c | ||
|
|
c07ee38ff3 | ||
|
|
5f2280e9f8 | ||
|
|
56adfe1f3c | ||
|
|
a39d2b5747 | ||
|
|
a2b38741a1 | ||
|
|
5cc18c9967 | ||
|
|
9b4400830f | ||
|
|
916806055c | ||
|
|
25203ef3bc | ||
|
|
ba31cb7b88 | ||
|
|
f3ffd7b3f9 | ||
|
|
274e37db02 | ||
|
|
1ecb6ccd16 | ||
|
|
5be2acc65d | ||
|
|
ffbe3b0816 | ||
|
|
d74acc15cc | ||
|
|
437786b115 | ||
|
|
f262d06686 | ||
|
|
0d7b5257a8 | ||
|
|
1d9846b54a | ||
|
|
5d694d0474 | ||
|
|
0d144466a8 | ||
|
|
e6dad2a5c3 | ||
|
|
e862541306 | ||
|
|
d0b22dc5c8 | ||
|
|
5fa9eaca9a | ||
|
|
10b6108ac1 | ||
|
|
b350e15f3c | ||
|
|
8392ed2358 | ||
|
|
e1d798465b | ||
|
|
63244c0e3d | ||
|
|
54f777ef1c | ||
|
|
af6894dc7b | ||
|
|
885d8e8733 | ||
|
|
a326342b93 | ||
|
|
4b550d43ef | ||
|
|
e522104f1d | ||
|
|
71121a02b1 | ||
|
|
13ea8afdc5 | ||
|
|
d2f43d60f9 | ||
|
|
a922fbb89c | ||
|
|
8ae159da78 | ||
|
|
ab90623f49 | ||
|
|
7e81e9619e | ||
|
|
be5e7382ef | ||
|
|
cebd47134a | ||
|
|
b20bb1137b | ||
|
|
2cdf30c490 | ||
|
|
e6e21db0a8 | ||
|
|
aeaba53b0b | ||
|
|
b103d7ba75 | ||
|
|
233bb83463 | ||
|
|
938859d87c | ||
|
|
9045591353 | ||
|
|
f2d8033436 | ||
|
|
de74e9b003 | ||
|
|
96abb7e0a5 | ||
|
|
6e529c486a | ||
|
|
459631d679 | ||
|
|
f468d909a1 | ||
|
|
cfe99e0e98 | ||
|
|
11fb10b74d | ||
|
|
77d0be75a8 | ||
|
|
905505d0f0 | ||
|
|
59146cb2b8 | ||
|
|
24e352a0fd | ||
|
|
b935312966 | ||
|
|
4b0d2f3b71 | ||
|
|
05e84a25aa | ||
|
|
04e8936f21 | ||
|
|
f4f090ccbe | ||
|
|
ceca9448a9 | ||
|
|
3308133d4a | ||
|
|
e9d101a685 | ||
|
|
908e2c4650 | ||
|
|
547796ae72 | ||
|
|
54a9f3cb5b | ||
|
|
07d3b15863 | ||
|
|
a9f320390e | ||
|
|
435e835bbf | ||
|
|
d47d7e20ef | ||
|
|
8231031995 | ||
|
|
b4360b0aba | ||
|
|
fbe6a29b11 | ||
|
|
a7c628ef33 | ||
|
|
051997039a | ||
|
|
3e3f10efbb | ||
|
|
c298ea82ca | ||
|
|
8190860776 | ||
|
|
40aa1c6e73 | ||
|
|
f06bb200e5 | ||
|
|
d9fb0a4da5 | ||
|
|
44186c14a4 | ||
|
|
c17a1a7645 | ||
|
|
34af036d8e | ||
|
|
10af23e641 | ||
|
|
2211aac68f | ||
|
|
b75c100dc6 | ||
|
|
349c0cc61c | ||
|
|
e7df907a10 | ||
|
|
a7d70ccebf | ||
|
|
419a87ddd8 | ||
|
|
4e502a7fc2 | ||
|
|
b31a857c83 | ||
|
|
5e759d980e | ||
|
|
09d4b25070 | ||
|
|
8054e6d951 | ||
|
|
54b442330c | ||
|
|
324ea3636d | ||
|
|
61967a0318 | ||
|
|
4bb461b3d5 | ||
|
|
1c840f70e2 | ||
|
|
fd1125627a | ||
|
|
3b6bf6ab58 | ||
|
|
15531b60fc | ||
|
|
c8dfe73903 | ||
|
|
9acc7d2fd8 | ||
|
|
d217efa8b6 | ||
|
|
64a60d5d70 | ||
|
|
2b321fb6ed | ||
|
|
2e680913da | ||
|
|
beb6c638d9 | ||
|
|
0955c58d8e | ||
|
|
0b5a97681a | ||
|
|
0c607c2ecd | ||
|
|
cda9aeba03 | ||
|
|
d01de96f9a | ||
|
|
0542a6f2c2 | ||
|
|
7c5e901f4d | ||
|
|
6f475c1ce6 | ||
|
|
5bdea6fa79 | ||
|
|
04a262ffe2 | ||
|
|
2ab994fe0c | ||
|
|
85cab5a838 | ||
|
|
9d44f00a6d | ||
|
|
e05a7a90c9 | ||
|
|
ae9dcb1799 | ||
|
|
82a60c6538 | ||
|
|
870c5434fe | ||
|
|
94be5fd002 | ||
|
|
d231b908a1 | ||
|
|
b25e990ffd | ||
|
|
6b46618a76 | ||
|
|
b3726eb497 | ||
|
|
eae934a6b7 | ||
|
|
5bf33a2e83 | ||
|
|
2cb6431c2f | ||
|
|
17d094d5bb | ||
|
|
79f25b32a1 | ||
|
|
e8cbe865f3 | ||
|
|
f01a236c09 | ||
|
|
3bee739456 | ||
|
|
126cd77070 | ||
|
|
c3bd38ba9b | ||
|
|
f42d1090bb | ||
|
|
33372e4d5d | ||
|
|
b7fe870f06 | ||
|
|
22251bfa5b | ||
|
|
54ec8b914f | ||
|
|
aa9bfc06e7 | ||
|
|
4e1e2eadec | ||
|
|
4f45d300fb | ||
|
|
8a7c2ff618 | ||
|
|
322d1e5439 | ||
|
|
10f83680b0 | ||
|
|
8abcdde864 | ||
|
|
83a37cefc1 | ||
|
|
d49832983a | ||
|
|
4835d49c86 | ||
|
|
4337c68030 | ||
|
|
e06e987eb4 | ||
|
|
9819666a00 | ||
|
|
384625408b | ||
|
|
4baa8ee0bc | ||
|
|
6aa5793baf | ||
|
|
5dff4e8e40 | ||
|
|
26d147a798 | ||
|
|
d24c272e50 | ||
|
|
e48794e58b | ||
|
|
418c15ef14 | ||
|
|
37ebffee0c | ||
|
|
4acc981ac4 | ||
|
|
bdd787626d | ||
|
|
3250e630a3 | ||
|
|
2b3b798d7d | ||
|
|
e8812b2845 | ||
|
|
516c2aa7da | ||
|
|
8126952c99 | ||
|
|
b290efa0d3 | ||
|
|
e53ed77075 | ||
|
|
906b0b4235 | ||
|
|
d7852a4930 | ||
|
|
2d701541b4 | ||
|
|
f5f0390dbf | ||
|
|
86b2558a5e | ||
|
|
b539bb6a07 | ||
|
|
5e496cc0e7 | ||
|
|
35514292fe | ||
|
|
a402f5e87e | ||
|
|
da481f3189 | ||
|
|
5adf49c135 | ||
|
|
8d54c95ef7 | ||
|
|
1a88427263 | ||
|
|
3259aad229 | ||
|
|
43765f49f7 | ||
|
|
a5b1ec723d | ||
|
|
4e01e392ff | ||
|
|
f744272c52 | ||
|
|
ce647ba16a | ||
|
|
a8bdff6998 | ||
|
|
8b987b185f | ||
|
|
607b7b35e5 | ||
|
|
8235ce2f20 | ||
|
|
ac7c553f0d | ||
|
|
eb54f96a0b | ||
|
|
e7ecd526c5 | ||
|
|
3161e32a9f | ||
|
|
ba2f3ac0e6 | ||
|
|
ee1569d310 | ||
|
|
b386cdbdd7 | ||
|
|
f61068721b | ||
|
|
b1aaab7355 | ||
|
|
6cddc39be1 | ||
|
|
0bd88170f5 | ||
|
|
ef9d20d638 | ||
|
|
d77a14814f | ||
|
|
5fe94dfb5e | ||
|
|
75e9fd0909 | ||
|
|
f7f3d1c31e | ||
|
|
1d9e3a760d | ||
|
|
f0208d3afa | ||
|
|
cb9873f4a4 | ||
|
|
1778b00928 | ||
|
|
c92a084e39 | ||
|
|
b689d32d18 | ||
|
|
367868fa7e | ||
|
|
94d4fb4249 | ||
|
|
aabd63044c | ||
|
|
c1b0b3781f | ||
|
|
a2aedfdf00 | ||
|
|
ed4ddfe263 | ||
|
|
0f3cce53ad | ||
|
|
6880dcb0d4 | ||
|
|
1842fc7a42 | ||
|
|
7ffde39f44 | ||
|
|
99dd5c22d1 | ||
|
|
0a919c89da | ||
|
|
1a27ca62a8 | ||
|
|
235f05dafd | ||
|
|
ae366c348a | ||
|
|
203981a031 | ||
|
|
8efade7894 | ||
|
|
e733c33f37 | ||
|
|
120cba9504 | ||
|
|
873e694ccd | ||
|
|
a04ad392ff | ||
|
|
7f28203b56 | ||
|
|
c5874b6297 | ||
|
|
51179248d5 | ||
|
|
963e442e10 | ||
|
|
0d91c5eda9 | ||
|
|
4e6ebdbeda | ||
|
|
641152c54b | ||
|
|
c35b9949f7 | ||
|
|
3c8424457d | ||
|
|
706ba12284 | ||
|
|
c82421d48e | ||
|
|
83343aacc3 | ||
|
|
4cfd9d0440 | ||
|
|
132760f0eb | ||
|
|
e88524aa26 | ||
|
|
4c7a56f564 | ||
|
|
03096147f6 | ||
|
|
ac29fcffc0 | ||
|
|
ae343cc715 | ||
|
|
5abc423112 | ||
|
|
f5dbe5a0cb | ||
|
|
bdd4cf7979 | ||
|
|
f4f3bb6418 | ||
|
|
01b9a94d41 | ||
|
|
cd3b8c3de4 | ||
|
|
bf2bee53f7 | ||
|
|
4984c16261 | ||
|
|
19f071ea5a | ||
|
|
b02e734f15 | ||
|
|
58b20e71d1 | ||
|
|
d825ced844 | ||
|
|
4291c701a8 | ||
|
|
9c1186c39b | ||
|
|
4c17c6aca6 | ||
|
|
a4b09f8259 | ||
|
|
bea4e52ae9 | ||
|
|
17362b6600 | ||
|
|
a819cbc869 | ||
|
|
310a945151 | ||
|
|
b8f8302bbc | ||
|
|
33406179c3 | ||
|
|
f41e4f8e4d | ||
|
|
cbe8634bbe | ||
|
|
73ab72bfbb | ||
|
|
976ed18082 | ||
|
|
d273e9a113 | ||
|
|
e4fdaec6a5 | ||
|
|
7e53013c34 | ||
|
|
a80a5cf98d | ||
|
|
6634ee0145 | ||
|
|
b9ff04703f | ||
|
|
52adad71e7 | ||
|
|
ebe468c145 | ||
|
|
5f0a65bd36 | ||
|
|
1fc5fc9ccd | ||
|
|
99616e50af | ||
|
|
34c6f253c3 | ||
|
|
6675c76d58 | ||
|
|
ae546e85b8 | ||
|
|
f6b1919e3f | ||
|
|
65b8e527a6 | ||
|
|
201517f12b | ||
|
|
cf68478f8e | ||
|
|
1f0bf51cbe | ||
|
|
3c786b4a52 | ||
|
|
66a29f649f | ||
|
|
18fd322943 | ||
|
|
7f223f76c6 | ||
|
|
a4108b7189 | ||
|
|
d946ca1d7f | ||
|
|
0443ce7bc9 | ||
|
|
2ccc66582b | ||
|
|
274d13f151 | ||
|
|
a40637da0e | ||
|
|
b4035f926c | ||
|
|
44f94fee4a | ||
|
|
66add9f4fd | ||
|
|
4186ba86bc | ||
|
|
a58c381ade | ||
|
|
c99464da72 | ||
|
|
1955451412 | ||
|
|
36bcea7339 | ||
|
|
7389f038ce | ||
|
|
2c6e4400a6 | ||
|
|
dd49025fd8 | ||
|
|
5d96f268f8 | ||
|
|
f025d57413 | ||
|
|
ad9eec0fe3 | ||
|
|
7685080491 | ||
|
|
0bdc90293d | ||
|
|
ba9e6cf6da | ||
|
|
3ac69c47a4 | ||
|
|
a2cae4e9ea | ||
|
|
c5fbd1a544 | ||
|
|
c7c42fa501 | ||
|
|
12d6522570 | ||
|
|
c9fabbe45d | ||
|
|
c1aa774082 | ||
|
|
41dde12bbd | ||
|
|
72b45bdab0 | ||
|
|
8078fc1f6d | ||
|
|
853f2aaf0c | ||
|
|
45afe262b1 | ||
|
|
099304b079 | ||
|
|
13b70db43e | ||
|
|
7297a25365 | ||
|
|
68d8b91b7f | ||
|
|
c8d9dc3ac8 | ||
|
|
3263c9c778 | ||
|
|
91918cf963 | ||
|
|
4f813bc3f6 | ||
|
|
d3a5984f48 | ||
|
|
16daecc307 | ||
|
|
edbeacf479 | ||
|
|
5d6bbfa8e3 | ||
|
|
b794f9a7f3 | ||
|
|
148186afaf | ||
|
|
6c9e73f72b | ||
|
|
8ab7643dc6 | ||
|
|
9a17afe331 | ||
|
|
6a8ee8174e | ||
|
|
a1815304b6 | ||
|
|
d05beb69c8 | ||
|
|
6583f0b785 | ||
|
|
9ac48f35bd | ||
|
|
debc74ad74 | ||
|
|
9ed42dbdbb | ||
|
|
3365a94101 | ||
|
|
4cbe8ca0a3 | ||
|
|
39acd18e4b | ||
|
|
f50490b2bc | ||
|
|
4904d5e948 | ||
|
|
65f05f9664 | ||
|
|
a2fb77343d | ||
|
|
2d7fae28ee | ||
|
|
5a5a70fe05 | ||
|
|
795598bf30 | ||
|
|
8d06f63eef | ||
|
|
3bc0c0b7ea | ||
|
|
87c1464ce5 | ||
|
|
8f6a4bee71 | ||
|
|
725dfe2e0a | ||
|
|
a659f7a8eb | ||
|
|
a064487766 | ||
|
|
3c17e392d1 | ||
|
|
001a3117ac | ||
|
|
3ed65da8cb | ||
|
|
9c500be57f | ||
|
|
cfba5aa8ad | ||
|
|
e2af094de1 | ||
|
|
e8d7575733 | ||
|
|
f1d4663bf3 | ||
|
|
e3b9e1e7f9 | ||
|
|
d8f2875be9 | ||
|
|
21c9e2ab8d | ||
|
|
c563365b2f | ||
|
|
e97d0777db | ||
|
|
69c761cc9d | ||
|
|
1839753e7d | ||
|
|
f5223ff699 | ||
|
|
8babcb4284 | ||
|
|
0d38556da8 | ||
|
|
1059806c25 | ||
|
|
68010fd314 | ||
|
|
3bb2ce51c5 | ||
|
|
21ebffa42d | ||
|
|
3fdb372eb6 | ||
|
|
b73e3e5a60 | ||
|
|
04e0ca2d5e | ||
|
|
a1479ff180 | ||
|
|
ae4aa5e1e3 | ||
|
|
dec4b68d88 | ||
|
|
8166520e09 | ||
|
|
4d497d8f02 | ||
|
|
d21cb5b345 | ||
|
|
cb5aa998b9 | ||
|
|
8a7bfba9de | ||
|
|
fffe3c696a | ||
|
|
5279b66616 | ||
|
|
fcde3b066e | ||
|
|
2cdc86e8b4 | ||
|
|
cab8f40c2e | ||
|
|
12374956d0 | ||
|
|
5efb3301b2 | ||
|
|
cbdd728a8d | ||
|
|
5a4d19abe6 | ||
|
|
6cb74fb894 | ||
|
|
c40cb3fce6 | ||
|
|
4ba3d20c88 | ||
|
|
7b5258ab93 | ||
|
|
1d4d921a59 | ||
|
|
0d6c158620 | ||
|
|
74320cba7e | ||
|
|
73346d2f76 | ||
|
|
74b56b1258 | ||
|
|
ac5f1552ff | ||
|
|
93f65e2510 | ||
|
|
4c4bfd3c9b | ||
|
|
ea97c82b97 | ||
|
|
a6e1c3616b | ||
|
|
e1dc8e60a4 | ||
|
|
cda0f6145f | ||
|
|
b700e7a9db | ||
|
|
763006984d | ||
|
|
9bea6b1fb0 | ||
|
|
135d118ce7 | ||
|
|
1b6665b0d9 | ||
|
|
6f7b5eba99 | ||
|
|
ccf618e1dd | ||
|
|
f80035fb65 | ||
|
|
9c44d66034 | ||
|
|
6db67fe4ff | ||
|
|
125c9028a7 | ||
|
|
53e61c7f1f | ||
|
|
da02892d8c | ||
|
|
cd385539a3 | ||
|
|
a718d62f74 | ||
|
|
3931103064 | ||
|
|
238393e58a | ||
|
|
3de8ff865a | ||
|
|
0cb5aa2d53 | ||
|
|
89c61babec | ||
|
|
c5d37e6879 | ||
|
|
9bce9725ce | ||
|
|
fa13af4d59 | ||
|
|
916af07bc8 | ||
|
|
193bdf06d6 | ||
|
|
a3d2a4da0c | ||
|
|
a847d3a9dd | ||
|
|
618e5b21c3 | ||
|
|
3bc9cc5d2d | ||
|
|
da1255b17f | ||
|
|
a2c4aeb659 | ||
|
|
239e693751 | ||
|
|
039dd23c03 | ||
|
|
1d23c4d551 | ||
|
|
2082e22123 | ||
|
|
62f1637939 | ||
|
|
96cae711b9 | ||
|
|
3886f88503 | ||
|
|
d030269743 | ||
|
|
61e2b771d4 | ||
|
|
2e9541bef5 | ||
|
|
43b6cc62b1 | ||
|
|
ab4bfa115c | ||
|
|
3a2fb113bc | ||
|
|
bdad6ef8c1 | ||
|
|
59b098a525 | ||
|
|
a7cb6a8808 | ||
|
|
271e7df5eb | ||
|
|
0a60e71454 | ||
|
|
4163964612 | ||
|
|
29cd249649 | ||
|
|
f444b875b0 | ||
|
|
9327ad7d07 | ||
|
|
74d23c256b | ||
|
|
68aff652b9 | ||
|
|
aa06288173 | ||
|
|
77c460b59f | ||
|
|
d09c0303b8 | ||
|
|
7064084418 | ||
|
|
d605aa7846 | ||
|
|
36a5a19c48 | ||
|
|
71f00b6ab2 | ||
|
|
3bdc15821f | ||
|
|
3222f1defb | ||
|
|
b65cff0f53 | ||
|
|
4e5296741d | ||
|
|
7ec21cca55 | ||
|
|
acab9b33be | ||
|
|
bb7515902c | ||
|
|
8d3bd0f4f7 | ||
|
|
40d8309354 | ||
|
|
62f3ccdea9 | ||
|
|
77598e0382 | ||
|
|
d67ee093e8 | ||
|
|
69644e9272 | ||
|
|
fbb708e211 | ||
|
|
797a132d51 | ||
|
|
3241d7fc46 | ||
|
|
a8a3ae8566 | ||
|
|
f65691dc68 | ||
|
|
91aaefe043 | ||
|
|
e8cd732fb2 | ||
|
|
6a7ed50811 | ||
|
|
bacd5371f4 | ||
|
|
95e9a21e31 | ||
|
|
e1c0bcd35f | ||
|
|
34eb46c6b2 | ||
|
|
67dcd65a57 | ||
|
|
00fa3587ba | ||
|
|
044fba0b64 | ||
|
|
99041df380 | ||
|
|
ee3f17d3ee | ||
|
|
509eca4182 | ||
|
|
6b97f4e98c | ||
|
|
fcf9c0892d | ||
|
|
3c1b0101ef | ||
|
|
7d5b5f3054 | ||
|
|
7a379811d4 | ||
|
|
6749b09d8b | ||
|
|
1a1713a4c7 | ||
|
|
af05fce6b6 | ||
|
|
985122db3b | ||
|
|
216a000ce3 | ||
|
|
3f35f2252d | ||
|
|
480af61b74 | ||
|
|
f67d540a1b | ||
|
|
2452c92c2b | ||
|
|
b6b00a822c | ||
|
|
586f73b1ee | ||
|
|
4bc6ac34ae | ||
|
|
c32445a860 | ||
|
|
0f04dff942 | ||
|
|
70a7fced75 | ||
|
|
47fff9a15d | ||
|
|
50a4e4003a | ||
|
|
e0ffe2f109 | ||
|
|
fa5fbd0a0d | ||
|
|
aac98f3eba | ||
|
|
6f35c85c19 | ||
|
|
5fd210de89 | ||
|
|
49c5edcb9f | ||
|
|
07c6cb2a5b | ||
|
|
9891d3e03d | ||
|
|
c3c311943c | ||
|
|
d0fd3bf62e | ||
|
|
90546a871f | ||
|
|
f2d992c76f | ||
|
|
36b416f514 | ||
|
|
03ba78106d | ||
|
|
c7b537e2c3 | ||
|
|
523d3c122f | ||
|
|
e79de46f3c | ||
|
|
66a74b4c68 | ||
|
|
fd0e9cc044 | ||
|
|
f2dc3a258d | ||
|
|
6330a6078d | ||
|
|
ce726fa710 | ||
|
|
0b640b29d7 | ||
|
|
f0e8e0eae8 | ||
|
|
ef3ed0e4d4 | ||
|
|
6317956d02 | ||
|
|
b1e05a7b4f | ||
|
|
65a2433793 | ||
|
|
a5a29a86df | ||
|
|
7226e7077d | ||
|
|
00c9bd1a33 | ||
|
|
8a340b1572 | ||
|
|
4b03f9f172 | ||
|
|
167c1675b9 | ||
|
|
5ddec61e2d | ||
|
|
77e96aec61 | ||
|
|
9b6a953c91 | ||
|
|
61e90440ce | ||
|
|
0faac783e9 | ||
|
|
95b0546558 | ||
|
|
e5f62e61e6 | ||
|
|
0484413b86 | ||
|
|
59cb64f707 | ||
|
|
af9a8dfaa3 | ||
|
|
01ba76a2ed | ||
|
|
cd067e641a | ||
|
|
1228570437 | ||
|
|
c6b00a1223 | ||
|
|
998a9f4438 | ||
|
|
3959fe2470 | ||
|
|
db5037537b | ||
|
|
88c5b75698 | ||
|
|
c6e0f60774 | ||
|
|
1cae37c3da | ||
|
|
6ab8a6705d | ||
|
|
8c13a77e97 | ||
|
|
f1df31a3fb | ||
|
|
750646d822 | ||
|
|
3f4cf40c45 | ||
|
|
f941d0aeb0 | ||
|
|
331c9a83a3 | ||
|
|
cf476b6a51 | ||
|
|
eacce9faca | ||
|
|
9b68fae9c9 | ||
|
|
c981347ffb | ||
|
|
8360ce27aa | ||
|
|
0bcb369eac | ||
|
|
0c7f673a91 | ||
|
|
02a2e47986 | ||
|
|
3657fef77c | ||
|
|
d75ba00e90 | ||
|
|
1d31caf032 | ||
|
|
a50b0e717f | ||
|
|
b2ccce05e3 | ||
|
|
45a4e123e7 | ||
|
|
8f16f600d5 | ||
|
|
055d1c2134 | ||
|
|
e188ea9d39 | ||
|
|
11031593f3 | ||
|
|
eca839ae19 | ||
|
|
ac70367d73 | ||
|
|
d5830722a5 | ||
|
|
82dae9d9be | ||
|
|
e817baae1e | ||
|
|
7c3962f79d | ||
|
|
2016ad5441 | ||
|
|
67c833661e | ||
|
|
8b765c3c44 | ||
|
|
2daa88cd48 | ||
|
|
32617aea68 | ||
|
|
69d71f67d2 | ||
|
|
f779b01bca | ||
|
|
0036a3e4da | ||
|
|
b2f560dc94 | ||
|
|
501a4edf49 | ||
|
|
c896d7d6d0 | ||
|
|
0285963ec3 | ||
|
|
84a00322eb | ||
|
|
5dbe92d8a7 | ||
|
|
c2e2a30169 | ||
|
|
dee4566360 | ||
|
|
900df55818 | ||
|
|
d0ff60e95f | ||
|
|
98aa5b6eb2 | ||
|
|
4f92686415 | ||
|
|
a2f06a9a3c | ||
|
|
942c837e9f | ||
|
|
890b377094 | ||
|
|
fb5c9e76fc | ||
|
|
d5f88b12c0 | ||
|
|
7dd408c7e5 | ||
|
|
b00c9f4501 | ||
|
|
e81f5ce137 | ||
|
|
6081651c65 | ||
|
|
cbfa37cfad | ||
|
|
797cda2555 | ||
|
|
a540196a41 | ||
|
|
c33bcdda04 | ||
|
|
d85e4ebcc2 | ||
|
|
3b1d4b09da | ||
|
|
36280edc99 | ||
|
|
67bee6eb6e | ||
|
|
7942ff14c4 | ||
|
|
2728e52d58 | ||
|
|
96184fe715 | ||
|
|
5d5e004b34 | ||
|
|
2e67579965 | ||
|
|
f858b30f4e | ||
|
|
094aa8699d | ||
|
|
3d2c4f5670 | ||
|
|
ef3ea48ce0 | ||
|
|
a810fefdde | ||
|
|
2be9172661 | ||
|
|
5c085a9224 | ||
|
|
1665957a8f | ||
|
|
257f58c862 | ||
|
|
c6744a5370 | ||
|
|
643c61277f | ||
|
|
b790562222 | ||
|
|
39f83fc506 | ||
|
|
412fb096fa | ||
|
|
c4c952f023 | ||
|
|
10b2bb1cab | ||
|
|
406847a6cd | ||
|
|
57c5bff123 | ||
|
|
9062b2f967 | ||
|
|
29348ff48b | ||
|
|
2067727a80 | ||
|
|
6fcc1515cb | ||
|
|
08e7f480e1 | ||
|
|
f521b61ce2 | ||
|
|
16bc64121f | ||
|
|
d8cd133a33 | ||
|
|
f1ec84159d | ||
|
|
b9a6022f15 | ||
|
|
b832343962 | ||
|
|
8e3e81256f | ||
|
|
24ec8acb2d | ||
|
|
820516e756 | ||
|
|
09d555e3d0 | ||
|
|
9782bbd297 | ||
|
|
833331a53d | ||
|
|
a9b87039e4 | ||
|
|
327125e313 | ||
|
|
ce886edc0b | ||
|
|
bb3e125185 | ||
|
|
f5722d61b4 | ||
|
|
7d77171b9b | ||
|
|
76d520e9a7 | ||
|
|
aa5feff190 | ||
|
|
16dd07c5e0 | ||
|
|
14c1dc4ab4 | ||
|
|
18079dd248 | ||
|
|
ae5598fa85 | ||
|
|
6183a1ed3e | ||
|
|
177647c99b | ||
|
|
278aee14a5 | ||
|
|
29048d8d7e | ||
|
|
e3b65c75be | ||
|
|
a3858e17e9 | ||
|
|
0d27154a49 | ||
|
|
9ab9402ed9 | ||
|
|
db638b91b3 | ||
|
|
c1c1b21686 | ||
|
|
e62db3b3c8 | ||
|
|
f01310928c | ||
|
|
b003591f19 | ||
|
|
9ae0e91ef4 | ||
|
|
c2c1590d52 | ||
|
|
39916670cc | ||
|
|
14b2c4a1f4 | ||
|
|
2074b6ceee | ||
|
|
120ea84394 | ||
|
|
4ca31d911f | ||
|
|
03a1a3675a | ||
|
|
7052ece4e8 | ||
|
|
f34dafccdb | ||
|
|
65052194b4 | ||
|
|
88d0d5427e | ||
|
|
2c99f0230c | ||
|
|
ea138b85ab | ||
|
|
df93e470cc | ||
|
|
e54698481c | ||
|
|
43004bcaaa | ||
|
|
98c0dd4147 | ||
|
|
85f8b2a830 | ||
|
|
b8c51d4614 | ||
|
|
805fe58a28 | ||
|
|
f5c36b8d9e | ||
|
|
25ab185761 | ||
|
|
e7fcde565b | ||
|
|
6164ea4840 | ||
|
|
470ca9ef6f | ||
|
|
beffd8738e | ||
|
|
bce14e2c6f | ||
|
|
af2ee723dc | ||
|
|
975771b431 | ||
|
|
3f5e121f2b | ||
|
|
a000fe6c06 | ||
|
|
ff8c3d2d67 | ||
|
|
e6df40e831 | ||
|
|
b559075a02 | ||
|
|
1d87b34375 | ||
|
|
942a83b246 | ||
|
|
92689ec8e0 | ||
|
|
dfb664c946 | ||
|
|
8c4eede77d | ||
|
|
4ad82c5ef2 | ||
|
|
ca612d3fc0 | ||
|
|
87fca31a3f | ||
|
|
54b2a4d6a0 | ||
|
|
82a5d700e3 | ||
|
|
982ac8b7a2 | ||
|
|
6aed779dc8 | ||
|
|
69fe08beb2 | ||
|
|
412bae8482 | ||
|
|
27868d1799 | ||
|
|
bb19590b7e | ||
|
|
48dba110e2 | ||
|
|
255f9fc072 | ||
|
|
8f9fa59341 | ||
|
|
872f6e7af8 | ||
|
|
ecca999733 | ||
|
|
38d64188ff | ||
|
|
048aa76cc9 | ||
|
|
5c3249d954 | ||
|
|
b15b80c1b7 | ||
|
|
5facf4becc | ||
|
|
f5ebf71f49 | ||
|
|
7a69f34c69 | ||
|
|
f1b7a88393 | ||
|
|
853d714008 | ||
|
|
077b8f2d25 | ||
|
|
b6bb43ef94 | ||
|
|
6f20f9d285 | ||
|
|
2fb5c4394b | ||
|
|
9ca8a571e9 | ||
|
|
8ee05c9da8 | ||
|
|
a4430a9cfe | ||
|
|
2be03f0d73 | ||
|
|
85fe5f8c34 | ||
|
|
c7f52698c1 | ||
|
|
d775bca68f | ||
|
|
6c763f3721 | ||
|
|
949e461e8f | ||
|
|
59ed068c78 | ||
|
|
d8cd7dac07 | ||
|
|
4945317c28 | ||
|
|
34f4400502 | ||
|
|
259f662488 | ||
|
|
d349734059 | ||
|
|
fa5f20cfce | ||
|
|
435fff2cb1 | ||
|
|
9173e270b0 | ||
|
|
40645cc0a6 | ||
|
|
33e114b37e | ||
|
|
be85bd83e8 | ||
|
|
29099a7470 | ||
|
|
8823289f9f | ||
|
|
78363147b8 | ||
|
|
ac7665fdc2 | ||
|
|
1410d8c0b2 | ||
|
|
5a4158421c | ||
|
|
945115968c | ||
|
|
970f1f9c7f | ||
|
|
65ef16ef31 | ||
|
|
0186acacdb | ||
|
|
bc4a269d3c | ||
|
|
291441a34c | ||
|
|
d8c1e99f02 | ||
|
|
8d0cc271bf | ||
|
|
bbde60d6d2 | ||
|
|
e2b820f0ea | ||
|
|
c970dbb647 | ||
|
|
29c32f04e3 | ||
|
|
00c6777aa1 | ||
|
|
143ae77156 | ||
|
|
87ba25b722 | ||
|
|
dc77b5700c | ||
|
|
0e5c01290d | ||
|
|
ba16543ef5 | ||
|
|
f65e4feda4 | ||
|
|
20181fde3d | ||
|
|
491ed1813e | ||
|
|
caa5dbe679 | ||
|
|
7e6d72f030 | ||
|
|
6ea962c767 | ||
|
|
c87b2d0cee | ||
|
|
c2c31547c2 | ||
|
|
21851b0001 | ||
|
|
bd96cca64f | ||
|
|
02893ad216 | ||
|
|
4f88703159 | ||
|
|
abc62474bf | ||
|
|
3a9754715a | ||
|
|
2f212ab8d5 | ||
|
|
71be1ed5f1 | ||
|
|
1c6896076f | ||
|
|
6a2d265af6 | ||
|
|
6fe9c3735a | ||
|
|
5d43cf4ec4 | ||
|
|
8b3b1eb121 | ||
|
|
836a7b1a88 | ||
|
|
c26edafb17 | ||
|
|
a9bf810ba2 | ||
|
|
a737e92b08 | ||
|
|
54ae55a949 | ||
|
|
5ab53094fa | ||
|
|
aff24aed0d | ||
|
|
b915644ec4 | ||
|
|
28c71a667a | ||
|
|
d45c4f86d3 | ||
|
|
8060534f63 | ||
|
|
80bdf7eae5 | ||
|
|
2dad2b3882 | ||
|
|
aa0a80bea8 | ||
|
|
dec171c4bf | ||
|
|
6d5779844f | ||
|
|
94ed0368b9 | ||
|
|
6c8d9c8c8e | ||
|
|
9de0be49d6 | ||
|
|
5a76218edd | ||
|
|
d84c321376 | ||
|
|
b3262ff512 | ||
|
|
a825563c0b | ||
|
|
da476e0da9 | ||
|
|
46107c39a4 | ||
|
|
a263d88c81 | ||
|
|
9158cd2494 | ||
|
|
2e98f2dd1a | ||
|
|
902b4bda6a | ||
|
|
87b52bb5cd | ||
|
|
e6199b5279 | ||
|
|
e7f995106c | ||
|
|
3bcb1f3af1 | ||
|
|
13a652c81c | ||
|
|
5ddd062e36 | ||
|
|
4bedc6bb31 | ||
|
|
70f94e52ea | ||
|
|
87c3363fa9 | ||
|
|
ca1dc06e04 | ||
|
|
b5ed0a1d3d | ||
|
|
19c8eeb4e8 | ||
|
|
293e62c99d | ||
|
|
2da7dd5982 | ||
|
|
6325b1b630 | ||
|
|
9244e0eee1 | ||
|
|
712d951ffc | ||
|
|
40773632e0 | ||
|
|
88628a2319 | ||
|
|
31120ba5f7 | ||
|
|
75276870db | ||
|
|
fc0b122460 | ||
|
|
d976c362ac | ||
|
|
6c82c26884 | ||
|
|
a0ef3e1865 | ||
|
|
4f91645642 | ||
|
|
46b2bef868 | ||
|
|
26319ee1a1 | ||
|
|
42a8242676 | ||
|
|
57ab773c70 | ||
|
|
219364ee55 | ||
|
|
8b5fc29c7a | ||
|
|
21f4b69b2b | ||
|
|
f76ce400eb | ||
|
|
16204148bb | ||
|
|
1f2d017ae1 | ||
|
|
1b10ad424a | ||
|
|
3e65f6bf57 | ||
|
|
f84d03b2bc | ||
|
|
2db28891e4 | ||
|
|
7adc26fd8b | ||
|
|
fe80df5446 | ||
|
|
8588815ef3 | ||
|
|
a70fc67b0b | ||
|
|
b5c53ae6c7 | ||
|
|
3d018fb061 | ||
|
|
3845e2c145 | ||
|
|
1930c2c33b | ||
|
|
1e2b92b517 | ||
|
|
983fa5a21e | ||
|
|
3ecbb5c314 | ||
|
|
8fa1628958 | ||
|
|
e52b580cad | ||
|
|
4b28e0a8f1 | ||
|
|
91f5ceb3be | ||
|
|
603758b484 | ||
|
|
b6b575c1d5 | ||
|
|
e2f3142c78 | ||
|
|
7623887079 | ||
|
|
1bd6ec4c91 | ||
|
|
33a6aefce8 | ||
|
|
d3f8aaecd8 | ||
|
|
049cca1711 | ||
|
|
a40df45348 | ||
|
|
8f42eaae01 | ||
|
|
ebeefd9f7d | ||
|
|
646f9a4a8b | ||
|
|
b4fa1661af | ||
|
|
ba3c63dbc9 | ||
|
|
350535d498 | ||
|
|
467caa4307 | ||
|
|
01b6956d61 | ||
|
|
61c3a669b4 | ||
|
|
befb6e9b80 | ||
|
|
35e43dabe1 | ||
|
|
b905779950 | ||
|
|
04c32887f1 | ||
|
|
e0a39d68d8 | ||
|
|
92ec8541c1 | ||
|
|
82a7ef78f3 | ||
|
|
236c42c14e | ||
|
|
b8fdc56a8b | ||
|
|
17ad61bd7f | ||
|
|
ec1507ea9d | ||
|
|
69bd1f31fd | ||
|
|
b9d4af72e9 | ||
|
|
fbbc036830 | ||
|
|
c2b0fdd647 | ||
|
|
3706b626fe | ||
|
|
edbfc48fdd | ||
|
|
59c6886c65 | ||
|
|
8091552925 |
No files matched your search
+117
-44
@@ -26,11 +26,6 @@ Status legend
|
||||
|
||||
== Server APIs ==
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: activescript
|
||||
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
|
||||
MAINTENANCE: Odd Fixes
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: aolserver
|
||||
MAINTENANCE: Unknown
|
||||
@@ -41,14 +36,19 @@ PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: apache2handler / apache2filter
|
||||
EXTENSION: apache_hooks
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: apache2filter
|
||||
PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: apache_hooks
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
EXTENSION: apache2handler
|
||||
PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: caudium
|
||||
MAINTENANCE: Unknown
|
||||
@@ -63,6 +63,11 @@ MAINTENANCE: Marcus Boerger <helly@php.net>, Edin Kadribasic <edink@php.
|
||||
STATUS: Working
|
||||
SINCE: 4.3.0
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: continuity
|
||||
PRIMARY MAINTAINER: Alex Leigh <aleigh@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: embed
|
||||
PRIMARY MAINTAINER: Edin Kadribasic <edink@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -129,12 +134,8 @@ STATUS: Working
|
||||
SINCE: 4.0.6
|
||||
COMMENT: DB abstraction for odbc, mysql, pgsql, mssql, fbsql and more, see documentation
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: filepro
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: hwapi
|
||||
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
|
||||
EXTENSION: fbsql
|
||||
PRIMARY MAINTAINER: Frank M. Kromann <fmk@swwwing.com>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
@@ -175,6 +176,26 @@ MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
SINCE: 5.0
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: oci8
|
||||
PRIMARY MAINTAINER: Antony Dovgal <tony2001@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: odbc
|
||||
PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
COMMENT: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: oracle
|
||||
MAINTENANCE: Orphaned
|
||||
STATUS: Working
|
||||
COMMENT: Using the new OCI8 driver is encouraged where possible.
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ovrimos
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pgsql
|
||||
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Yasuo Ohgaki <yohgaki@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -196,22 +217,6 @@ EXTENSION: sybase_ct
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: oci8
|
||||
PRIMARY MAINTAINER: Antony Dovgal <tony2001@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: odbc
|
||||
PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
COMMENT: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: oracle
|
||||
MAINTENANCE: Orphaned
|
||||
STATUS: Working
|
||||
COMMENT: Using the new OCI8 driver is encouraged where possible.
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
== XML extensions ==
|
||||
@@ -220,7 +225,7 @@ COMMENT: Using the new OCI8 driver is encouraged where possible.
|
||||
EXTENSION: dom
|
||||
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>, Marcus Boerger <helly@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
STATUS: Working
|
||||
SINCE: 5.0
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: simplexml
|
||||
@@ -229,6 +234,11 @@ MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
SINCE: 5.0
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: soap
|
||||
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@zend.com>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: wddx
|
||||
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -247,7 +257,7 @@ STATUS: Experimental
|
||||
EXTENSION: xsl
|
||||
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
STATUS: Working
|
||||
SINCE: 5.0
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
@@ -265,11 +275,6 @@ MAINTENANCE: Odd Fixes
|
||||
STATUS: Working
|
||||
SINCE: 4.0.3
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: dio
|
||||
MAINTENANCE: Orphaned
|
||||
STATUS: Working
|
||||
SINCE: 4.0.6
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: calendar
|
||||
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
|
||||
MAINTENANCE: Odd Fixes
|
||||
@@ -297,17 +302,31 @@ MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
SINCE: 4.0.2
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: dio
|
||||
MAINTENANCE: Orphaned
|
||||
STATUS: Working
|
||||
SINCE: 4.0.6
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: exif
|
||||
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
SINCE: 4.2
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: fam
|
||||
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: fdf
|
||||
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: filepro
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ftp
|
||||
PRIMARY MAINTAINER: Stefan Esser (sesser@php.net)
|
||||
MAINTENANCE: Maintained
|
||||
@@ -327,6 +346,11 @@ MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
SINCE: 4.0.4
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: hwapi
|
||||
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: iconv
|
||||
PRIMARY MAINTAINER: Moriyoshi Koizumi <moriyoshi@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -337,6 +361,11 @@ PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org>
|
||||
MAINTENANCE: Odd Fixes
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ircg
|
||||
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ldap
|
||||
PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -352,33 +381,63 @@ PRIMARY MAINTAINER: Derick Rethans <derick@derickrethans.nl>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mcve
|
||||
PRIMARY MAINTAINER: Unknown
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mhash
|
||||
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mime_magic
|
||||
PRIMARY MAINTAINER: Unknown
|
||||
MAINTENANCE: Deprecated
|
||||
STATUS: Experimental
|
||||
COMMENT: Use PECL's fileinfo extension instead
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ming
|
||||
PRIMARY MAINTAINER: Frank M. Kromann
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mnogosearch
|
||||
PRIMARY MAINTAINER: Sergey Kartashoff <gluke@mail.ru>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mono
|
||||
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: msession
|
||||
PRIMARY MAINTAINER Mark L. Woodward mlwmohawk@mohawksoft.com
|
||||
PRIMARY MAINTAINER Mark L. Woodward <mlwmohawk@mohawksoft.com>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working/Experimental
|
||||
COMMENT: Tested on Linux, should work on other UNIX platforms. Backend server code can compile under Windows.
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ncurses
|
||||
PRIMARY MAINTAINER Ilia Alshanetsky <iliaa@php.net>, Wez Furlong <wez@php.net>, Hartmut Holzgraefe <hholzgra@php.net>, Georg Richter <georg@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: openssl
|
||||
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
SINCE: 4.0.4
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pcntl
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pcre
|
||||
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pdf
|
||||
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pfpro
|
||||
PRIMARY MAINTAINER: David Croft <david@infotrek.co.uk>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -439,6 +498,20 @@ EXTENSION: sysvshm
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: tidy
|
||||
PRIMARY MAINTAINER: John Coggeshall <john@php.net>, Ilia Alshanetsky <iliaa@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: tokenizer
|
||||
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: w32api
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: yaz
|
||||
PRIMARY MAINTAINER: Adam Dickmeiss <adam@indexdata.dk>
|
||||
MAINTENANCE: Maintained
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ clean:
|
||||
|
||||
distclean: clean
|
||||
rm -f config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h php5.spec sapi/apache/libphp5.module buildmk.stamp
|
||||
egrep define'.*include/php' configure|sed 's/.*>//'|xargs rm -f
|
||||
egrep define'.*include/php' $(top_srcdir)/configure|sed 's/.*>//'|xargs rm -f
|
||||
find . -name Makefile | xargs rm -f
|
||||
|
||||
.PHONY: all clean install distclean test
|
||||
|
||||
@@ -1,7 +1,717 @@
|
||||
PHP NEWS
|
||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
?? ??? 2004, PHP 5.0.1
|
||||
?? ??? ????, PHP 5.0.6
|
||||
- Fixed an error in mysqli_fetch_fields (returned NULL instead of an
|
||||
array when row number > field_count). (Georg)
|
||||
- Renamed CachingRecursiveIterator to RecursiveCachingIterator. (Marcus)
|
||||
- Fixed bug #36400 (Custom 5xx error does not return correct HTTP response
|
||||
error code). (Tony)
|
||||
- Fixed bug #36303 (foreach on error_zval produces segfault). (Dmitry)
|
||||
- Fixed bug #36205 (Memory leaks on duplicate cookies). (Dmitry)
|
||||
- Fixed bug #36071 (Engine Crash related with 'clone'). (Dmitry)
|
||||
- Fixed bug #36006 (Problem with $this in __destruct()). (Dmitry)
|
||||
- Fixed bug #35612 (iis6 Access Violation crash). (Dmitry, alacn.uhahaa)
|
||||
- Fixed bug #35570 (segfault when re-using soap client object). (Dmitry)
|
||||
- FIxed bug #35536 (mysql_field_type() doesn't handle NEWDECIMAL). (Tony)
|
||||
- Fixed bug #35437 (Segfault or Invalid Opcode 137/1/4). (Dmitry)
|
||||
- Fixed bug #35399 (Since fix of bug #35273 SOAP decoding of
|
||||
soapenc:base64binary fails). (Dmitry)
|
||||
- Fixed bug #35360 (exceptions in interactive mode (php -a) may cause crash).
|
||||
(Dmitry)
|
||||
- Fixed bug #35273 (Error in mapping soap - java types). (Dmitry)
|
||||
- Fixed bug #35239 (Objects can lose references). (Dmitry)
|
||||
- Fixed bug #35229 (call_user_func() crashes when arguement_stack is nearly
|
||||
full). (Dmitry)
|
||||
- Fixed bug #35197 (Destructor is not called). (Tony)
|
||||
- Fixed bug #35079 (stream_set_blocking(true) toggles, not enables
|
||||
blocking). (askalski at gmail dot com, Tony)
|
||||
- Fixed bug #35009 (ZTS: Persistent resource destruct crashes when extension
|
||||
is compiled as shared). (Dmitry)
|
||||
- Fixed bug #34996 (ImageTrueColorToPalette() crashes when ncolors is
|
||||
zero). (Tony)
|
||||
- Fixed bug #34982 (array_walk_recursive() modifies elements outside function
|
||||
scope). (Dmitry)
|
||||
- Fixed bug #34978 (php out of memory or segmentation fault while installing
|
||||
sugarcrm 3.5.1a). (Dmitry)
|
||||
- Fixed bug #34977 (Compile failure on MacOSX due to use of varargs.h). (Tony)
|
||||
- Fixed bug #34950 (Unable to get WSDL through proxy). (Dmitry)
|
||||
- Fixed bug #34938 (dns_get_record() doesn't resolve long hostnames and
|
||||
leaks). (Tony)
|
||||
- Fixed bug #34856 (configure fails to detect libiconv's type). (Tony)
|
||||
- Fixed bug #34855 (ibase_service_attach() segfault on AMD64).
|
||||
(irie at gmx dot de, Tony)
|
||||
- Fixed bug #34810 (mysqli::init() and others use wrong $this pointer
|
||||
without checks). (Tony)
|
||||
- Fixed bug #34790 (preg_match_all(), named capturing groups, variable
|
||||
assignment/return => crash). (Dmitry)
|
||||
- Fixed bug #34788 (SOAP Client not applying correct namespace to generated
|
||||
values). (Dmitry)
|
||||
- Fixed bug #34787 (SOAP Client not handling boolean types correctly). (Dmitry)
|
||||
- Fixed bug #34782 (token_get_all() gives wrong result). (Dmitry)
|
||||
- Fixed bug #34757 (iconv_substr() gives "Unknown error" when offset > string
|
||||
length). (Tony)
|
||||
- Fixed bug #34723 (array_count_values() strips leading zeroes). (Tony)
|
||||
- Fixed bug #34704 (Infinite recursion due to corrupt JPEG). (Marcus)
|
||||
- Fixed bug #34678 (__call(), is_callable() and static methods). (Dmitry)
|
||||
- Fixed bug #34643 (wsdl default value has no effect). (Dmitry)
|
||||
- Fixed bug #34617 (zend_deactivate: objects_store used after
|
||||
zend_objects_store_destroy is called). (Dmitry)
|
||||
- Fixed bug #34557 (php -m exits with "error" 1). (Johannes)
|
||||
- Fixed bug #34505 (Possible memory corruption when unmangling properties
|
||||
with empty names). (Tony)
|
||||
- Fixed bug #34478 (Incorrect parsing of url's fragment (#...)). (Dmitry)
|
||||
- Fixed bug #34453 (parsing http://www.w3.org/2001/xml.xsd exception). (Dmitry)
|
||||
- Fixed bug #34450 (Segfault when calling mysqli_close() in destructor). (Tony)
|
||||
- Fixed bug #34449 (ext/soap: XSD_ANYXML functionality not exposed). (Dmitry)
|
||||
- Fixed bug #34429 (Output buffering cannot be turned off with FastCGI).
|
||||
(Dmitry, Ilya)
|
||||
- Fixed Bug #34243 (ReflectionClass::getDocComment() returns no result).
|
||||
(Marcus)
|
||||
- Fixed bug #34199 (if($obj)/if(!$obj) inconsistency because of cast handler).
|
||||
(Dmitry, Alex)
|
||||
- Fixed bug #33732 (Wrong behavior of constants in class and interface
|
||||
extending). (Dmitry)
|
||||
- Fixed bug #33720 (mb_encode_mimeheader does not work for multibyte
|
||||
chars). (Rui)
|
||||
- Fixed bug #33383 (crash when retrieving empty LOBs). (Tony)
|
||||
- Fixed bug #32179 (xmlrpc_encode() segfaults with recursive references). (Tony)
|
||||
- Fixed bug #29983 (PHP does not explicitly set mime type & charset). (Ilia)
|
||||
- Fixed bug #33153 (crash in mssql_next result). (Frank)
|
||||
- Fixed bug #32009 (crash when mssql_bind() is called more than once). (Frank)
|
||||
- Fixed bug #33963 (mssql_bind() fails on input parameters). (Frank)
|
||||
- Fixed bug #33201 (Crash when fetching some data types). (Frank)
|
||||
|
||||
05 Sep 2005, PHP 5.0.5
|
||||
- Upgraded PCRE library to version 5.0. (Andrei)
|
||||
- Removed php_check_syntax() function which never worked properly. (Ilia)
|
||||
- Added new function mysqli_set_charset(). (Georg)
|
||||
- Added man pages for "phpize" and "php-config" scripts. (Jakub Vrana)
|
||||
- Added support for .cc files in extensions. (Brian)
|
||||
- Added PHP_INT_MAX and PHP_INT_SIZE as predefined constants. (Andrey)
|
||||
- Changed sha1_file() and md5_file() functions to use streams instead of
|
||||
low level IO. (Uwe)
|
||||
- Changed ming to support official 0.2a and 0.3 library versions. (Marcus)
|
||||
- Fixed failing queries problem (FALSE returned) with mysqli_query() on 64 bit.
|
||||
(Andrey)
|
||||
- Fixed memory corruption in pg_copy_from() in case the as_null parameter was
|
||||
passed. (Derick)
|
||||
- Fixed ext/mysqli to allocate less memory when fetching bound params
|
||||
of type (MEDIUM|LONG)BLOB/(MEDIUM|LONG)TEXT. (Andrey)
|
||||
- Fixed memory corruption in ImageTTFText() with 64bit systems. (Andrey)
|
||||
- Fixed memory corruption in stristr(). (Derick)
|
||||
- Fixed segfaults when CURL callback functions throw exception. (Tony)
|
||||
- Fixed various reentrancy bugs in user-sort functions, solves bugs #33286 and
|
||||
#33295. (Mike Bretz)
|
||||
- Fixed bug #34548 (Method append() in class extended from ArrayObject crashes
|
||||
PHP). (Tony)
|
||||
- Fixed bug #34307 (on_modify handler not called to set the default value if
|
||||
setting from php.ini was invalid). (Andrei)
|
||||
- Fixed bug #34302 (date('W') do not return leading zeros for week 1 to 9).
|
||||
(Derick)
|
||||
- Fixed bug #34299 (ReflectionClass::isInstantiable() returns true for abstract
|
||||
classes). (Marcus)
|
||||
- Fixed bug #34277 (array_filter() crashes with references and objects).
|
||||
(Dmitry)
|
||||
- Fixed bug #34260 (Segfault with callbacks (array_map) + overloading).
|
||||
(Dmitry)
|
||||
- Fixed bug #34137 (assigning array element by reference causes binary mess).
|
||||
(Dmitry)
|
||||
- Fixed bug #34078 (Reflection API problems in methods with boolean or
|
||||
null default values). (Tony)
|
||||
- Fixed bug #34064 (arr[] as param to function is allowed only if function
|
||||
receives argument by reference). (Dmitry)
|
||||
- Fixed bug #34062 (Crash in catch block when many arguments are used).
|
||||
(Dmitry)
|
||||
- Fixed bug #33989 (extract($GLOBALS,EXTR_REFS) crashes PHP). (Dmitry)
|
||||
- Fixed bug #33966 (Wrong use of reflectionproperty causes a segfault). (Tony)
|
||||
- Fixed bug #33940 (array_map() fails to pass by reference when called
|
||||
recursively). (Dmitry)
|
||||
- Fixed bug #33853 (php:function call __autoload with lowercase param). (Marcus)
|
||||
- Fixed bug #33802 (throw Exception in error handler causes crash). (Dmitry)
|
||||
- Fixed bug #33723 (php_value overrides php_admin_value). (Dmitry)
|
||||
- Fixed bug #33710 (ArrayAccess objects doen't initialize $this). (Dmitry)
|
||||
- Fixed bug #33588 (LDAP: RootDSE query not possible). (Jani)
|
||||
- Fixed bug #33558 (warning with nested calls to functions returning by
|
||||
reference). (Dmitry)
|
||||
- Fixed bug #33520 (crash if safe_mode is on and session.save_path is changed).
|
||||
(Dmitry)
|
||||
- Fixed bug #33491 (crash after extending MySQLi internal class). (Tony)
|
||||
- Fixed bug #33340 (CLI Crash when calling php:function from XSLT). (Rob)
|
||||
- Fixed bug #33277 (private method accessed by child class). (Dmitry)
|
||||
- Fixed bug #33268 (iconv_strlen() works only with a parameter of < 3 in
|
||||
length). (Ilia)
|
||||
- Fixed bug #33263 (mysqli_real_escape doesn't work in __construct) (Georg)
|
||||
- Fixed bug #33257 (array_splice() inconsistent when passed function instead
|
||||
of variable). (Dmitry)
|
||||
- Fixed bug #33243 (ze1_compatibility_mode does not work as expected). (Dmitry)
|
||||
- Fixed bug #33242 (Mangled error message when stream fails). (Derick)
|
||||
- Fixed bug #33222 (segfault when CURL handle is closed in a callback). (Tony)
|
||||
- Fixed bug #33214 (odbc_next_result does not signal SQL errors with
|
||||
2-statement SQL batches). (rich at kastle dot com, Tony)
|
||||
- Fixed bug #33210 (relax jpeg recursive loop protection). (Ilia)
|
||||
- Fixed bug #33200 (preg_replace(): magic_quotes_sybase=On makes 'e' modifier
|
||||
misbehave). (Jani)
|
||||
- Fixed bug #33185 (--enable-session=shared does not build). (Jani)
|
||||
- Fixed bug #33171 (foreach enumerates private fields declared in base
|
||||
classes). (Dmitry)
|
||||
- Fixed bug #33164 (Soap extension incorrectly detects HTTP/1.1). (Ilia)
|
||||
- Fixed bug #33156 (cygwin version of setitimer doesn't accept ITIMER_PROF).
|
||||
(Nuno)
|
||||
- Fixed bug #33116 (crash when assigning class name to global variable in
|
||||
__autoload). (Dmitry)
|
||||
- Fixed bug #33090 (mysqli_prepare() doesn't return an error). (Georg)
|
||||
- Fixed bug #33076 (str_ireplace() incorrectly counts result string length
|
||||
and may cause segfault). (Tony)
|
||||
- Fixed bug #33072 (Add a safemode/open_basedir check for runtime
|
||||
"session.save_path" change using session_save_path() function). (Rasmus)
|
||||
- Fixed bug #33070 (Improved performance of bzdecompress() by several orders
|
||||
of magnitude). (Ilia)
|
||||
- Fixed bug #33059 (crash when moving xml attribute set in dtd). (Ilia)
|
||||
- Fixed bug #33057 (Don't send extraneous entity-headers on a 304 as per
|
||||
RFC 2616 section 10.3.5) (Rasmus, Choitel)
|
||||
- Fixed bug #33019 (socket errors cause memory leaks in php_strerror()).
|
||||
(jwozniak23 at poczta dot onet dot pl, Tony).
|
||||
- Fixed bug #33017 ("make distclean" gives an error with VPATH build). (Jani)
|
||||
- Fixed bug #33013 ("next month" was handled wrong while parsing dates).
|
||||
(Derick)
|
||||
- Fixed bug #32981 (ReflectionMethod::getStaticVariables() causes apache2.0.54
|
||||
seg fault). (Dmitry)
|
||||
- Fixed bug #32956 (mysql_bind_result() doesn't support MYSQL_TYPE_NULL). (Georg)
|
||||
- Fixed bug #32947 (Incorrect option for mysqli default password). (Georg)
|
||||
- Fixed bug #32944 (Disabling session.use_cookies doesn't prevent reading
|
||||
session cookies). (Jani, Tony)
|
||||
- Fixed bug #32941 (Sending structured SOAP fault kills a php). (Dmitry)
|
||||
- Fixed bug #32936 (http redirects URLs are not checked for control chars). (Ilia)
|
||||
- Fixed bug #32933 (Cannot extend class "SQLiteDatabase"). (Marcus)
|
||||
- Fixed bug #32932 (Oracle LDAP: ldap_get_entries(), invalid pointer). (Jani)
|
||||
- Fixed bug #32930 (class extending DOMDocument doesn't clone properly). (Rob)
|
||||
- Fixed bug #32904 (pg_get_notify() ignores result_type parameter). (Tony)
|
||||
- Fixed bug #32852 (Crash with singleton and __destruct when
|
||||
zend.ze1_compatibility_mode = On). (Dmitry)
|
||||
- Fixed bug #32813 (parse_url() does not handle scheme-only urls properly). (Ilia)
|
||||
- Fixed bug #32810 (temporary files not using plain file wrapper). (Ilia)
|
||||
- Fixed bug #32809 (Missing T1LIB support on Windows). (Edin)
|
||||
- Fixed bug #32802 (General cookie overrides more specific cookie). (Ilia)
|
||||
- Fixed bugs #32800, #32830 (ext/odbc: Problems with 64bit systems). (Jani)
|
||||
- Fixed bug #32799 (crash: calling the corresponding global var during the
|
||||
destruct). (Dmitry)
|
||||
- Fixed bug #32776 (SOAP doesn't support one-way operations). (Dmitry)
|
||||
- Fixed bug #32773 (GMP functions break when second parameter is 0). (Stas)
|
||||
- Fixed bug #32759 (incorrect determination of default value (COM)). (Wez)
|
||||
- Fixed bug #32758 (Cannot access safearray properties in VB6 objects). (Wez)
|
||||
- Fixed bug #32755 (Segfault in replaceChild() when DocumentFragment has
|
||||
no children). (Rob)
|
||||
- Fixed bug #32753 (Undefined constant SQLITE_NOTADB). (Ilia)
|
||||
- Fixed bug #32742 (segmentation fault when the stream with a wrapper
|
||||
is not closed). (Tony, Dmitry)
|
||||
- Fixed bug #32699 (pg_affected_rows() was defined when it was not available).
|
||||
(Derick)
|
||||
- Fixed bug #32686 (Require/include file in destructor causes segfault).
|
||||
(Marcus)
|
||||
- Fixed bug #32682 (ext/mssql: Error on module shutdown when called from
|
||||
activescript). (Frank)
|
||||
- Fixed bug #32674 (exception in iterator causes crash). (Dmitry)
|
||||
- Fixed bug #32660 (Assignment by reference causes crash when field access is
|
||||
overloaded (__get)). (Dmitry)
|
||||
- Fixed bug #32647 (Using register_shutdown_function() with invalid callback
|
||||
can crash PHP). (Jani)
|
||||
- Fixed bug #32615 (Segfault in replaceChild() using fragment when
|
||||
previousSibling is NULL). (Rob)
|
||||
- Fixed bug #32613 (ext/snmp: use of snmp_shutdown() causes snmpapp.conf
|
||||
access errors). (Jani, ric at arizona dot edu)
|
||||
- Fixed bug #32608 (html_entity_decode() converts single quotes even if
|
||||
ENT_NOQUOTES is given). (Ilia)
|
||||
- Fixed bug #32596 (Segfault/Memory Leak by getClass (etc) in __destruct).
|
||||
(Dmitry)
|
||||
- Fixed bug #32591 (ext/mysql: Unsatisfied symbol: ntohs with HP-UX). (Jani)
|
||||
- Fixed bug #32589 (Possible crash inside imap_mail_compose, with charsets).
|
||||
(Ilia)
|
||||
- Fixed bug #32587 (Apache2: errors sent to error_log do not include
|
||||
timestamps). (Jani)
|
||||
- Fixed bug #32560 (configure looks for incorrect db2 library). (Tony)
|
||||
- Fixed bug #32553 (mmap loads only the 1st 2000000 bytes on Win32). (Ilia)
|
||||
- Fixed bug #32533 (proc_get_status() returns the incorrect process status). (Ilia)
|
||||
- Fixed bug #32530 (chunk_split() does not append endstr if chunklen is
|
||||
longer then the original string). (Ilia)
|
||||
- Fixed bug #32491 (File upload error - unable to create a temporary file).
|
||||
(Uwe Schindler)
|
||||
- Fixed bug #32405 (mysqli::fetch() returns bad data - 64bit problem). (Andrey)
|
||||
- Fixed bug #32282 (Segfault in mysqli_fetch_array on 64-bit). (Georg)
|
||||
- Fixed bug #32296 (get_class_methods() output has changed between 5.0.2 and
|
||||
5.0.3). (Dmitry)
|
||||
- Fixed bug #32245 (xml_parser_free() in a function assigned to the xml parser
|
||||
gives a segfault). (Rob)
|
||||
- Fixed bug #32171 (Userspace stream wrapper crashes PHP). (Tony, Dmitry)
|
||||
- Fixed bug #32080 (segfault when assigning object to itself with
|
||||
zend.ze1_compatibility_mode=On). (Dmitry)
|
||||
- Fixed bug #32013 (ext/mysqli bind_result causes fatal error: memory
|
||||
limit). (Andrey)
|
||||
- Fixed bug #31887 (ISAPI: Custom 5xx error does not return correct HTTP
|
||||
response message). (Jani)
|
||||
- Fixed bug #31828 (Crash with zend.ze1_compatibility_mode=On). (Dmitry)
|
||||
- Fixed bug #31668 (multi_query works exactly every other time - multi query
|
||||
d/e flag global and not per connection). (Andrey)
|
||||
- Fixed bug #31636 (another crash when echoing a COM object). (Wez)
|
||||
- Fixed bug #31583 (php_std_date() uses short day names in non-y2k_compliance
|
||||
mode). (mike at php dot net)
|
||||
- Fixed bug #31525 (object reference being dropped. $this getting lost).
|
||||
(Stas, Dmitry)
|
||||
- Fixed bug #31502 (Wrong deserialization from session when using WDDX
|
||||
serializer). (Dmitry)
|
||||
- Fixed bug #31465 (False warning in unpack() when working with *). (Ilia)
|
||||
- Fixed bug #31363 (broken non-blocking flock()). ian at snork dot net
|
||||
- Fixed bug #31213 (Sideeffects caused by fix of bug #29493). (Dmitry)
|
||||
- Fixed bug #31158 (array_splice on $GLOBALS crashes). (Dmitry)
|
||||
- Fixed bug #30961 (Wrong linenumber in ReflectionClass getStartLine()).
|
||||
(Dmitry)
|
||||
- Fixed bug #30889 (Conflict between __get/__set and ++ operator). (Dmitry)
|
||||
- Fixed bug #30833 (array_count_values() modifying input array). (Tony)
|
||||
- Fixed bug #30828 (debug_backtrace() reports incorrect class in overridden
|
||||
methods). (Dmitry)
|
||||
- Fixed bug #30820 (static member conflict with $this->member silently
|
||||
ignored). (Dmitry)
|
||||
- Fixed bug #30819 (Better support for LDAP SASL bind). (Jani)
|
||||
- Fixed bug #30791 (magic methods (__sleep/__wakeup/__toString) call __call if
|
||||
object is overloaded). (Dmitry)
|
||||
- Fixed bug #30707 (Segmentation fault on exception in method). (Stas, Dmitry)
|
||||
- Fixed bug #30702 (cannot initialize class variable from class constant).
|
||||
(Dmitry)
|
||||
- Fixed bug #30519 (Interface not existing says Class not found). (Dmitry)
|
||||
- Fixed bug #30394 (Assignment operators yield wrong result with __get/__set).
|
||||
(Dmitry)
|
||||
- Fixed bug #30332 (zend.ze1_compatibility_mode isnt fully compatable with
|
||||
array_push()). (Dmitry)
|
||||
- Fixed bug #30162 (Catching exception in constructor causes lose of $this).
|
||||
(Dmitry)
|
||||
- Fixed bug #30140 (Problem with array in static properties). (Dmitry)
|
||||
- Fixed bug #30126 (Enhancement for error message for abstract classes).
|
||||
(Marcus)
|
||||
- Fixed bug #30080 (Passing array or non array of objects). (Dmitry)
|
||||
- Fixed bug #29975 (memory leaks when set_error_handler() is used inside error
|
||||
handler). (Tony)
|
||||
- Fixed bug #29971 (variables_order behaviour). (Dmitry)
|
||||
- Fixed bug #29944 (Function defined in switch, crashes). (Dmitry)
|
||||
- Fixed bug #29896 (Backtrace argument list out of sync). (Dmitry)
|
||||
- Fixed bug #29683 (headers_list() returns empty array). (Tony)
|
||||
- Fixed bug #29583 (crash when echoing a COM object). (M.Sisolak, Wez)
|
||||
- Fixed bug #29338 (unencoded spaces get ignored after certain tags). (Ilia)
|
||||
- Fixed bug #29210 (Function: is_callable - no support for private and
|
||||
protected classes). (Dmitry)
|
||||
- Fixed bug #29104 (Function declaration in method doesn't work). (Dmitry)
|
||||
- Fixed bug #29015 (Incorrect behavior of member vars(non string ones)-numeric
|
||||
mem vars und others). (Dmitry)
|
||||
- Fixed bug #28839 (SIGSEGV in interactive mode (php -a)).
|
||||
(kameshj at fastmail dot fm)
|
||||
- Fixed bug #28605 (Need to use -[m]ieee option for Alpha CPUs). (Jani)
|
||||
- Fixed bug #28377 (debug_backtrace is intermittently passing args). (Dmitry)
|
||||
- Fixed bug #27598 (list() array key assignment causes HUGE memory leak).
|
||||
(Dmitry)
|
||||
- Fixed bug #26456 (Wrong results from Reflection-API getDocComment() when
|
||||
called via STDIN). (Dmitry)
|
||||
- Fixed bug #25922 (In error handler, modifying 5th arg (errcontext) may result
|
||||
in seg fault). (Dmitry)
|
||||
- Fixed bug #22836 (returning reference to uninitialized variable). (Dmitry)
|
||||
- Fixed bug #29689 (default value of protected member overrides default value of private)
|
||||
and other private variable problems in inherited classes (Stas)
|
||||
- Fixed bug #29253 (array_diff with $GLOBALS argument fails). (Dmitry)
|
||||
- Abstract private methods are no longer allowed (Stas)
|
||||
|
||||
31 Mar 2005, PHP 5.0.4
|
||||
- Added SNMPv2 support. (harrie)
|
||||
- Added Oracle Instant Client support. (cjbj at hotmail dot com, Tony)
|
||||
- Added length and charsetnr for field array and object in mysqli. (Georg)
|
||||
- Added checks for negative values to gmp_sqrt(), gmp_powm(), gmp_sqrtrem()
|
||||
and gmp_fact() to prevent SIGFPE. (Tony)
|
||||
- Changed foreach() to throw an exception if IteratorAggregate::getIterator()
|
||||
does not return an Iterator. (Marcus)
|
||||
- Changed phpize not to require libtool. (Jani)
|
||||
- Updated bundled oniguruma library (used for multibyte regular expression)
|
||||
to 3.7.0. (Moriyoshi)
|
||||
- Updated bundled libmbfl library (used for multibyte functions). (Moriyoshi)
|
||||
Fixed bugs:
|
||||
. Bug #32311 (mb_encode_mimeheader() does not properly escape characters)
|
||||
. Bug #32063 (mb_convert_encoding ignores named entity 'alpha')
|
||||
. Bug #31911 (mb_decode_mimeheader() is case-sensitive to hex escapes)
|
||||
. bug #30573 (compiler warnings in libmbfl due to invalid type cast)
|
||||
. Bug #30549 (incorrect character translations for some ISO8859 charsets).
|
||||
- Fixed bug preventing from building oci8 as shared.
|
||||
(stanislav dot voroniy at portavita dot nl, Tony)
|
||||
- Fixed a bug in mysql_affected_rows and mysql_stmt_affected_rows when the
|
||||
api function returns -1 (Georg)
|
||||
- Fixed several leaks in ext/browscap and sapi/embed. (Andrei)
|
||||
- Fixed several leaks in ext/filepro. (Tony)
|
||||
- Fixed build system to always use bundled libtool files. (Jani)
|
||||
- Fixed a bug in mysqli_stmt_execute() (type conversion with NULL values).
|
||||
(Georg)
|
||||
- Fixed segfault in mysqli_fetch_field_direct() when invalid field offset
|
||||
is passed. (Tony)
|
||||
- Fixed posix_getsid() & posix_getpgid() to return sid & pgid instead
|
||||
of true. (Tony)
|
||||
- Fixed bug #32394 (offsetUnset() segfaults in a foreach). (Marcus)
|
||||
- Fixed bug #32373 (segfault in bzopen() if supplied path to non-existent
|
||||
file). (Tony)
|
||||
- Fixed bug #32326 (Check values of Connection/Transfer-Encoding
|
||||
case-incentively in SOAP extension). (Ilia)
|
||||
- Fixed bug #32290 (call_user_func_array() calls wrong class method within
|
||||
child class). (Marcus)
|
||||
- Fixed bug #32238 (spl_array.c: void function cannot return value). (Johannes)
|
||||
- Fixed bug #32210 (proc_get_status() sets "running" always to true). (Ilia)
|
||||
- Fixed bug #32200 (Prevent using both --with-apxs2 and --with-apxs2filter).
|
||||
(Jani)
|
||||
- Fixed bug #32134 (Overloading offsetGet/offsetSet). (Marcus)
|
||||
- Fixed bug #32130 (ArrayIterator::seek() does not throw an Exception on
|
||||
invalid index). (Marcus)
|
||||
- Fixed bug #32115 (dateTime SOAP encoding of timezone incorrect). (Dmitry)
|
||||
- Fixed bug #32081 (in mysqli default socket value is not being used). (Ilia)
|
||||
- Fixed bug #32021 (Crash caused by range('', 'z')). (Derick)
|
||||
- Fixed bug #32011 (Fragments which replaced Nodes are not globaly useable).
|
||||
(Rob)
|
||||
- Fixed bug #32001 (xml_parse_into_struct() function exceeds maximum
|
||||
execution time). (Rob, Moriyoshi)
|
||||
- Fixed bug #31980 (Unicode exif data not available on Windows). (Edin)
|
||||
- Fixed bug #31960 (msql_fetch_row() and msql_fetch_array() dropping columns
|
||||
with NULL values). (Daniel Convissor)
|
||||
- Fixed bug #31878 (Segmentation fault using clone keyword on nodes). (Rob)
|
||||
- Fixed bug #31858 (--disable-cli does not force --without-pear). (Jani)
|
||||
- Fixed bug #31842 (*date('r') does not return RFC2822 conforming date string).
|
||||
(Jani)
|
||||
- Fixed bug #31832 (SOAP encoding problem with complex types in WSDL mode with
|
||||
multiple parts). (Dmitry)
|
||||
- Fixed bug #31797 (exif_read_data() uses too low nesting limit). (Ilia)
|
||||
- Fixed bug #31796 (readline completion handler does not handle empty return
|
||||
values). (Ilia)
|
||||
- Fixed bug #31792 (getrusage() does not provide ru_nswap value). (Ilia)
|
||||
- Fixed bug #31755 (Cannot create SOAP header in no namespace). (Dmitry)
|
||||
- Fixed bug #31754 (dbase_open() fails for mode = 1). (Mehdi, Derick)
|
||||
- Fixed bug #31751 (pg_parameter_status() missing on Windows). (Edin)
|
||||
- Fixed bug #31747 (SOAP Digest Authentication doesn't work with
|
||||
"HTTP/1.1 100 Continue" response). (Dmitry)
|
||||
- Fixed bug #31732 (mb_get_info() causes segfault when no parameters
|
||||
specified). (Tony)
|
||||
- Fixed bug #31710 (Wrong return values for mysqli_autocommit/commit/rollback).
|
||||
(Georg)
|
||||
- Fixed bug #31705 (parse_url() does not recognize http://foo.com#bar). (Ilia)
|
||||
- Fixed bug #31695 (Cannot redefine endpoint when using WSDL). (Dmitry)
|
||||
- Fixed bug #31684 (dio_tcsetattr(): misconfigured termios settings).
|
||||
(elod at itfais dot com)
|
||||
- Fixed bug #31683 (changes to $name in __get($name) override future
|
||||
parameters). (Dmitry)
|
||||
- Fixed bug #31699 (unserialize() float problem on non-English locales). (Ilia)
|
||||
- Fixed bug #31562 (__autoload() problem with static variables). (Marcus)
|
||||
- Fixed bug #31651 (ReflectionClass::getDefaultProperties segfaults with arrays).
|
||||
(Marcus)
|
||||
- Fixed bug #31623 (OCILogin does not support password grace period).
|
||||
(daniel dot beet at accuratesoftware dot com, Tony)
|
||||
- Fixed bug #31527 (crash in msg_send() when non-string is stored without
|
||||
being serialized). (Ilia)
|
||||
- Fixed bug #31515 (Improve performance of scandir() by factor of 10 or so). (Ilia)
|
||||
- Fixed bug #31514 (open_basedir uses path_translated rather then cwd for .
|
||||
translation). (Ilia)
|
||||
- Fixed bug #31480 (Possible infinite loop in imap_mail_compose()). (Ilia)
|
||||
- Fixed bug #31479 (Fixed crash in chunk_split(), when chunklen > strlen). (Ilia)
|
||||
- Fixed bug #31454 (session_set_save_handler crashes PHP when supplied
|
||||
non-existent object ref). (Tony)
|
||||
- Fixed bug #31444 (Memory leak in zend_language_scanner.c).
|
||||
(hexer at studentcenter dot org)
|
||||
- Fixed bug #31442 (unserialize broken on 64-bit systems). (Marcus)
|
||||
- Fixed bug #31440 ($GLOBALS can be overwritten via GPC when register_globals
|
||||
is enabled). (Ilia)
|
||||
- Fixed bug #31422 (No Error-Logging on SoapServer-Side). (Dmitry)
|
||||
- Fixed bug #31413 (curl POSTFIELDS crashes on 64-bit platforms). (Joe)
|
||||
- Fixed bug #31396 (compile fails with gd 2.0.33 without freetype). (Jani)
|
||||
- Fixed bug #31371 (highlight_file() trims new line after heredoc). (Ilia)
|
||||
- Fixed bug #31361 (simplexml/domxml segfault when adding node twice). (Rob)
|
||||
- Fixed bug #31348 (CachingIterator::rewind() leaks). (Marcus)
|
||||
- Fixed bug #31346 (ArrayIterator::next segfaults). (Marcus)
|
||||
- Fixed bug #31190 (Unexpected warning then exception is thrown from
|
||||
call_user_func_array()). (phpbugs at domain51 dot net, Dmitry)
|
||||
- Fixed bug #31142 (imap_mail_compose() fails to generate correct output). (Ilia)
|
||||
- Fixed bug #31139 (XML Parser Functions seem to drop & when parsing). (Rob)
|
||||
- Fixed bug #31398 (When magic_guotes_gpc are enabled filenames with ' get cutoff).
|
||||
(Ilia)
|
||||
- Fixed bug #31288 (Possible crash in mysql_fetch_field(), if mysql_list_fields()
|
||||
was not called previously). (Ilia)
|
||||
- Fixed bug #31107, #31110, #31111, #31249 (Compile failure of zend_strtod.c).
|
||||
(Jani)
|
||||
- Fixed bug #31110 (PHP 4.3.10 does not compile on Tru64 UNIX 5.1B). (Derick)
|
||||
- Fixed bug #31107 (Compile failure on Solaris 9 (Intel) and gcc 3.4.3). (Derick)
|
||||
- Fixed bug #31103 (Better error message when c-client cannot be found). (Ilia)
|
||||
- Fixed bug #31101 (missing kerberos header file path with --with-openssl). (Jani)
|
||||
- Fixed bug #31098 (isset() / empty() incorrectly return true in dereference of
|
||||
a string type). (Moriyoshi)
|
||||
- Fixed bug #31087 (broken php_url_encode_hash macro). (Ilia)
|
||||
- Fixed bug #31072 (var_export() does not output an array element with an empty
|
||||
string key). (Derick)
|
||||
- Fixed bug #31060 (imageftbbox() does not use linespacing parameter). (Jani)
|
||||
- Fixed bug #31056 (php_std_date() returns invalid formatted date if
|
||||
y2k_compliance is On). (Ilia)
|
||||
- Fixed bug #31055 (apache2filter: per request leak proportional to the full
|
||||
path of the request URI). (kameshj at fastmail dot fm)
|
||||
- Fixed bug #30901 (can't send cookies with soap envelop). (Dmitry)
|
||||
- Fixed bug #30871 (Misleading warning message for array_combine()). (Andrey)
|
||||
- Fixed bug #30868 (evaluated pointer comparison in mbregex causes compile
|
||||
failure). (Moriyoshi)
|
||||
- Fixed bug #30862 (Static array with boolean indexes). (Marcus)
|
||||
- Fixed bug #30726 (-.1 like numbers are not being handled correctly). (Ilia)
|
||||
- Fixed bug #30725 (PHP segfaults when an exception is thrown in getIterator()
|
||||
within foreach). (Marcus)
|
||||
- Fixed bug #30609 (cURL functions bypass open_basedir). (Jani)
|
||||
- Fixed bug #30446 (apache2handler: virtual() includes files out of sequence)
|
||||
- Fixed bug #30430 (odbc_next_result() doesn't bind values and that results
|
||||
in segfault). (pdan-php at esync dot org, Tony)
|
||||
- Fixed bug #30266 (Invalid opcode 137/1/8). (Marcus)
|
||||
- Fixed bug #30120 (imagettftext() and imagettfbbox() accept too many
|
||||
parameters). (Jani)
|
||||
- Fixed bug #30106 (SOAP cannot not parse 'ref' element. Causes Uncaught
|
||||
SoapFault exception). (Dmitry)
|
||||
- Fixed bug #29989 (type re_registers redefined in oniguruma.h). (Moriyoshi)
|
||||
- Fixed bug #28803 (enabled debug causes bailout errors with CLI on AIX
|
||||
because of fflush() called on already closed filedescriptor). (Tony)
|
||||
- Fixed bug #29767 (Weird behaviour of __set($name, $value)). (Dmitry)
|
||||
- Fixed bug #29733 (printf() handles repeated placeholders wrong).
|
||||
(bugs dot php dot net at bluetwanger dot de, Ilia)
|
||||
- Fixed bug #29424 (width and height inverted for JPEG2000 files). (Ilia)
|
||||
- Fixed bug #29329 (configure for mysqli with shared doesn't work). (Georg)
|
||||
- Fixed bug #29136 (make test - libtool failure on MacOSX). (Jani)
|
||||
- Fixed bug #28976 (mail(): use "From:" from headers if sendmail_from is empty).
|
||||
(Jani)
|
||||
- Fixed bug #28930 (PHP sources pick wrong header files generated by bison).
|
||||
(eggert at gnu dot org, Jani)
|
||||
- Fixed bug #28840 (__destruct of a class that extends mysqli not called).
|
||||
(Marcus)
|
||||
- Fixed bug #28804 (ini-file section parsing pattern is buggy).
|
||||
(wendland at scan-plus dot de)
|
||||
- Fixed bug #28451 (corrupt EXIF headers have unlimited recursive IFD directory
|
||||
entries). (Andrei)
|
||||
- Fixed bug #28444 (Cannot access undefined property for object with overloaded
|
||||
property access). (Dmitry)
|
||||
- Fixed bug #28442 (Changing a static variables in a class changes it across
|
||||
sub/super classes.) (Marcus)
|
||||
- Fixed bug #28324 (HTTP_SESSION_VARS appear when register_long_arrays is
|
||||
Off). (Tony)
|
||||
- Fixed bug #28074 (FastCGI: stderr should be written in a FCGI stderr stream).
|
||||
(chris at ex-parrot dot com)
|
||||
- Fixed bug #28067 (partially incorrect utf8 to htmlentities mapping). (Derick,
|
||||
Benjamin Greiner)
|
||||
- Fixed bug #28041 (SOAP HTTP Digest Access Authentication). (Dmitry)
|
||||
- Fixed bug #27633 (Double \r problem on ftp_get in ASCII mode on Win32). (Ilia)
|
||||
- Fixed bug #18613 (Multiple OUs in x509 certificate not handled properly).
|
||||
(Jani)
|
||||
|
||||
15 Dec 2004, PHP 5.0.3
|
||||
- Added the %F modifier to *printf to render a non-locale-aware representation
|
||||
of a float with the . as decimal seperator. (Derick)
|
||||
- Fixed error handling in mysqli_multi_query. (Georg)
|
||||
- Extended the functionality of is_subclass_of() to accept either a class name
|
||||
or an object as first parameter. (Andrey)
|
||||
- Fixed potential problems with unserializing invalid serialize data. (Marcus)
|
||||
- Fixed bug #32076 (ReflectionMethod::isDestructor() always return true).
|
||||
(Derick, Tony)
|
||||
- Fixed bug #31034 (Problem with non-existing iconv header file). (Derick)
|
||||
- Fixed bug #30995 (snmp extension does not build with net-snmp 5.2). (Ilia)
|
||||
- Fixed bug #30994 (SOAP server unable to handle request with references).
|
||||
(Dmitry)
|
||||
- Fixed bug #30990 (allow popen() on *NIX to accept 'b' flag). (Ilia)
|
||||
- Fixed bug #30967 (properties in extended mysqli classes don't work). (Georg)
|
||||
- Fixed bug #30928 (When Using WSDL, SoapServer doesn't handle private or
|
||||
protected properties). (Dmitry)
|
||||
- Fixed bug #30922 (reflective functions crash PHP when interfaces extend
|
||||
themselves). (Tony, Dmitry)
|
||||
- Fixed bug #30904 (segfault when recording soapclient into session). (Tony,
|
||||
Dmitry)
|
||||
- Fixed bug #30890 (MySQLi testsuite)
|
||||
- Fixed bug #30856 (ReflectionClass::getStaticProperties segfaults). (Marcus)
|
||||
- Fixed bug #30832 ("!" stripped off comments in xml parser). (Rob)
|
||||
- Fixed bug #30799 (SoapServer doesn't handle private or protected properties).
|
||||
(Dmitry)
|
||||
- Fixed bug #30783 (Apache crash when using ReflectionFunction::
|
||||
getStaticVariables()). (Marcus)
|
||||
- Fixed bug #30750 (Meaningful error message when upload directory is not
|
||||
accessible). (Ilia)
|
||||
- Fixed bug #30685 (Malformed SOAPClient http header reequest). (Dmitry)
|
||||
- Fixed bug #30672 (Problem handling exif data in jpeg images at unusual
|
||||
places). (Marcus)
|
||||
- Fixed bug #30658 (Ensure that temporary files created by GD are removed).
|
||||
(Ilia)
|
||||
- Fixed bug #30645 (def. multi result set support for mysql_connect). (Georg)
|
||||
- Fixed bug #30637 (compile with pear error). (Antony)
|
||||
- Fixed bug #30587 (array_multisort doesn't separate zvals before
|
||||
changing them). (Tony)
|
||||
- Fixed bug #30572 (crash when comparing SimpleXML attribute to a boolean).
|
||||
(Andi)
|
||||
- Fixed bug #30566 (attribute namespace URIs are inconsistent when parsing).
|
||||
(Rob)
|
||||
- Fixed bug #30490 (PEAR installation fails). (Antony)
|
||||
- Fixed bug #30475 (curl_getinfo() may crash in some situations). (Ilia)
|
||||
- Fixed bug #30442 (segfault when parsing ?getvariable[][ ). (Tony)
|
||||
- Fixed bug #30388 (rename across filesystems loses ownership and
|
||||
permission info). (Tony)
|
||||
- Fixed bug #30387 (stream_socket_client async connect was broken).
|
||||
(vnegrier at esds dot com, Wez).
|
||||
- Fixed bug #30381 (Strange results with get_class_vars()). (Marcus)
|
||||
- Fixed bug #30375 (cal_info() does not work without a parameter). (Ilia)
|
||||
- Fixed bug #30362 (stream_get_line() not handling end string correctly).
|
||||
(Ilia)
|
||||
- Fixed bug #30359 (SOAP client requests have no port in "Host" field).
|
||||
(Dmitry)
|
||||
- Fixed bug #30356 (str_ireplace() does not work on all strings). (Ilia)
|
||||
- Fixed bug #30344 (Reflection::getModifierNames() returns too long strings).
|
||||
(Marcus)
|
||||
- Fixed bug #30329 (Error Fetching http body, No Content-Length, connection
|
||||
closed or chunked data). (Dmitry)
|
||||
- Fixed bug #30282 (segfault when using unknown/unsupported
|
||||
session.save_handler and/or session.serialize_handler). (Tony)
|
||||
- Fixed bug #30281 (Prevent non-wbmp images from being detected as such).
|
||||
(Ilia)
|
||||
- Fixed bug #30276 (Possible crash in ctype_digit on large numbers). (Ilia)
|
||||
- Fixed bug #30230 (exception handler not working with objects). (Marcus)
|
||||
- Fixed bug #30224 (Sybase date strings are sometimes not null terminated).
|
||||
(Ilia)
|
||||
- Fixed bug #30175 (SOAP results aren't parsed correctly). (Dmitry)
|
||||
- Fixed bug #30147 (OO sqlite_fetch_object did not reset error handler). (Wez)
|
||||
- Fixed bug #30133 (get_current_user() crashes on Windows). (Edin)
|
||||
- Fixed bug #30061 (xml_set_start_namespace_decl_handler not called). (Rob)
|
||||
- Fixed bug #30057 (did not detect IPV6 on FreeBSD 4.1). (Wez)
|
||||
- Fixed bug #30042 (strtotime does not use second param). (Derick)
|
||||
- Fixed bug #30027 (Possible crash inside ftp_get()).
|
||||
(cfield at affinitysolutions dot com)
|
||||
- Fixed bug #29954 (array_reduce segfaults when initial value is array). (Tony)
|
||||
- Fixed bug #29883 (isset gives invalid values on strings). (Tony, Dmitry)
|
||||
- Fixed bug #29801 (Set limit on the size of mmapable data). (Ilia)
|
||||
- Fixed bug #29557 (strtotime error). (Derick)
|
||||
- Fixed bug #29418 (double free when openssl_csr_new fails).
|
||||
(Kamesh Jayachandran).
|
||||
- Fixed bug #29385 (Soapserver always uses std class). (David, Dmitry)
|
||||
- Fixed bug #29211 (SoapClient doesn't request wsdl through proxy). (Rob)
|
||||
- Fixed bug #28817 (Var problem when extending domDocument). (Georg)
|
||||
- Fixed bug #28599 (strtotime fails with zero base time). (Derick)
|
||||
- Fixed bug #28598 (Lost support for MS Symbol fonts). (Pierre)
|
||||
- Fixed bug #28220 (mb_strwidth() returns wrong width values for some hangul
|
||||
characters). (Moriyoshi)
|
||||
- Fixed bug #28228 (NULL decimal separator is not being handled correctly).
|
||||
(Ilia)
|
||||
- Fixed bug #28209 (strtotime("now")). (Derick)
|
||||
- Fixed bug #27798 (private / protected variables not exposed by
|
||||
get_object_vars() inside class). (Marcus)
|
||||
- Fixed bug #27728 (Can't return within a zend_try {} block or the previous
|
||||
bailout state isn't restored. (Andi)
|
||||
- Fixed bug #27183 (Userland stream wrapper segfaults on stream_write).
|
||||
(Christian)
|
||||
|
||||
23 Sep 2004, PHP 5.0.2
|
||||
- Added new boolean (fourth) parameter to array_slice() that turns on the
|
||||
preservation of keys in the returned array. (Derick)
|
||||
- Added the sorting flag SORT_LOCALE_STRING to the sort() functions which makes
|
||||
them sort based on the current locale. (Derick)
|
||||
- Added interface_exists() and make class_exists() only return true for real
|
||||
classes. (Andrey)
|
||||
- Added PHP_EOL constant that contains the OS way of representing newlines.
|
||||
(Paul Hudson, Derick)
|
||||
- Implemented periodic PCRE compiled regexp cache cleanup, to avoid memory
|
||||
exhaustion. (Andrei)
|
||||
- Renamed SoapClient->__call() to SoapClinet->__soapCall(). (Dmitry)
|
||||
- Fixed bug with raw_post_data not getting set (Brian)
|
||||
- Fixed a file-descriptor leak with phpinfo() and other 'special' URLs (Zeev)
|
||||
- Fixed bug #30209 (ReflectionClass::getMethod() lowercases attribute).
|
||||
(Marcus)
|
||||
- Fixed bug #30182 (SOAP module processing WSDL file dumps core). (Dmitry)
|
||||
- Fixed bug #30045 (Cannot pass big integers (> 2147483647) in SOAP requests).
|
||||
(Dmitry)
|
||||
- Fixed bug #29985 (unserialize()/ __PHP_Incomplete_class does not report
|
||||
correctly class name). (Marcus, Tony)
|
||||
- Fixed bug #29945 (simplexml_load_file URL limitation 255 char). (Rob)
|
||||
- Fixed bug #29873 (No defines around pcntl_*priority definitions). (Derick)
|
||||
- Fixed bug #29844 (SOAP doesn't return the result of a valid SOAP request).
|
||||
(Dmitry)
|
||||
- Fixed bug #29842 (soapclient return null value). (Dmitry)
|
||||
- Fixed bug #29839 (incorrect convert (xml:lang to lang)). (Dmitry)
|
||||
- Fixed bug #29830 (SoapServer::setClass() should not export non-public
|
||||
methods). (Dmitry)
|
||||
- Fixed bug #29828 (Interfaces no longer work). (Marcus)
|
||||
- Fixed bug #29821 (Fixed possible crashes in convert_uudecode() on invalid
|
||||
data). (Ilia)
|
||||
- Fixed bug #29808 (array_count_values() breaks with numeric strings). (Ilia)
|
||||
- Fixed bug #29805 (HTTP Authentication Issues). (Uwe Schindler)
|
||||
- Fixed bug #29795 (SegFault with Soap and Amazon's Web Services). (Dmitry)
|
||||
- Fixed bug #29737 (ip2long should return -1 if IP is 255.255.255.255 and FALSE
|
||||
on error). (Tony)
|
||||
- Fixed bug #29711 (Changed ext/xml to default to UTF-8 output). (Rob)
|
||||
- Fixed bug #29678 (opendir() with ftp:// wrapper segfaults if path does not
|
||||
have trailing slash). (Ilia)
|
||||
- Fixed bug #29657 (xml_* functions throw non descriptive error).
|
||||
(Christian, Rob)
|
||||
- Fixed bug #29656 (segfault on result and statement properties). (Georg)
|
||||
- Fixed bug #29566 (foreach/string handling strangeness (crash)). (Dmitry)
|
||||
- Fixed bug #29447 (Reflection API issues). (Marcus)
|
||||
- Fixed bug #29296 (Added sslv2 and sslv3 transports). (Wez)
|
||||
- Fixed bug #29283 (Invalid statement handle in mysqli on execute). (Georg)
|
||||
- Fixed bug #29913 (parse_url() is now binary safe). (Ilia)
|
||||
- Fixed bug #27994 (segfault with Soapserver when WSDL-Cache is enabled).
|
||||
(Dmitry)
|
||||
- Fixed bug #27791 (Apache 2.0 SAPI build against Apache 2 HEAD). (Joe Orton,
|
||||
Derick)
|
||||
- Fixed bug #26737 (private/protected properties not serialized when user
|
||||
declared method __sleep() exists). E_NOTICE thrown when __sleep() returns
|
||||
name of non-existing member. (Andrey, Curt)
|
||||
|
||||
12 Aug 2004, PHP 5.0.1
|
||||
- Changed destructor mechanism so that destructors are called prior to request
|
||||
shutdown. (Marcus)
|
||||
- Rewritten UNIX and Windows install help files. (Documentation Team)
|
||||
- Updated several libraries bundled with the windows release which now
|
||||
includes libxml2-2.6.11, libxslt-1.1.7 and iconv-1.9.1. (Rob, Edin)
|
||||
- Improved and moved ActiveScript SAPI to PECL. (Wez)
|
||||
- Fixed bug #29606 (php_strip_whitespace() prints to stdout rather then
|
||||
returning the value). (Ilia)
|
||||
- Fixed bug #29577 (MYSQLI_CLIENT_FOUND_ROWS undefined) (Georg)
|
||||
- Fixed bug #29573 (Segmentation fault, when exception thrown within
|
||||
PHP function called from XSLT). (Christian)
|
||||
- Fixed bug #29522 (accessing properties without connection) (Georg)
|
||||
- Fixed bug #29505 (get_class_vars() severely broken when used with arrays).
|
||||
(Marcus)
|
||||
- Fixed bug #29490 (.Net object instantiation failed). (Michael Sisolak).
|
||||
- Fixed bug #29474 (win32: usleep() doesn't work). (Wez)
|
||||
- Fixed bug #29449 (win32: feof() hangs on empty tcp stream). (Wez)
|
||||
- Fixed bug #29437 (Possible crash inside array_walk_recursive()). (Ilia)
|
||||
- Fixed bug #29431 (crash when parsing invalid address; invalid address
|
||||
returned by stream_socket_recvfrom(), stream_socket_getname()). (Wez)
|
||||
- Fixed bug #29409 (Segfault in PHP functions called from XSLT). (Rob)
|
||||
- Fixed unloading of dynamically loaded extensions.
|
||||
(Marcus, kameshj at fastmail dot fm)
|
||||
- Fixed bug #29395 (sqlite_escape_string() returns bogus data on empty
|
||||
strings). (Ilia, Tony)
|
||||
- Fixed bug #29392 (com_dotnet crashes when echo'ing an object). (Wez)
|
||||
- Fixed bug #29368 (The destructor is called when an exception is thrown from
|
||||
the constructor). (Marcus)
|
||||
- Fixed bug #29354 (Exception constructor marked as both public and protected).
|
||||
(Marcus)
|
||||
- Fixed bug #29342 (strtotime() does not handle empty date string properly).
|
||||
(Ilia)
|
||||
- Fixed bug #29340 (win32 build produces invalid php_ifx.dll). (Edin)
|
||||
- Fixed bug #29335 (fetch functions now use MYSQLI_BOTH as default) (Georg)
|
||||
- Fixed bug #29291 (get_class_vars() return names with NULLs). (Marcus)
|
||||
- Fixed bug #29264 (gettext extension not working). (Edin)
|
||||
- Fixed bug #29258 (variant_date_from_timestamp() does not honour
|
||||
timezone). (Wez)
|
||||
- Fixed bug #29256 (error when sending large packets on a socket). (Dmitry)
|
||||
- Fixed bug #29236 (memory error when wsdl-cache is enabled). (Dmitry)
|
||||
- Fixed bug #29147 (Compile Error in mnoGoSearch functions). (Sergey, Antony)
|
||||
- Fixed bug #29132 ($_SERVER["PHP_AUTH_USER"] isn't defined). (Stefan)
|
||||
- Fixed bug #29119 (html_entity_decode() misbehaves with UTF-8). (Moriyoshi)
|
||||
- Fixed bug #29109 (SoapFault exception: [WSDL] Out of memory). (Dmitry)
|
||||
- Fixed bug #29061 (soap extension segfaults). (Dmitry)
|
||||
- Fixed bug #28985 (__getTypes() returning nothing on complex WSDL). (Dmitry)
|
||||
- Fixed bug #28969 (Wrong data encoding of special characters). (Dmitry)
|
||||
- Fixed bug #28895 (ReflectionClass::isAbstract always returns false). (Marcus)
|
||||
- Fixed bug #28829 (Thread-unsafety in bcmath elementary values). (Sara)
|
||||
- Fixed bug #28464 (catch() does not catch exceptions by interfaces). (Marcus)
|
||||
- Fixed bug #27669 (PHP 5 didn't support all possibilities for calling static
|
||||
methods dynamically). (Dmitry)
|
||||
- Fixed ReflectionClass::getMethod() and ReflectionClass::getProperty() to
|
||||
raise an ReflectionException instead of returning NULL on failure.
|
||||
(Sebastian)
|
||||
- Fixed convert.* filters to consume remaining buckets_in on flush. (Sara)
|
||||
- Fixed bug in mysqli->client_version. (Georg)
|
||||
|
||||
13 Jul 2004, PHP 5.0.0
|
||||
- Updated PCRE to provide better error handling in certain cases. (Andrei)
|
||||
@@ -10,7 +720,6 @@ PHP NEWS
|
||||
- Fixed bug #29008 (array_combine() does not handle non-numeric/string keys).
|
||||
(Ilia)
|
||||
- Fixed bug #28999 (fixed behaviour of exec() to work as it did in 4.X). (Ilia)
|
||||
- Fixed bug #28895 (ReflectionClass::isAbstract always returns false). (Marcus)
|
||||
- Fixed bug #28868 (Internal filter registry not thread safe). (Sara)
|
||||
- Fixed bug #28851 (call_user_func_array has typo in error message). (Marcus)
|
||||
- Fixed bug #28831 (ArrayObject::offsetGet() does the work of offsetUnset()).
|
||||
@@ -27,7 +736,6 @@ PHP NEWS
|
||||
- Fixed bug #28699 (Reflection api bugs). (Marcus)
|
||||
- Fixed bug #28694 (ReflectionExtension::getFunctions() crashes PHP). (Marcus)
|
||||
- Fixed bug #28512 (Allocate enough space to store MSSQL data). (Frank)
|
||||
- Fixed bug #28325 (Circular references not properly serialised). (Moriyoshi)
|
||||
- Fixed strip_tags() to correctly handle '\0' characters. (Stefan)
|
||||
|
||||
7 Jun 2004, PHP 5 Release Candidate 3
|
||||
@@ -112,7 +820,6 @@ PHP NEWS
|
||||
- Fixed bug #27619 (filters not applied to pre-buffered stream data). (Sara)
|
||||
- Fixed bug #27519 (Reflection_Function constructor crashes with non-existant
|
||||
function's name). (Marcus)
|
||||
- Fixed bug #27469 (serialize() objects of incomplete class). (Dmitry)
|
||||
- Fixed bug #27457 (handling of numeric indexes in strtr()). (Dmitry)
|
||||
- Fixed bug #27397 (debug_backtrace() not showing function arguments). (Zeev)
|
||||
- Fixed bug #27283 (The last catch statement was sometimes skipped). (Andi)
|
||||
|
||||
+36
-28
@@ -29,7 +29,22 @@ Having said that, here are the organizational rules:
|
||||
5. If you don't know how to do something, ask first!
|
||||
|
||||
6. Test your changes before committing them. We mean it. Really.
|
||||
|
||||
To do so use "make test".
|
||||
|
||||
7. For development use the --enable-maintainer-zts switch to ensure your
|
||||
code handles TSRM correctly and doesn't break for thos who need that.
|
||||
|
||||
Currently we have the following branches in use:
|
||||
HEAD Will become PHP 6.0. This CVS branch is for active development.
|
||||
PHP_5_2 Is used to release the PHP 5.2.x series. Only minor feature
|
||||
enhancements may go in here, but please keep that as infrequent as
|
||||
possible.
|
||||
PHP_5_1 Is used to release the PHP 5.1.x series. Only bugfixes are permitted
|
||||
on this branch (Consult the releasemaster prior to commit).
|
||||
PHP_5_0 This branch is closed.
|
||||
PHP_4_4 Is used to release the PHP 4.4.x series. Only bugfixes are permitted
|
||||
on this branch (Consult the releasemaster prior to commit).
|
||||
PHP_4_3 This branch is closed.
|
||||
|
||||
The next few rules are more of a technical nature.
|
||||
|
||||
@@ -37,8 +52,11 @@ The next few rules are more of a technical nature.
|
||||
messages every day. Woe be to those who attempt to mess with it.
|
||||
|
||||
2. All news updates intended for public viewing, such as new features,
|
||||
bug fixes, improvements, etc., should go into the NEWS file. Also see
|
||||
the note below about automatically updating NEWS in your commit message.
|
||||
bug fixes, improvements, etc., should go into the NEWS file.
|
||||
|
||||
NB! Lines, starting with @ will go automagically into NEWS file, but
|
||||
this is NOT recommended, though. Please, add news entries directly to
|
||||
NEWS file and don't forget to keep them adjusted and sorted.
|
||||
|
||||
3. Do not commit multiple file and dump all messages in one commit. If you
|
||||
modified several unrelated files, commit each group separately and
|
||||
@@ -58,37 +76,29 @@ The next few rules are more of a technical nature.
|
||||
|
||||
The format of the commit messages is pretty simple.
|
||||
|
||||
Use a - to start a new item in your commit message.
|
||||
|
||||
If a line begins with #, it is taken to be a comment and will not appear
|
||||
in the ChangeLog. If the line begins with @, it will be redirected to the
|
||||
NEWS file. Everything else goes into the ChangeLog.
|
||||
in the ChangeLog. Everything else goes into the ChangeLog.
|
||||
|
||||
It is important to note that if your comment or news logline spans multiple
|
||||
lines, you have to put # or @ at the beginning of _every_ such line. Every
|
||||
entry in NEWS has to have a name after it, so if you did it with someone's
|
||||
help, put both your names there. Your name WILL NOT be automatically put
|
||||
at the end of the NEWS entry - so, please provide it yourself.
|
||||
lines, you have to put # at the beginning of _every_ such line.
|
||||
|
||||
Example. Say you modified two files, datetime.c and string.c. In datetime.c
|
||||
you added a new format option for date() function, and in string.c you fixed
|
||||
a memory leak in php_trim(). Don't commit both of these at once. Commit them
|
||||
Example. Say you modified two files, datetime.c and string.c. In datetime.c you
|
||||
added a new format option for the date() function, and in string.c you fixed a
|
||||
memory leak in php_trim(). Don't commit both of these at once. Commit them
|
||||
separately and try to make sure your commit messages look something like the
|
||||
following.
|
||||
|
||||
For datetime.c:
|
||||
|
||||
(PHP date) Added new 'K' format modifier for printing out number of
|
||||
days until New Year's Eve.
|
||||
@- Added new 'K' format modifier that will output the number of days
|
||||
@ until New Year's Eve. (Bob)
|
||||
- Added new 'K' format modifier to date() for printing out number of days until
|
||||
New Year's Eve.
|
||||
|
||||
For string.c:
|
||||
(php_trim) Fixed a memory leak resulting from improper use of zval_dtor().
|
||||
# Man, that thing was leaking all over the place!
|
||||
@- Fixed memory leak in trim(). (Bob)
|
||||
- Fixed a memory leak in php_trim() resulting from improper use of zval_dtor().
|
||||
#- Man, that thing was leaking all over the place!
|
||||
|
||||
The lines above marked with @ will go into NEWS file automagically, and the
|
||||
# lines will be omitted from the ChangeLog. Alternatively, you might want
|
||||
to modify NEWS file directly and not use the @ lines.
|
||||
The # lines will be omitted from the ChangeLog automagically.
|
||||
|
||||
If you fix some bugs, you should note the bug ID numbers in your
|
||||
commit message. Bug ID should be prefixed by "#" for easier access to
|
||||
@@ -96,13 +106,11 @@ bug report when developers are browsing CVS via. LXR or Bonsai.
|
||||
|
||||
Example:
|
||||
|
||||
Fixed pgsql notice handler double free crash bug. Bug #14016
|
||||
@ Fixed pgsql notice handler double free crash bug. Bug #14016
|
||||
Fixed bug #14016 (pgsql notice handler double free crash bug.)
|
||||
|
||||
If you don't see your messages in ChangeLog and NEWS right away, don't worry!
|
||||
If you don't see your messages in ChangeLog right away, don't worry!
|
||||
These files are updated once a day, so your stuff will not show up until
|
||||
somewhat later. Don't go adding stuff to NEWS by hand if you already put @
|
||||
lines in the commit message.
|
||||
somewhat later.
|
||||
|
||||
You can use LXR (http://lxr.php.net/) and Bonsai (http://bonsai.php.net/)
|
||||
to look at PHP CVS repository in various ways.
|
||||
|
||||
@@ -77,20 +77,24 @@
|
||||
|
||||
9. get_class() starting PHP 5 returns the name of the class as it was
|
||||
declared which may lead to problems in older scripts that rely on
|
||||
the previous behaviour - the class name is lowercased.
|
||||
the previous behaviour - the class name is lowercased. Expect the
|
||||
same behaviour from get_parent_class() when applicable.
|
||||
Example :
|
||||
<?php
|
||||
class FooBar {
|
||||
}
|
||||
class ExtFooBar extends FooBar{}
|
||||
$a = new FooBar();
|
||||
var_dump(get_class($a));
|
||||
var_dump(get_class($a), get_parent_class($a));
|
||||
?>
|
||||
|
||||
Output (PHP 4):
|
||||
string(6) "foobar"
|
||||
string(9) "extfoobar"
|
||||
|
||||
Output (PHP 5):
|
||||
string(6) "FooBar"
|
||||
string(9) "ExtFooBar"
|
||||
----------------------------------------------------------------------
|
||||
Example code that will break :
|
||||
//....
|
||||
@@ -101,7 +105,51 @@
|
||||
//...
|
||||
}
|
||||
//...
|
||||
Possible solution is to search for get_class() in all your scripts and
|
||||
use strtolower().
|
||||
Possible solution is to search for get_class() and get_parent_class() in
|
||||
all your scripts and use strtolower().
|
||||
|
||||
10. get_class_methods() returns the names of the methods of a class as they
|
||||
declared. In PHP4 the names are all lowercased.
|
||||
Example code :
|
||||
<?php
|
||||
class Foo{
|
||||
function doFoo(){}
|
||||
function hasFoo(){}
|
||||
}
|
||||
var_dump(get_class_methods("Foo"));
|
||||
?>
|
||||
Output (PHP4):
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(5) "dofoo"
|
||||
[1]=>
|
||||
string(6) "hasfoo"
|
||||
}
|
||||
Output (PHP5):
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(5) "doFoo"
|
||||
[1]=>
|
||||
string(6) "hasFoo"
|
||||
}
|
||||
|
||||
11. Assignment $this is impossible. Starting PHP 5.0.0 $this has special
|
||||
meaning in class methods and is recognized by the PHP parser. The latter
|
||||
will generate a parse error when assignment to $this is found
|
||||
Example code :
|
||||
<?php
|
||||
class Foo {
|
||||
function assignNew($obj) {
|
||||
$this = $obj;
|
||||
}
|
||||
}
|
||||
$a = new Foo();
|
||||
$b = new Foo();
|
||||
$a->assignNew($b);
|
||||
echo "I was executed\n";
|
||||
?>
|
||||
Output (PHP 4):
|
||||
I was executed
|
||||
Output (PHP 5):
|
||||
PHP Fatal error: Cannot re-assign $this in /tmp/this_ex.php on line 4
|
||||
|
||||
|
||||
+2
-42
@@ -296,11 +296,11 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_
|
||||
}
|
||||
}
|
||||
|
||||
tsrm_mutex_unlock(tsmm_mutex);
|
||||
|
||||
if (tsrm_new_thread_end_handler) {
|
||||
tsrm_new_thread_end_handler(thread_id, &((*thread_resources_ptr)->storage));
|
||||
}
|
||||
|
||||
tsrm_mutex_unlock(tsmm_mutex);
|
||||
}
|
||||
|
||||
|
||||
@@ -481,13 +481,6 @@ TSRM_API THREAD_T tsrm_thread_id(void)
|
||||
{
|
||||
#ifdef TSRM_WIN32
|
||||
return GetCurrentThreadId();
|
||||
#elif defined(NETWARE)
|
||||
/* There seems to be some problem with the LibC call: NXThreadGetId().
|
||||
* Due to this, the PHPMyAdmin application is abending in PHP calls.
|
||||
* Used the call, kCurrentThread instead and it works fine.
|
||||
*/
|
||||
/* return NXThreadGetId(); */
|
||||
return kCurrentThread();
|
||||
#elif defined(GNUPTH)
|
||||
return pth_self();
|
||||
#elif defined(PTHREADS)
|
||||
@@ -508,24 +501,9 @@ TSRM_API THREAD_T tsrm_thread_id(void)
|
||||
TSRM_API MUTEX_T tsrm_mutex_alloc(void)
|
||||
{
|
||||
MUTEX_T mutexp;
|
||||
#ifdef NETWARE
|
||||
#ifndef USE_MPK
|
||||
/* To use the Recursive Mutex Locking of LibC */
|
||||
long flags = NX_MUTEX_RECURSIVE;
|
||||
NXHierarchy_t order = 0;
|
||||
NX_LOCK_INFO_ALLOC (lockInfo, "PHP-TSRM", 0);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef TSRM_WIN32
|
||||
mutexp = malloc(sizeof(CRITICAL_SECTION));
|
||||
InitializeCriticalSection(mutexp);
|
||||
#elif defined(NETWARE)
|
||||
#ifdef USE_MPK
|
||||
mutexp = kMutexAlloc((BYTE*)"PHP-TSRM");
|
||||
#else
|
||||
mutexp = NXMutexAlloc(flags, order, &lockInfo);
|
||||
#endif
|
||||
#elif defined(GNUPTH)
|
||||
mutexp = (MUTEX_T) malloc(sizeof(*mutexp));
|
||||
pth_mutex_init(mutexp);
|
||||
@@ -557,12 +535,6 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
|
||||
#ifdef TSRM_WIN32
|
||||
DeleteCriticalSection(mutexp);
|
||||
free(mutexp);
|
||||
#elif defined(NETWARE)
|
||||
#ifdef USE_MPK
|
||||
kMutexFree(mutexp);
|
||||
#else
|
||||
NXMutexFree(mutexp);
|
||||
#endif
|
||||
#elif defined(GNUPTH)
|
||||
free(mutexp);
|
||||
#elif defined(PTHREADS)
|
||||
@@ -592,12 +564,6 @@ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
|
||||
#ifdef TSRM_WIN32
|
||||
EnterCriticalSection(mutexp);
|
||||
return 1;
|
||||
#elif defined(NETWARE)
|
||||
#ifdef USE_MPK
|
||||
return kMutexLock(mutexp);
|
||||
#else
|
||||
return NXLock(mutexp);
|
||||
#endif
|
||||
#elif defined(GNUPTH)
|
||||
return pth_mutex_acquire(mutexp, 0, NULL);
|
||||
#elif defined(PTHREADS)
|
||||
@@ -623,12 +589,6 @@ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
|
||||
#ifdef TSRM_WIN32
|
||||
LeaveCriticalSection(mutexp);
|
||||
return 1;
|
||||
#elif defined(NETWARE)
|
||||
#ifdef USE_MPK
|
||||
return kMutexUnlock(mutexp);
|
||||
#else
|
||||
return NXUnlock(mutexp);
|
||||
#endif
|
||||
#elif defined(GNUPTH)
|
||||
return pth_mutex_release(mutexp);
|
||||
#elif defined(PTHREADS)
|
||||
|
||||
+2
-16
@@ -14,8 +14,8 @@
|
||||
#define TSRM_H
|
||||
|
||||
/* #ifndef WIN32 */
|
||||
#if !defined(WIN32) && !defined(NETWARE)
|
||||
# include "tsrm_config.h"
|
||||
#ifndef WIN32
|
||||
# include <tsrm_config.h>
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
@@ -42,13 +42,6 @@
|
||||
# endif
|
||||
# include <windows.h>
|
||||
# include <shellapi.h>
|
||||
#elif defined(NETWARE)
|
||||
# include <nks/thread.h>
|
||||
#ifdef USE_MPK
|
||||
# include <mpklib4php.h>
|
||||
#else
|
||||
# include <nks/synch.h>
|
||||
#endif
|
||||
#elif defined(GNUPTH)
|
||||
# include <pth.h>
|
||||
#elif defined(PTHREADS)
|
||||
@@ -66,13 +59,6 @@ typedef int ts_rsrc_id;
|
||||
#ifdef TSRM_WIN32
|
||||
# define THREAD_T DWORD
|
||||
# define MUTEX_T CRITICAL_SECTION *
|
||||
#elif defined(NETWARE)
|
||||
# define THREAD_T NXThreadId_t
|
||||
#ifdef USE_MPK
|
||||
# define MUTEX_T MUTEX
|
||||
#else
|
||||
# define MUTEX_T NXMutex_t *
|
||||
#endif
|
||||
#elif defined(GNUPTH)
|
||||
# define THREAD_T pth_t
|
||||
# define MUTEX_T pth_mutex_t *
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
|
||||
AC_DEFUN(AM_SET_LIBTOOL_VARIABLE,[
|
||||
AC_DEFUN([AM_SET_LIBTOOL_VARIABLE],[
|
||||
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
|
||||
])
|
||||
|
||||
+13
-5
@@ -30,7 +30,7 @@ dnl PTHREADS_FLAGS
|
||||
dnl
|
||||
dnl Set some magic defines to achieve POSIX threads conformance
|
||||
dnl
|
||||
AC_DEFUN(PTHREADS_FLAGS,[
|
||||
AC_DEFUN([PTHREADS_FLAGS],[
|
||||
if test -z "$host_alias" && test -n "$host"; then
|
||||
host_alias=$host
|
||||
fi
|
||||
@@ -65,7 +65,7 @@ dnl PTHREADS_CHECK_COMPILE
|
||||
dnl
|
||||
dnl Check whether the current setup can use POSIX threads calls
|
||||
dnl
|
||||
AC_DEFUN(PTHREADS_CHECK_COMPILE, [
|
||||
AC_DEFUN([PTHREADS_CHECK_COMPILE], [
|
||||
AC_TRY_RUN( [
|
||||
#include <pthread.h>
|
||||
#include <stddef.h>
|
||||
@@ -84,7 +84,15 @@ int main() {
|
||||
pthreads_working=yes
|
||||
], [
|
||||
pthreads_working=no
|
||||
], pthreads_working=no ) ] )dnl
|
||||
], [
|
||||
dnl For cross compiling running this test is of no use. NetWare supports pthreads
|
||||
pthreads_working=no
|
||||
case $host_alias in
|
||||
*netware*)
|
||||
pthreads_working=yes
|
||||
esac
|
||||
]
|
||||
) ] )dnl
|
||||
dnl
|
||||
dnl PTHREADS_CHECK()
|
||||
dnl
|
||||
@@ -100,7 +108,7 @@ dnl -pthreads gcc (Solaris)
|
||||
dnl -qthreaded AIX cc V5
|
||||
dnl -threads gcc (HP-UX)
|
||||
dnl
|
||||
AC_DEFUN(PTHREADS_CHECK,[
|
||||
AC_DEFUN([PTHREADS_CHECK],[
|
||||
|
||||
if test "$beos_threads" = "1"; then
|
||||
pthreads_working="yes"
|
||||
@@ -154,7 +162,7 @@ fi
|
||||
])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(PTHREADS_ASSIGN_VARS,[
|
||||
AC_DEFUN([PTHREADS_ASSIGN_VARS],[
|
||||
if test -n "$ac_cv_pthreads_lib"; then
|
||||
LIBS="$LIBS -l$ac_cv_pthreads_lib"
|
||||
fi
|
||||
|
||||
+6
-6
@@ -1,6 +1,6 @@
|
||||
|
||||
dnl TSRM_CHECK_GCC_ARG(ARG, ACTION-IF-FOUND, ACTION-IF-NOT_FOUND)
|
||||
AC_DEFUN(TSRM_CHECK_GCC_ARG,[
|
||||
AC_DEFUN([TSRM_CHECK_GCC_ARG],[
|
||||
gcc_arg_name=[ac_cv_gcc_arg]translit($1,A-Z-,a-z_)
|
||||
AC_CACHE_CHECK([whether $CC supports $1], [ac_cv_gcc_arg]translit($1,A-Z-,a-z_), [
|
||||
echo 'void somefunc() { };' > conftest.c
|
||||
@@ -21,7 +21,7 @@ AC_DEFUN(TSRM_CHECK_GCC_ARG,[
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN(TSRM_BASIC_CHECKS,[
|
||||
AC_DEFUN([TSRM_BASIC_CHECKS],[
|
||||
|
||||
AC_REQUIRE([AC_PROG_CC])dnl
|
||||
dnl AC_REQUIRE([AM_PROG_CC_STDC])dnl
|
||||
@@ -33,7 +33,7 @@ AC_CHECK_HEADERS(stdarg.h)
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN(TSRM_CHECK_PTH,[
|
||||
AC_DEFUN([TSRM_CHECK_PTH],[
|
||||
|
||||
AC_MSG_CHECKING(for GNU Pth)
|
||||
PTH_PREFIX="`$1 --prefix`"
|
||||
@@ -50,7 +50,7 @@ AC_MSG_RESULT(yes - installed in $PTH_PREFIX)
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN(TSRM_CHECK_ST,[
|
||||
AC_DEFUN([TSRM_CHECK_ST],[
|
||||
if test -r "$1/include/st.h"; then
|
||||
CPPFLAGS="$CPPFLAGS -I$1/include"
|
||||
LDFLAGS="$LDFLAGS -L$1/lib"
|
||||
@@ -70,7 +70,7 @@ AC_DEFUN(TSRM_CHECK_ST,[
|
||||
sinclude(threads.m4)
|
||||
sinclude(TSRM/threads.m4)
|
||||
|
||||
AC_DEFUN(TSRM_CHECK_PTHREADS,[
|
||||
AC_DEFUN([TSRM_CHECK_PTHREADS],[
|
||||
|
||||
PTHREADS_CHECK
|
||||
|
||||
@@ -89,7 +89,7 @@ fi
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN(TSRM_THREADS_CHECKS,[
|
||||
AC_DEFUN([TSRM_THREADS_CHECKS],[
|
||||
|
||||
dnl For the thread implementations, we always use --with-*
|
||||
dnl to maintain consistency
|
||||
|
||||
@@ -7,10 +7,8 @@
|
||||
|
||||
#ifdef TSRM_WIN32
|
||||
# include "tsrm_config.w32.h"
|
||||
#elif defined(NETWARE)
|
||||
# include "tsrm_config.nw.h"
|
||||
#else
|
||||
# include "tsrm_config.h"
|
||||
# include <tsrm_config.h>
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
|
||||
|
||||
+79
-43
@@ -42,8 +42,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef NETWARE
|
||||
/*#include "pipe.h"*/
|
||||
#include "tsrm_nw.h"
|
||||
#include <fsio.h>
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_REALPATH
|
||||
@@ -142,15 +141,9 @@ static int php_check_dots(const char *element, int n)
|
||||
|
||||
static int php_is_dir_ok(const cwd_state *state)
|
||||
{
|
||||
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
|
||||
struct stat buf;
|
||||
|
||||
if (stat(state->cwd, &buf) == 0 && S_ISDIR(buf.st_mode))
|
||||
#else
|
||||
struct stat_libc buf;
|
||||
|
||||
if (stat(state->cwd, (struct stat*)(&buf)) == 0 && S_ISDIR(buf.st_mode))
|
||||
#endif
|
||||
return (0);
|
||||
|
||||
return (1);
|
||||
@@ -158,15 +151,9 @@ static int php_is_dir_ok(const cwd_state *state)
|
||||
|
||||
static int php_is_file_ok(const cwd_state *state)
|
||||
{
|
||||
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
|
||||
struct stat buf;
|
||||
|
||||
if (stat(state->cwd, &buf) == 0 && S_ISREG(buf.st_mode))
|
||||
#else
|
||||
struct stat_libc buf;
|
||||
|
||||
if (stat(state->cwd, (struct stat*)(&buf)) == 0 && S_ISREG(buf.st_mode))
|
||||
#endif
|
||||
return (0);
|
||||
|
||||
return (1);
|
||||
@@ -202,7 +189,20 @@ CWD_API void virtual_cwd_startup(void)
|
||||
char cwd[MAXPATHLEN];
|
||||
char *result;
|
||||
|
||||
#ifdef NETWARE
|
||||
result = getcwdpath(cwd, NULL, 1);
|
||||
if(result)
|
||||
{
|
||||
char *c=cwd;
|
||||
while(c = strchr(c, '\\'))
|
||||
{
|
||||
*c='/';
|
||||
++c;
|
||||
}
|
||||
}
|
||||
#else
|
||||
result = getcwd(cwd, sizeof(cwd));
|
||||
#endif
|
||||
if (!result) {
|
||||
cwd[0] = '\0';
|
||||
}
|
||||
@@ -308,15 +308,22 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
|
||||
if (path_length == 0)
|
||||
return (0);
|
||||
if (path_length >= MAXPATHLEN)
|
||||
return (1);
|
||||
|
||||
#if !defined(TSRM_WIN32) && !defined(NETWARE)
|
||||
/* cwd_length can be 0 when getcwd() fails.
|
||||
* This can happen under solaris when a dir does not have read permissions
|
||||
* but *does* have execute permissions */
|
||||
if (IS_ABSOLUTE_PATH(path, path_length) || (state->cwd_length < 1)) {
|
||||
if (use_realpath && realpath(path, resolved_path)) {
|
||||
path = resolved_path;
|
||||
path_length = strlen(path);
|
||||
if (use_realpath) {
|
||||
if (realpath(path, resolved_path)) {
|
||||
path = resolved_path;
|
||||
path_length = strlen(path);
|
||||
} else {
|
||||
/* disable for now
|
||||
return 1; */
|
||||
}
|
||||
}
|
||||
} else { /* Concat current directory with relative path and then run realpath() on it */
|
||||
char *tmp;
|
||||
@@ -332,9 +339,19 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
memcpy(ptr, path, path_length);
|
||||
ptr += path_length;
|
||||
*ptr = '\0';
|
||||
if (use_realpath && realpath(tmp, resolved_path)) {
|
||||
path = resolved_path;
|
||||
path_length = strlen(path);
|
||||
if (strlen(tmp) >= MAXPATHLEN) {
|
||||
free(tmp);
|
||||
return 1;
|
||||
}
|
||||
if (use_realpath) {
|
||||
if (realpath(tmp, resolved_path)) {
|
||||
path = resolved_path;
|
||||
path_length = strlen(path);
|
||||
} else {
|
||||
/* disable for now
|
||||
free(tmp);
|
||||
return 1; */
|
||||
}
|
||||
}
|
||||
free(tmp);
|
||||
}
|
||||
@@ -428,8 +445,19 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
state->cwd[state->cwd_length++] = DEFAULT_SLASH;
|
||||
}
|
||||
#elif defined(NETWARE)
|
||||
/* If the token is a volume name, it will have colon at the end -- so, no slash before it */
|
||||
if (ptr[ptr_length-1] != ':') {
|
||||
/*
|
||||
Below code keeps appending to state->cwd a File system seperator
|
||||
cases where this appending should not happen is given below,
|
||||
a) sys: should just be left as it is
|
||||
b) sys:system should just be left as it is,
|
||||
Colon is allowed only in the first token as volume names alone can have the : in their names.
|
||||
Files and Directories cannot have : in their names
|
||||
So the check goes like this,
|
||||
For second token and above simply append the DEFAULT_SLASH to the state->cwd.
|
||||
For first token check for the existence of :
|
||||
if it exists don't append the DEFAULT_SLASH to the state->cwd.
|
||||
*/
|
||||
if(((state->cwd_length == 0) && (strchr(ptr, ':') == NULL)) || (state->cwd_length > 0)) {
|
||||
state->cwd[state->cwd_length++] = DEFAULT_SLASH;
|
||||
}
|
||||
#else
|
||||
@@ -699,7 +727,6 @@ CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC)
|
||||
return retval;
|
||||
}
|
||||
|
||||
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
|
||||
CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC)
|
||||
{
|
||||
cwd_state new_state;
|
||||
@@ -713,23 +740,8 @@ CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC)
|
||||
CWD_STATE_FREE(&new_state);
|
||||
return retval;
|
||||
}
|
||||
#else
|
||||
CWD_API int virtual_stat(const char *path, struct stat_libc *buf TSRMLS_DC)
|
||||
{
|
||||
cwd_state new_state;
|
||||
int retval;
|
||||
|
||||
CWD_STATE_COPY(&new_state, &CWDG(cwd));
|
||||
virtual_file_ex(&new_state, path, NULL, 1);
|
||||
|
||||
retval = stat(new_state.cwd, (struct stat*)buf);
|
||||
|
||||
CWD_STATE_FREE(&new_state);
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(TSRM_WIN32) && !defined(NETWARE)
|
||||
#ifndef TSRM_WIN32
|
||||
CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC)
|
||||
{
|
||||
cwd_state new_state;
|
||||
@@ -851,13 +863,24 @@ CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
|
||||
CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
|
||||
{
|
||||
int command_length;
|
||||
int dir_length, extra = 0;
|
||||
char *command_line;
|
||||
char *ptr;
|
||||
char *ptr, *dir;
|
||||
FILE *retval;
|
||||
|
||||
command_length = strlen(command);
|
||||
|
||||
ptr = command_line = (char *) malloc(command_length + sizeof("cd ; ") + CWDG(cwd).cwd_length+1);
|
||||
dir_length = CWDG(cwd).cwd_length;
|
||||
dir = CWDG(cwd).cwd;
|
||||
while (dir_length > 0) {
|
||||
if (*dir == '\'') extra+=3;
|
||||
dir++;
|
||||
dir_length--;
|
||||
}
|
||||
dir_length = CWDG(cwd).cwd_length;
|
||||
dir = CWDG(cwd).cwd;
|
||||
|
||||
ptr = command_line = (char *) malloc(command_length + sizeof("cd '' ; ") + dir_length +extra+1+1);
|
||||
if (!command_line) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -867,8 +890,21 @@ CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
|
||||
if (CWDG(cwd).cwd_length == 0) {
|
||||
*ptr++ = DEFAULT_SLASH;
|
||||
} else {
|
||||
memcpy(ptr, CWDG(cwd).cwd, CWDG(cwd).cwd_length);
|
||||
ptr += CWDG(cwd).cwd_length;
|
||||
*ptr++ = '\'';
|
||||
while (dir_length > 0) {
|
||||
switch (*dir) {
|
||||
case '\'':
|
||||
*ptr++ = '\'';
|
||||
*ptr++ = '\\';
|
||||
*ptr++ = '\'';
|
||||
/* fall-through */
|
||||
default:
|
||||
*ptr++ = *dir;
|
||||
}
|
||||
dir++;
|
||||
dir_length--;
|
||||
}
|
||||
*ptr++ = '\'';
|
||||
}
|
||||
|
||||
*ptr++ = ' ';
|
||||
|
||||
@@ -74,10 +74,8 @@ typedef unsigned short mode_t;
|
||||
#define DEFAULT_DIR_SEPARATOR ';'
|
||||
#define IS_SLASH(c) ((c) == '/' || (c) == '\\')
|
||||
#define IS_SLASH_P(c) IS_SLASH(*(c))
|
||||
#define COPY_WHEN_ABSOLUTE(path) \
|
||||
(strchr(path, ':') - path + 1) /* Take the volume name which ends with a colon */
|
||||
#define IS_ABSOLUTE_PATH(path, len) \
|
||||
(strchr(path, ':') != NULL) /* Colon indicates volume name */
|
||||
((strchr(path, ':') != NULL) || ((len >= 1) && ((path[0] == '/') || (path[0] == '\\'))))
|
||||
|
||||
#else
|
||||
#ifdef HAVE_DIRENT_H
|
||||
@@ -141,11 +139,7 @@ CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC);
|
||||
CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...);
|
||||
CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC);
|
||||
CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC);
|
||||
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
|
||||
CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC);
|
||||
#else
|
||||
CWD_API int virtual_stat(const char *path, struct stat_libc *buf TSRMLS_DC);
|
||||
#endif
|
||||
#if !defined(TSRM_WIN32) && !defined(NETWARE)
|
||||
CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC);
|
||||
#endif
|
||||
@@ -229,7 +223,7 @@ typedef struct _virtual_cwd_globals {
|
||||
#define VCWD_REALPATH(path, real_path) virtual_realpath(path, real_path TSRMLS_CC)
|
||||
#define VCWD_RENAME(oldname, newname) virtual_rename(oldname, newname TSRMLS_CC)
|
||||
#define VCWD_STAT(path, buff) virtual_stat(path, buff TSRMLS_CC)
|
||||
#if !defined(TSRM_WIN32) && !defined(NETWARE)
|
||||
#ifndef TSRM_WIN32
|
||||
#define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
|
||||
#endif
|
||||
#define VCWD_UNLINK(path) virtual_unlink(path TSRMLS_CC)
|
||||
|
||||
+2
-2
@@ -6446,13 +6446,13 @@
|
||||
2003-02-08 Ilia Alshanetsky <ilia@prohost.org>
|
||||
|
||||
* zend_builtin_functions.c:
|
||||
The string.h is already avaliable through zend.h, so the manual inclusion
|
||||
The string.h is already available through zend.h, so the manual inclusion
|
||||
is not necessary.
|
||||
|
||||
2003-02-07 Ilia Alshanetsky <ilia@prohost.org>
|
||||
|
||||
* zend_builtin_functions.c:
|
||||
Added a check to ensure that string.h is avaliable before trying to use it.
|
||||
Added a check to ensure that string.h is available before trying to use it.
|
||||
|
||||
Thanks Andi.
|
||||
|
||||
|
||||
+2
-1
@@ -16,7 +16,8 @@ libZend_la_SOURCES=\
|
||||
zend_ini.c zend_qsort.c zend_objects.c zend_object_handlers.c \
|
||||
zend_objects_API.c zend_ts_hash.c zend_stream.c zend_mm.c \
|
||||
zend_default_classes.c zend_reflection_api.c \
|
||||
zend_iterators.c zend_interfaces.c zend_exceptions.c
|
||||
zend_iterators.c zend_interfaces.c zend_exceptions.c \
|
||||
zend_strtod.c zend_multibyte.c
|
||||
|
||||
libZend_la_LDFLAGS =
|
||||
libZend_la_LIBADD = @ZEND_EXTRA_LIBS@
|
||||
|
||||
+42
-1
@@ -545,7 +545,7 @@ Changes in the Zend Engine 2.0
|
||||
|
||||
<?php
|
||||
class Exception {
|
||||
function __construct(string $message=NULL, int $code=0) {
|
||||
function __construct(/*string*/ $message=NULL, /*int*/ $code=0) {
|
||||
if (func_num_args()) {
|
||||
$this->message = $message;
|
||||
}
|
||||
@@ -890,6 +890,47 @@ Changes in the Zend Engine 2.0
|
||||
the use of all abstract methods declared in the interfaces Iterator
|
||||
and IteratorAggregate respectively.
|
||||
|
||||
* Array overloading
|
||||
|
||||
Objects can be used with Array notation when they implement the
|
||||
interface ArrayAccess. You cannot use such objects in standard
|
||||
array functions, however you have full control over the array
|
||||
notation. This allows lazy initialization or read only array.
|
||||
|
||||
Note that setting [] results in a call to offsetSet() with
|
||||
index being NULL. That means that as with standard arrays you
|
||||
cannot store NULL keys.
|
||||
|
||||
Example:
|
||||
|
||||
<?php
|
||||
class ArrayClass implements ArrayAccess {
|
||||
public $a = array();
|
||||
|
||||
function offsetExists($index) {
|
||||
return array_key_exists($index, $this->a);
|
||||
}
|
||||
function offsetGet($index) {
|
||||
return $this->a[$index];
|
||||
}
|
||||
function offsetSet($index, $newval) {
|
||||
return $this->a[$index] = $newval;
|
||||
}
|
||||
function offsetUnset($index) {
|
||||
unset($this->a[$index]);
|
||||
}
|
||||
}
|
||||
|
||||
$obj = new ArrayClass;
|
||||
|
||||
$obj[0] = 'bla'; // calls offsetSet(0,'bla')
|
||||
$obj[] = 42; // calls offsetSet(NULL, 42)
|
||||
$x = $obj[0]; // calls offsetGet(0)
|
||||
$b = isset($obj[0]); // calls offsetExists(0)
|
||||
unset($obj[0]); // calls offsetUnset(0)
|
||||
?>
|
||||
|
||||
|
||||
* __METHOD__
|
||||
|
||||
The pseudo constant __METHOD__ shows the current class and method
|
||||
|
||||
+27
-19
@@ -7,20 +7,20 @@
|
||||
CFG=Zend - Win32 Release_inline
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "Zend.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "Zend.mak" CFG="Zend - Win32 Release_inline"
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE "Zend - Win32 Release" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE "Zend - Win32 Debug" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE "Zend - Win32 Release_inline" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
@@ -95,7 +95,7 @@ LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
@@ -135,10 +135,6 @@ SOURCE=.\zend_default_classes.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_interfaces.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_dynamic_array.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -179,6 +175,10 @@ SOURCE=.\zend_ini_scanner.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_interfaces.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=".\zend_language_parser.c"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -243,6 +243,10 @@ SOURCE=.\zend_stream.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_strtod.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_ts_hash.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -291,10 +295,6 @@ SOURCE=.\zend_default_classes.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_interfaces.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_dynamic_array.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -351,6 +351,10 @@ SOURCE=.\zend_ini_scanner.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_interfaces.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_istdiostream.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -415,6 +419,10 @@ SOURCE=.\zend_stream.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_strtod.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_ts_hash.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -449,7 +457,7 @@ BuildCmds= \
|
||||
|
||||
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -504,7 +512,7 @@ BuildCmds= \
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# End Group
|
||||
@@ -533,7 +541,7 @@ InputPath=.\zend_ini_scanner.l
|
||||
|
||||
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -570,7 +578,7 @@ InputPath=".\zend_language_scanner.l"
|
||||
|
||||
# End Custom Build
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# End Group
|
||||
|
||||
+56
-7
@@ -4,7 +4,7 @@ dnl
|
||||
dnl This file contains Zend specific autoconf functions.
|
||||
dnl
|
||||
|
||||
AC_DEFUN(LIBZEND_BISON_CHECK,[
|
||||
AC_DEFUN([LIBZEND_BISON_CHECK],[
|
||||
|
||||
if test "$YACC" != "bison -y"; then
|
||||
AC_MSG_WARN(You will need bison if you want to regenerate the Zend parser.)
|
||||
@@ -19,7 +19,29 @@ fi
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN(LIBZEND_BASIC_CHECKS,[
|
||||
AC_DEFUN([LIBZEND_CHECK_INT_TYPE],[
|
||||
AC_MSG_CHECKING(for $1)
|
||||
AC_TRY_COMPILE([
|
||||
#if HAVE_SYS_TYPES_H
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
#if HAVE_INTTYPES_H
|
||||
#include <inttypes.h>
|
||||
#elif HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#endif],
|
||||
[if (($1 *) 0)
|
||||
return 0;
|
||||
if (sizeof ($1))
|
||||
return 0;
|
||||
],[
|
||||
AC_DEFINE_UNQUOTED([HAVE_]translit($1,a-z_-,A-Z__), 1,[Define if $1 type is present. ])
|
||||
AC_MSG_RESULT(yes)
|
||||
], AC_MSG_RESULT(no)
|
||||
)dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([LIBZEND_BASIC_CHECKS],[
|
||||
|
||||
AC_REQUIRE([AC_PROG_YACC])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
@@ -42,6 +64,8 @@ if test "$ac_cv_prog_gcc" = "yes" -a "`uname -s`" = "Rhapsody"; then
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS(
|
||||
inttypes.h \
|
||||
stdint.h \
|
||||
limits.h \
|
||||
malloc.h \
|
||||
string.h \
|
||||
@@ -58,12 +82,12 @@ dlfcn.h)
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_SIGNAL
|
||||
|
||||
AC_DEFUN(LIBZEND_LIBDL_CHECKS,[
|
||||
AC_DEFUN([LIBZEND_LIBDL_CHECKS],[
|
||||
AC_CHECK_LIB(dl, dlopen, [LIBS="-ldl $LIBS"])
|
||||
AC_CHECK_FUNC(dlopen,[AC_DEFINE(HAVE_LIBDL, 1,[ ])])
|
||||
])
|
||||
|
||||
AC_DEFUN(LIBZEND_DLSYM_CHECK,[
|
||||
AC_DEFUN([LIBZEND_DLSYM_CHECK],[
|
||||
dnl
|
||||
dnl Ugly hack to check if dlsym() requires a leading underscore in symbol name.
|
||||
dnl
|
||||
@@ -82,6 +106,10 @@ dnl This is required for QNX and may be some BSD derived systems
|
||||
AC_CHECK_TYPE( uint, unsigned int )
|
||||
AC_CHECK_TYPE( ulong, unsigned long )
|
||||
|
||||
dnl Check if int32_t and uint32_t are defined
|
||||
LIBZEND_CHECK_INT_TYPE(int32_t)
|
||||
LIBZEND_CHECK_INT_TYPE(uint32_t)
|
||||
|
||||
dnl Checks for library functions.
|
||||
AC_FUNC_VPRINTF
|
||||
AC_FUNC_MEMCMP
|
||||
@@ -95,7 +123,7 @@ ZEND_FP_EXCEPT
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN(LIBZEND_ENABLE_DEBUG,[
|
||||
AC_DEFUN([LIBZEND_ENABLE_DEBUG],[
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug Compile with debugging symbols],[
|
||||
@@ -106,7 +134,16 @@ AC_ARG_ENABLE(debug,
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN(LIBZEND_OTHER_CHECKS,[
|
||||
AC_DEFUN([LIBZEND_OTHER_CHECKS],[
|
||||
|
||||
AC_ARG_ENABLE(zend-memory-manager,
|
||||
[ --disable-zend-memory-manager
|
||||
Disable the Zend memory manager - FOR DEVELOPERS ONLY!!],
|
||||
[
|
||||
ZEND_USE_ZEND_ALLOC=$enableval
|
||||
], [
|
||||
ZEND_USE_ZEND_ALLOC=yes
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE(maintainer-zts,
|
||||
[ --enable-maintainer-zts Enable thread safety - for code maintainers only],[
|
||||
@@ -137,6 +174,9 @@ AC_ARG_ENABLE(zend-multibyte,
|
||||
ZEND_MULTIBYTE=no
|
||||
])
|
||||
|
||||
AC_MSG_CHECKING(whether to enable the Zend memory manager)
|
||||
AC_MSG_RESULT($ZEND_USE_ZEND_ALLOC)
|
||||
|
||||
AC_MSG_CHECKING(whether to enable thread-safety)
|
||||
AC_MSG_RESULT($ZEND_MAINTAINER_ZTS)
|
||||
|
||||
@@ -167,6 +207,12 @@ fi
|
||||
|
||||
test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
|
||||
|
||||
if test "$ZEND_USE_ZEND_ALLOC" = "yes"; then
|
||||
AC_DEFINE(USE_ZEND_ALLOC,1,[Use Zend memory manager])
|
||||
else
|
||||
AC_DEFINE(USE_ZEND_ALLOC,0,[Use Zend memory manager])
|
||||
fi
|
||||
|
||||
if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
|
||||
AC_DEFINE(ZTS,1,[ ])
|
||||
CFLAGS="$CFLAGS -DZTS"
|
||||
@@ -237,6 +283,9 @@ int main()
|
||||
LIBZEND_MM_ALIGN_LOG2=`cat conftest.zend | cut -d ' ' -f 2`
|
||||
AC_DEFINE_UNQUOTED(ZEND_MM_ALIGNMENT, $LIBZEND_MM_ALIGN, [ ])
|
||||
AC_DEFINE_UNQUOTED(ZEND_MM_ALIGNMENT_LOG2, $LIBZEND_MM_ALIGN_LOG2, [ ])
|
||||
], [], [
|
||||
dnl cross-compile needs something here
|
||||
LIBZEND_MM_ALIGN=8
|
||||
])
|
||||
|
||||
AC_MSG_RESULT(done)
|
||||
@@ -244,7 +293,7 @@ AC_MSG_RESULT(done)
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN(LIBZEND_CPLUSPLUS_CHECKS,[
|
||||
AC_DEFUN([LIBZEND_CPLUSPLUS_CHECKS],[
|
||||
|
||||
])
|
||||
|
||||
@@ -276,6 +276,10 @@ SOURCE=.\zend_stream.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_strtod.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_ts_hash.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -452,6 +456,10 @@ SOURCE=.\zend_stream.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_strtod.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_ts_hash.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
+11
-4
@@ -23,9 +23,7 @@
|
||||
#define ZEND_DLEXPORT
|
||||
#define ZEND_DLIMPORT
|
||||
|
||||
#ifndef NETWARE
|
||||
@TOP@
|
||||
#endif
|
||||
|
||||
#undef uint
|
||||
#undef ulong
|
||||
@@ -33,9 +31,7 @@
|
||||
/* Define if you want to enable memory limit support */
|
||||
#define MEMORY_LIMIT 0
|
||||
|
||||
#ifndef NETWARE
|
||||
@BOTTOM@
|
||||
#endif
|
||||
|
||||
#ifndef ZEND_ACCONFIG_H_NO_C_PROTOS
|
||||
|
||||
@@ -47,6 +43,10 @@
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_SELECT_H
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_IEEEFP_H
|
||||
# include <ieeefp.h>
|
||||
#endif
|
||||
@@ -98,6 +98,13 @@ int zend_sprintf(char *buffer, const char *format, ...);
|
||||
|
||||
#endif /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */
|
||||
|
||||
#ifdef NETWARE
|
||||
#ifdef USE_WINSOCK
|
||||
#/*This detection against winsock is of no use*/ undef HAVE_SOCKLEN_T
|
||||
#/*This detection against winsock is of no use*/ undef HAVE_SYS_SOCKET_H
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
|
||||
+31
-4
@@ -2,7 +2,7 @@ dnl $Id$
|
||||
dnl
|
||||
dnl This file contains local autoconf functions.
|
||||
|
||||
AC_DEFUN(ZEND_FP_EXCEPT,[
|
||||
AC_DEFUN([ZEND_FP_EXCEPT],[
|
||||
AC_CACHE_CHECK(whether fp_except is defined, ac_cv_type_fp_except,[
|
||||
AC_TRY_COMPILE([
|
||||
#include <floatingpoint.h>
|
||||
@@ -23,7 +23,7 @@ fp_except x = (fp_except) 0;
|
||||
dnl
|
||||
dnl Check for broken sprintf()
|
||||
dnl
|
||||
AC_DEFUN(AC_ZEND_BROKEN_SPRINTF,[
|
||||
AC_DEFUN([AC_ZEND_BROKEN_SPRINTF],[
|
||||
AC_CACHE_CHECK(whether sprintf is broken, ac_cv_broken_sprintf,[
|
||||
AC_TRY_RUN([main() {char buf[20];exit(sprintf(buf,"testing 123")!=11); }],[
|
||||
ac_cv_broken_sprintf=no
|
||||
@@ -41,7 +41,34 @@ AC_DEFUN(AC_ZEND_BROKEN_SPRINTF,[
|
||||
AC_DEFINE_UNQUOTED(ZEND_BROKEN_SPRINTF, $ac_result, [Whether sprintf is broken])
|
||||
])
|
||||
|
||||
AC_DEFUN(AM_SET_LIBTOOL_VARIABLE,[
|
||||
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
|
||||
dnl
|
||||
dnl AC_ZEND_C_BIGENDIAN
|
||||
dnl Replacement macro for AC_C_BIGENDIAN
|
||||
dnl
|
||||
AC_DEFUN([AC_ZEND_C_BIGENDIAN],
|
||||
[AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian_php,
|
||||
[
|
||||
ac_cv_c_bigendian_php=unknown
|
||||
AC_TRY_RUN(
|
||||
[
|
||||
int main(void)
|
||||
{
|
||||
short one = 1;
|
||||
char *cp = (char *)&one;
|
||||
|
||||
if (*cp == 0) {
|
||||
return(0);
|
||||
} else {
|
||||
return(1);
|
||||
}
|
||||
}
|
||||
], [ac_cv_c_bigendian_php=yes], [ac_cv_c_bigendian_php=no], [ac_cv_c_bigendian_php=unknown])
|
||||
])
|
||||
if test $ac_cv_c_bigendian_php = yes; then
|
||||
AC_DEFINE(WORDS_BIGENDIAN, [], [Define if processor uses big-endian word])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([AM_SET_LIBTOOL_VARIABLE],[
|
||||
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
|
||||
])
|
||||
@@ -10,10 +10,14 @@ AC_PROG_CC
|
||||
AM_PROG_LEX
|
||||
AM_PROG_CC_STDC
|
||||
ZEND_VERSION=$VERSION
|
||||
AC_ZEND_C_BIGENDIAN
|
||||
|
||||
dnl We want this one before the checks, so the checks can modify CFLAGS.
|
||||
test -z "$CFLAGS" && auto_cflags=1
|
||||
|
||||
AC_CHECK_SIZEOF(long, 8)
|
||||
AC_CHECK_SIZEOF(int, 4)
|
||||
|
||||
sinclude(Zend.m4)
|
||||
|
||||
LIBZEND_BASIC_CHECKS
|
||||
|
||||
@@ -39,5 +39,5 @@ echo "Done\n";
|
||||
2
|
||||
3
|
||||
Done
|
||||
test::destructor
|
||||
test::__destruct
|
||||
test::destructor
|
||||
@@ -1,12 +1,7 @@
|
||||
--TEST--
|
||||
Bug #20242 (Method call in front of class definition)
|
||||
--SKIPIF--
|
||||
<?php if (version_compare(zend_version(), '2.0.0-dev', '>=')) die('skip ZendEngine 2 does not support this'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
// THIS IS A WON'T FIX FOR ZE2
|
||||
|
||||
test::show_static();
|
||||
|
||||
$t = new test;
|
||||
|
||||
@@ -34,6 +34,3 @@ $c->viewMom();
|
||||
--EXPECT--
|
||||
protected method
|
||||
protected property
|
||||
--EXPECT--
|
||||
protected method
|
||||
protected property
|
||||
@@ -19,56 +19,48 @@ for ($i = 0; $i < 8; $i++) {
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
|
||||
|
||||
@@ -11,11 +11,19 @@ class array_iterator implements IteratorAggregate {
|
||||
|
||||
$obj = new array_iterator;
|
||||
|
||||
foreach ($obj as $property => $value) {
|
||||
var_dump($value);
|
||||
try
|
||||
{
|
||||
foreach ($obj as $property => $value)
|
||||
{
|
||||
var_dump($value);
|
||||
}
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
echo $e->getMessage() . "\n";
|
||||
}
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
Warning: Objects returned by array_iterator::getIterator() must be traversable or implement interface Iterator in %sbug26229.php on line %d
|
||||
===DONE===
|
||||
Objects returned by array_iterator::getIterator() must be traversable or implement interface Iterator
|
||||
===DONE===
|
||||
@@ -1,13 +0,0 @@
|
||||
--TEST--
|
||||
Bug #27145 (Errors messages print unmangled PPP property names)
|
||||
--FILE--
|
||||
<?php
|
||||
class a {
|
||||
protected static $v = "aa";
|
||||
}
|
||||
class b extends a {
|
||||
protected static $v = "bb";
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Cannot redeclare property static protected a::$v in class b in %s on line %d
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #27268 (Bad references accentuated by clone)
|
||||
--FILE--
|
||||
<?php
|
||||
class A
|
||||
{
|
||||
public function &getA()
|
||||
{
|
||||
return $this->a;
|
||||
}
|
||||
}
|
||||
|
||||
$A = new A;
|
||||
$A->a = array(1);
|
||||
$x = $A->getA();
|
||||
$clone = clone $A;
|
||||
$clone->a = array();
|
||||
print_r($A);
|
||||
?>
|
||||
--EXPECT--
|
||||
A Object
|
||||
(
|
||||
[a] => Array
|
||||
(
|
||||
[0] => 1
|
||||
)
|
||||
|
||||
)
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Bug #27304
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Staticexample
|
||||
{
|
||||
static function test()
|
||||
{
|
||||
var_dump(isset($this));
|
||||
}
|
||||
}
|
||||
|
||||
$b = new Staticexample();
|
||||
Staticexample::test();
|
||||
$b->test();
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
bool(false)
|
||||
===DONE===
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
--TEST--
|
||||
Bug #27598 (list() array key assignment causes HUGE memory leak)
|
||||
--FILE--
|
||||
<?php
|
||||
list($out[0]) = array(1);
|
||||
var_dump($out);
|
||||
?>
|
||||
--EXPECT--
|
||||
array(1) {
|
||||
[0]=>
|
||||
int(1)
|
||||
}
|
||||
Executable
+72
@@ -0,0 +1,72 @@
|
||||
--TEST--
|
||||
Bug #27798 (private / protected variables not exposed by get_object_vars() inside class)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Base
|
||||
{
|
||||
public $Foo = 1;
|
||||
protected $Bar = 2;
|
||||
private $Baz = 3;
|
||||
|
||||
function __construct()
|
||||
{
|
||||
echo __METHOD__ . "\n";
|
||||
var_dump(get_object_vars($this));
|
||||
}
|
||||
}
|
||||
|
||||
class Child extends Base
|
||||
{
|
||||
private $Baz = 4;
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
echo __METHOD__ . "\n";
|
||||
var_dump(get_object_vars($this));
|
||||
}
|
||||
}
|
||||
|
||||
var_dump(get_object_vars(new Base));
|
||||
var_dump(get_object_vars(new Child));
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
Base::__construct
|
||||
array(3) {
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
["Bar"]=>
|
||||
int(2)
|
||||
["Baz"]=>
|
||||
int(3)
|
||||
}
|
||||
array(1) {
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
}
|
||||
Base::__construct
|
||||
array(3) {
|
||||
["Baz"]=>
|
||||
int(4)
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
["Bar"]=>
|
||||
int(2)
|
||||
}
|
||||
Child::__construct
|
||||
array(3) {
|
||||
["Baz"]=>
|
||||
int(4)
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
["Bar"]=>
|
||||
int(2)
|
||||
}
|
||||
array(1) {
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
}
|
||||
===DONE===
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Bug #28377 (debug_backtrace is intermittently passing args)
|
||||
--FILE--
|
||||
<?php
|
||||
function doit($a, $b)
|
||||
{
|
||||
$trace = debug_backtrace();
|
||||
custom_callback('dereferenced', $trace);
|
||||
custom_callback('direct', debug_backtrace());
|
||||
}
|
||||
|
||||
function custom_callback($traceName, $btInfo)
|
||||
{
|
||||
echo $traceName ." -- args: ";
|
||||
echo isset($btInfo[0]['args']) ? count($btInfo[0]['args']) : 'does not exist';
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
doit('a','b');
|
||||
?>
|
||||
--EXPECT--
|
||||
dereferenced -- args: 2
|
||||
direct -- args: 2
|
||||
Executable
+65
@@ -0,0 +1,65 @@
|
||||
--TEST--
|
||||
Bug #28442 (Changing a static variables in a class changes it across sub/super classes.)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class ClassA
|
||||
{
|
||||
static $prop;
|
||||
}
|
||||
|
||||
class ClassB extends ClassA
|
||||
{
|
||||
static $prop;
|
||||
}
|
||||
|
||||
class ClassC extends ClassB
|
||||
{
|
||||
}
|
||||
|
||||
echo "===INIT===\n";
|
||||
ClassA::$prop = 'A';
|
||||
ClassB::$prop = 'B';
|
||||
ClassC::$prop = 'C';
|
||||
var_dump(ClassA::$prop);
|
||||
var_dump(ClassB::$prop);
|
||||
var_dump(ClassC::$prop);
|
||||
|
||||
echo "===SetA===\n";
|
||||
ClassA::$prop = 'A2';
|
||||
var_dump(ClassA::$prop);
|
||||
var_dump(ClassB::$prop);
|
||||
var_dump(ClassC::$prop);
|
||||
|
||||
echo "===SetB===\n";
|
||||
ClassB::$prop = 'B2';
|
||||
var_dump(ClassA::$prop);
|
||||
var_dump(ClassB::$prop);
|
||||
var_dump(ClassC::$prop);
|
||||
|
||||
echo "===SetC===\n";
|
||||
ClassC::$prop = 'C2';
|
||||
var_dump(ClassA::$prop);
|
||||
var_dump(ClassB::$prop);
|
||||
var_dump(ClassC::$prop);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
===INIT===
|
||||
string(1) "A"
|
||||
string(1) "C"
|
||||
string(1) "C"
|
||||
===SetA===
|
||||
string(2) "A2"
|
||||
string(1) "C"
|
||||
string(1) "C"
|
||||
===SetB===
|
||||
string(2) "A2"
|
||||
string(2) "B2"
|
||||
string(2) "B2"
|
||||
===SetC===
|
||||
string(2) "A2"
|
||||
string(2) "C2"
|
||||
string(2) "C2"
|
||||
===DONE===
|
||||
Executable
+74
@@ -0,0 +1,74 @@
|
||||
--TEST--
|
||||
Bug #28444 (Cannot access undefined property for object with overloaded property access)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Object
|
||||
{
|
||||
public $x;
|
||||
|
||||
function __construct($x)
|
||||
{
|
||||
$this->x = $x;
|
||||
}
|
||||
}
|
||||
|
||||
class Overloaded
|
||||
{
|
||||
public $props = array();
|
||||
public $x;
|
||||
|
||||
function __construct($x)
|
||||
{
|
||||
$this->x = new Object($x);
|
||||
}
|
||||
|
||||
function __get($prop)
|
||||
{
|
||||
echo __METHOD__ . "($prop)\n";
|
||||
return $this->props[$prop];
|
||||
}
|
||||
|
||||
function __set($prop, $val)
|
||||
{
|
||||
echo __METHOD__ . "($prop,$val)\n";
|
||||
$this->props[$prop] = $val;
|
||||
}
|
||||
}
|
||||
$y = new Overloaded(2);
|
||||
var_dump($y->x);
|
||||
var_dump($y->x->x);
|
||||
var_dump($y->x->x = 3);
|
||||
var_dump($y->y = 3);
|
||||
var_dump($y->y);
|
||||
var_dump($y->z = new Object(4));
|
||||
var_dump($y->z->x);
|
||||
$t = $y->z;
|
||||
var_dump($t->x = 5);
|
||||
var_dump($y->z->x = 6);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
object(Object)#%d (1) {
|
||||
["x"]=>
|
||||
int(2)
|
||||
}
|
||||
int(2)
|
||||
int(3)
|
||||
Overloaded::__set(y,3)
|
||||
int(3)
|
||||
Overloaded::__get(y)
|
||||
int(3)
|
||||
Overloaded::__set(z,Object id #3)
|
||||
object(Object)#%d (1) {
|
||||
["x"]=>
|
||||
int(4)
|
||||
}
|
||||
Overloaded::__get(z)
|
||||
int(4)
|
||||
Overloaded::__get(z)
|
||||
int(5)
|
||||
Overloaded::__get(z)
|
||||
int(6)
|
||||
===DONE===
|
||||
@@ -0,0 +1,11 @@
|
||||
--TEST--
|
||||
Bug #29015 (Incorrect behavior of member vars(non string ones)-numeric mem vars und others)
|
||||
--FILE--
|
||||
<?php
|
||||
$a = new stdClass();
|
||||
$x = "";
|
||||
$a->$x = "string('')";
|
||||
var_dump($a);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Cannot access empty property in %sbug29015.php on line 4
|
||||
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #29104 Function declaration in method doesn't work
|
||||
--FILE--
|
||||
<?php
|
||||
class A
|
||||
{
|
||||
function g()
|
||||
{
|
||||
echo "function g - begin\n";
|
||||
|
||||
function f()
|
||||
{
|
||||
echo "function f\n";
|
||||
}
|
||||
|
||||
echo "function g - end\n";
|
||||
}
|
||||
}
|
||||
|
||||
$a = new A;
|
||||
$a->g();
|
||||
f();
|
||||
?>
|
||||
--EXPECT--
|
||||
function g - begin
|
||||
function g - end
|
||||
function f
|
||||
@@ -0,0 +1,104 @@
|
||||
--TEST--
|
||||
Bug #29210 Function: is_callable - no support for private and protected classes
|
||||
--FILE--
|
||||
<?php
|
||||
class test_class {
|
||||
private function test_func1() {
|
||||
echo "test_func1\n";
|
||||
}
|
||||
protected function test_func2() {
|
||||
echo "test_func2\n";
|
||||
}
|
||||
static private function test_func3() {
|
||||
echo "test_func3\n";
|
||||
}
|
||||
static protected function test_func4() {
|
||||
echo "test_func4\n";
|
||||
}
|
||||
function test() {
|
||||
if (is_callable(array($this,'test_func1'))) {
|
||||
$this->test_func1();
|
||||
} else {
|
||||
echo "test_func1 isn't callable from inside\n";
|
||||
}
|
||||
if (is_callable(array($this,'test_func2'))) {
|
||||
$this->test_func2();
|
||||
} else {
|
||||
echo "test_func2 isn't callable from inside\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func3'))) {
|
||||
test_class::test_func3();
|
||||
} else {
|
||||
echo "test_func3 isn't callable from inside\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func4'))) {
|
||||
test_class::test_func4();
|
||||
} else {
|
||||
echo "test_func4 isn't callable from inside\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class foo extends test_class {
|
||||
function test() {
|
||||
if (is_callable(array($this,'test_func1'))) {
|
||||
$this->test_func1();
|
||||
} else {
|
||||
echo "test_func1 isn't callable from child\n";
|
||||
}
|
||||
if (is_callable(array($this,'test_func2'))) {
|
||||
$this->test_func2();
|
||||
} else {
|
||||
echo "test_func2 isn't callable from child\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func3'))) {
|
||||
test_class::test_func3();
|
||||
} else {
|
||||
echo "test_func3 isn't callable from child\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func4'))) {
|
||||
test_class::test_func4();
|
||||
} else {
|
||||
echo "test_func4 isn't callable from child\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$object = new test_class;
|
||||
$object->test();
|
||||
if (is_callable(array($object,'test_func1'))) {
|
||||
$object->test_func1();
|
||||
} else {
|
||||
echo "test_func1 isn't callable from outside\n";
|
||||
}
|
||||
if (is_callable(array($object,'test_func2'))) {
|
||||
$object->test_func2();
|
||||
} else {
|
||||
echo "test_func2 isn't callable from outside\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func3'))) {
|
||||
test_class::test_func3();
|
||||
} else {
|
||||
echo "test_func3 isn't callable from outside\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func4'))) {
|
||||
test_class::test_func4();
|
||||
} else {
|
||||
echo "test_func4 isn't callable from outside\n";
|
||||
}
|
||||
$object = new foo();
|
||||
$object->test();
|
||||
?>
|
||||
--EXPECT--
|
||||
test_func1
|
||||
test_func2
|
||||
test_func3
|
||||
test_func4
|
||||
test_func1 isn't callable from outside
|
||||
test_func2 isn't callable from outside
|
||||
test_func3 isn't callable from outside
|
||||
test_func4 isn't callable from outside
|
||||
test_func1 isn't callable from child
|
||||
test_func2
|
||||
test_func3 isn't callable from child
|
||||
test_func4
|
||||
Executable
+34
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
Bug #29368 (The destructor is called when an exception is thrown from the constructor)
|
||||
--FILE--
|
||||
<?
|
||||
|
||||
class Foo
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
echo __METHOD__ . "\n";
|
||||
throw new Exception;
|
||||
}
|
||||
function __destruct()
|
||||
{
|
||||
echo __METHOD__ . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$bar = new Foo;
|
||||
} catch(Exception $exc)
|
||||
{
|
||||
echo "Caught exception!\n";
|
||||
}
|
||||
|
||||
unset($bar);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
Foo::__construct
|
||||
Caught exception!
|
||||
===DONE===
|
||||
Executable
+31
@@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
Bug #29505 (get_class_vars() severely broken when used with arrays)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Test {
|
||||
public $empty = array();
|
||||
public $three = array(1, "b"=>"c", 3=>array());
|
||||
}
|
||||
|
||||
var_dump(get_class_vars('Test'));
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
array(2) {
|
||||
["empty"]=>
|
||||
array(0) {
|
||||
}
|
||||
["three"]=>
|
||||
array(3) {
|
||||
[0]=>
|
||||
int(1)
|
||||
["b"]=>
|
||||
string(1) "c"
|
||||
[3]=>
|
||||
array(0) {
|
||||
}
|
||||
}
|
||||
}
|
||||
===DONE===
|
||||
@@ -0,0 +1,62 @@
|
||||
--TEST--
|
||||
Bug #29689 (default value of protected member overrides default value of private)
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
private $foo = 'foo';
|
||||
private $foo2 = 'foo2';
|
||||
|
||||
function printFoo()
|
||||
{
|
||||
echo __CLASS__, ': ', $this->foo, " ", $this->foo2, "\n";
|
||||
}
|
||||
}
|
||||
|
||||
class bar extends foo {
|
||||
protected $foo = 'bar';
|
||||
|
||||
function printFoo()
|
||||
{
|
||||
parent::printFoo();
|
||||
echo __CLASS__, ': ', $this->foo, " ", $this->foo2, "\n";
|
||||
}
|
||||
}
|
||||
|
||||
class baz extends bar {
|
||||
protected $foo = 'baz';
|
||||
protected $foo2 = 'baz2';
|
||||
}
|
||||
|
||||
class bar2 extends foo {
|
||||
function printFoo()
|
||||
{
|
||||
parent::printFoo();
|
||||
echo __CLASS__, ': ', $this->foo, " ", $this->foo2, "\n";
|
||||
}
|
||||
}
|
||||
|
||||
class baz2 extends bar2 {
|
||||
protected $foo = 'baz2';
|
||||
protected $foo2 = 'baz22';
|
||||
}
|
||||
|
||||
$bar = new bar;
|
||||
$bar->printFoo();
|
||||
echo "---baz--\n";
|
||||
$baz = new baz();
|
||||
$baz->printFoo();
|
||||
echo "---baz2--\n";
|
||||
$baz = new baz2();
|
||||
$baz->printFoo();
|
||||
?>
|
||||
--EXPECTF--
|
||||
foo: foo foo2
|
||||
bar: bar
|
||||
Notice: Undefined property: bar::$foo2 in %s on line %d
|
||||
|
||||
---baz--
|
||||
foo: foo foo2
|
||||
bar: baz baz2
|
||||
---baz2--
|
||||
foo: foo foo2
|
||||
bar2: baz2 baz22
|
||||
@@ -0,0 +1,13 @@
|
||||
--TEST--
|
||||
Bug #29883 (isset gives invalid values on strings)
|
||||
--FILE--
|
||||
<?php
|
||||
$x = "bug";
|
||||
var_dump(isset($x[-1]));
|
||||
var_dump(isset($x["1"]));
|
||||
echo $x["1"]."\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
bool(true)
|
||||
u
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Bug #29890 (crash if error handler fails)
|
||||
--FILE--
|
||||
<?php
|
||||
function customErrorHandler($fErrNo,$fErrStr,$fErrFile,$fErrLine,&$fClass) {
|
||||
echo "error :".$fErrStr."\n";
|
||||
}
|
||||
|
||||
set_time_limit(5);
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
set_error_handler("customErrorHandler");
|
||||
|
||||
define("TEST",2);
|
||||
|
||||
//should return a notice that the constant is already defined
|
||||
|
||||
define("TEST",3);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
error :Constant TEST already defined
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #29896 (Backtrace argument list out of sync)
|
||||
--FILE--
|
||||
<?php
|
||||
function userErrorHandler($num, $msg, $file, $line, $vars)
|
||||
{
|
||||
debug_print_backtrace();
|
||||
}
|
||||
|
||||
$OldErrorHandler = set_error_handler("userErrorHandler");
|
||||
|
||||
function GenerateError1($A1)
|
||||
{
|
||||
$a = $b;
|
||||
}
|
||||
|
||||
function GenerateError2($A1)
|
||||
{
|
||||
GenerateError1("Test1");
|
||||
}
|
||||
|
||||
GenerateError2("Test2");
|
||||
?>
|
||||
--EXPECTF--
|
||||
#0 userErrorHandler(8, Undefined variable: b, %sbug29896.php, 11, Array ([A1] => Test1)) called at [%sbug29896.php:11]
|
||||
#1 GenerateError1(Test1) called at [%sbug29896.php:16]
|
||||
#2 GenerateError2(Test2) called at [%sbug29896.php:19]
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
--TEST--
|
||||
Bug #29944 (Function defined in switch, crashes)
|
||||
--FILE--
|
||||
<?php
|
||||
$a = 1;
|
||||
switch ($a) {
|
||||
case 1:
|
||||
function foo($a) {
|
||||
return "ok\n";
|
||||
}
|
||||
echo foo($a);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #30080 (Passing array or non array of objects)
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
function foo($arrayobj) {
|
||||
var_dump($arrayobj);
|
||||
}
|
||||
}
|
||||
|
||||
new foo(array(new stdClass));
|
||||
?>
|
||||
--EXPECT--
|
||||
array(1) {
|
||||
[0]=>
|
||||
object(stdClass)#2 (0) {
|
||||
}
|
||||
}
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #30140 (Problem with array in static properties)
|
||||
--FILE--
|
||||
<?php
|
||||
class A {
|
||||
public static $test1 = true;
|
||||
public static $test2 = array();
|
||||
public static $test3 = "str";
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
}
|
||||
|
||||
A::$test1 = "x";
|
||||
A::$test2 = "y";
|
||||
A::$test3 = "z";
|
||||
var_dump(A::$test1);
|
||||
var_dump(A::$test2);
|
||||
var_dump(A::$test3);
|
||||
var_dump(B::$test1);
|
||||
var_dump(B::$test2);
|
||||
var_dump(B::$test3);
|
||||
?>
|
||||
--EXPECT--
|
||||
string(1) "x"
|
||||
string(1) "y"
|
||||
string(1) "z"
|
||||
string(1) "x"
|
||||
string(1) "y"
|
||||
string(1) "z"
|
||||
Executable
+52
@@ -0,0 +1,52 @@
|
||||
--TEST--
|
||||
Bug #30162 (Catching exception in constructor couses lose of $this)
|
||||
--FILE--
|
||||
<?php
|
||||
class FIIFO {
|
||||
|
||||
public function __construct() {
|
||||
$this->x = "x";
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class hariCow extends FIIFO {
|
||||
|
||||
public function __construct() {
|
||||
try {
|
||||
parent::__construct();
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
$this->y = "y";
|
||||
try {
|
||||
$this->z = new FIIFO;
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
public function __toString() {
|
||||
return "Rusticus in asino sedet.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
$db = new FIIFO();
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
var_dump($db);
|
||||
|
||||
$db = new hariCow;
|
||||
|
||||
var_dump($db);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: db in %sbug30162.php on line 35
|
||||
NULL
|
||||
object(hariCow)#1 (2) {
|
||||
["x"]=>
|
||||
string(1) "x"
|
||||
["y"]=>
|
||||
string(1) "y"
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
--TEST--
|
||||
Bug #30332 (zend.ze1_compatibility_mode isnt fully compatable with array_push())
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=on
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class x { };
|
||||
|
||||
$first = new x;
|
||||
$second = $first;
|
||||
$container = array();
|
||||
array_push($container, $first);
|
||||
|
||||
$first->first = " im in the first";
|
||||
|
||||
print_r($first);
|
||||
print_r($second);
|
||||
print_r($container);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Implicit cloning object of class 'x' because of 'zend.ze1_compatibility_mode' in %sbug30332.php on line 4
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'x' because of 'zend.ze1_compatibility_mode' in %sbug30332.php on line 5
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'x' because of 'zend.ze1_compatibility_mode' in %sbug30332.php on line 7
|
||||
x Object
|
||||
(
|
||||
[first] => im in the first
|
||||
)
|
||||
x Object
|
||||
(
|
||||
)
|
||||
Array
|
||||
(
|
||||
[0] => x Object
|
||||
(
|
||||
)
|
||||
|
||||
)
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #30394 (Assignment operators yield wrong result with __get/__set)
|
||||
--FILE--
|
||||
<?php
|
||||
class Container
|
||||
{
|
||||
public function __get( $what )
|
||||
{
|
||||
return $this->_p[ $what ];
|
||||
}
|
||||
|
||||
public function __set( $what, $value )
|
||||
{
|
||||
$this->_p[ $what ] = $value;
|
||||
}
|
||||
|
||||
private $_p = array();
|
||||
}
|
||||
|
||||
$c = new Container();
|
||||
$c->a = 1;
|
||||
$c->a += 1;
|
||||
print $c->a; // --> 2
|
||||
|
||||
print " - ";
|
||||
$c->a += max( 0, 1 );
|
||||
print $c->a; // --> 4 (!)
|
||||
?>
|
||||
--EXPECT--
|
||||
2 - 3
|
||||
@@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Bug #30451 (static properties permissions broken)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class A {
|
||||
|
||||
protected static $property = TRUE;
|
||||
|
||||
protected static function method() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
|
||||
public function __construct() {
|
||||
|
||||
var_dump(self::method());
|
||||
var_dump(parent::method());
|
||||
|
||||
var_dump(self::$property);
|
||||
var_dump(parent::$property);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
new B;
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
--TEST--
|
||||
Bug #30519 Interface not existing says Class not found
|
||||
--FILE--
|
||||
<?php
|
||||
class test implements a {
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Interface 'a' not found in %sbug30519.php on line 2
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
--TEST--
|
||||
Bug #30702 cannot initialize class variable from class constant
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
const C1=1;
|
||||
}
|
||||
|
||||
class bar extends foo {
|
||||
const C2=2;
|
||||
|
||||
public $c1=bar::C1;
|
||||
public $c2=bar::C2;
|
||||
|
||||
public $c3=self::C1;
|
||||
public $c4=self::C2;
|
||||
|
||||
public $c5=foo::C1;
|
||||
public $c6=parent::C1;
|
||||
}
|
||||
|
||||
$x= new bar();
|
||||
var_dump($x);
|
||||
?>
|
||||
--EXPECT--
|
||||
object(bar)#1 (6) {
|
||||
["c1"]=>
|
||||
int(1)
|
||||
["c2"]=>
|
||||
int(2)
|
||||
["c3"]=>
|
||||
int(1)
|
||||
["c4"]=>
|
||||
int(2)
|
||||
["c5"]=>
|
||||
int(1)
|
||||
["c6"]=>
|
||||
int(1)
|
||||
}
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Bug #30707 (Segmentation fault on exception in method)
|
||||
--FILE--
|
||||
<?php
|
||||
class C {
|
||||
function byePHP($plop) {
|
||||
echo "ok\n";
|
||||
}
|
||||
|
||||
function plip() {
|
||||
try {
|
||||
$this->plap($this->plop());
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
function plap($a) {
|
||||
}
|
||||
|
||||
function plop() {
|
||||
throw new Exception;
|
||||
}
|
||||
}
|
||||
|
||||
$x = new C;
|
||||
$x->byePHP($x->plip());
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
--TEST--
|
||||
Bug #30725 (PHP segfaults when an exception is thrown in getIterator() within foreach)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Test implements IteratorAggregate
|
||||
{
|
||||
function getIterator()
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$it = new Test;
|
||||
foreach($it as $v)
|
||||
{
|
||||
echo "Fail\n";
|
||||
}
|
||||
echo "Wrong\n";
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
echo "Caught\n";
|
||||
}
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
Caught
|
||||
===DONE===
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Bug #30791 magic methods (__sleep/__wakeup/__toString) call __call if object is overloaded
|
||||
--FILE--
|
||||
<?php
|
||||
class a {
|
||||
public $a = 4;
|
||||
function __call($a,$b) {
|
||||
return "unknown method";
|
||||
}
|
||||
}
|
||||
$b = new a;
|
||||
echo $b,"\n";
|
||||
$c = unserialize(serialize($b));
|
||||
echo $c,"\n";
|
||||
var_dump($c);
|
||||
?>
|
||||
--EXPECT--
|
||||
Object id #1
|
||||
Object id #2
|
||||
object(a)#2 (1) {
|
||||
["a"]=>
|
||||
int(4)
|
||||
}
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #30820 (static member conflict with $this->member silently ignored)
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class Blah {
|
||||
private static $x;
|
||||
|
||||
public function show() {
|
||||
Blah::$x = 1;
|
||||
$this->x = 5; // no warning, but refers to different variable
|
||||
|
||||
echo 'Blah::$x = '. Blah::$x ."\n";
|
||||
echo '$this->x = '. $this->x ."\n";
|
||||
}
|
||||
}
|
||||
|
||||
$b = new Blah();
|
||||
$b->show();
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Accessing static property Blah::$x as non static in %sbug30820.php on line 7
|
||||
Blah::$x = 1
|
||||
|
||||
Strict Standards: Accessing static property Blah::$x as non static in %sbug30820.php on line 10
|
||||
$this->x = 5
|
||||
Executable
+61
@@ -0,0 +1,61 @@
|
||||
--TEST--
|
||||
Bug #30828 (debug_backtrace() reports incorrect class in overridden methods)
|
||||
--FILE--
|
||||
<?php
|
||||
class A {
|
||||
function __construct() {
|
||||
debug_print_backtrace();
|
||||
$bt = debug_backtrace();
|
||||
foreach ($bt as $t) {
|
||||
print $t['class'].$t['type'].$t['function']."\n";
|
||||
}
|
||||
}
|
||||
|
||||
function foo() {
|
||||
debug_print_backtrace();
|
||||
$bt = debug_backtrace();
|
||||
foreach ($bt as $t) {
|
||||
print $t['class'].$t['type'].$t['function']."\n";
|
||||
}
|
||||
}
|
||||
|
||||
static function bar() {
|
||||
debug_print_backtrace();
|
||||
$bt = debug_backtrace();
|
||||
foreach ($bt as $t) {
|
||||
print $t['class'].$t['type'].$t['function']."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
function __construct() {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
function foo() {
|
||||
parent::foo();
|
||||
}
|
||||
|
||||
static function bar() {
|
||||
parent::bar();
|
||||
}
|
||||
}
|
||||
|
||||
$b = new B();
|
||||
$b->foo();
|
||||
B::bar();
|
||||
?>
|
||||
--EXPECTF--
|
||||
#0 A->__construct() called at [%sbug30828.php:30]
|
||||
#1 B->__construct() called at [%sbug30828.php:42]
|
||||
A->__construct
|
||||
B->__construct
|
||||
#0 A->foo() called at [%sbug30828.php:34]
|
||||
#1 B->foo() called at [%sbug30828.php:43]
|
||||
A->foo
|
||||
B->foo
|
||||
#0 A::bar() called at [%sbug30828.php:38]
|
||||
#1 B::bar() called at [%sbug30828.php:44]
|
||||
A::bar
|
||||
B::bar
|
||||
@@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
Bug #30889 Conflict between __get/__set and ++ operator
|
||||
--FILE--
|
||||
<?php
|
||||
class overloaded
|
||||
{
|
||||
private $values;
|
||||
function __construct()
|
||||
{
|
||||
$this->values = array('a' => 0);
|
||||
}
|
||||
function __set($name, $value)
|
||||
{
|
||||
print "set $name = $value ($name was ".$this->values[$name].")\n";
|
||||
$this->values[$name] = $value;
|
||||
}
|
||||
function __get($name)
|
||||
{
|
||||
print "get $name (returns ".$this->values[$name].")\n";
|
||||
return $this->values[$name];
|
||||
}
|
||||
}
|
||||
$test = new overloaded();
|
||||
$test->a++; // __get(), then __set()
|
||||
++$test->a;
|
||||
?>
|
||||
--EXPECT--
|
||||
get a (returns 0)
|
||||
set a = 1 (a was 0)
|
||||
get a (returns 1)
|
||||
set a = 2 (a was 1)
|
||||
@@ -0,0 +1,13 @@
|
||||
--TEST--
|
||||
Bug #30922 (reflective functions crash PHP when interfaces extend themselves)
|
||||
--FILE--
|
||||
<?php
|
||||
interface RecurisiveFooFar extends RecurisiveFooFar {}
|
||||
class A implements RecurisiveFooFar {}
|
||||
|
||||
$a = new A();
|
||||
var_dump($a instanceOf A);
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Interface RecurisiveFooFar cannot not implement itself in %sbug30922.php on line %d
|
||||
@@ -0,0 +1,53 @@
|
||||
--TEST--
|
||||
Bug #31098 (isset() / empty() incorrectly returns true in dereference of a wrong type)
|
||||
--FILE--
|
||||
<?php
|
||||
$a = '';
|
||||
var_dump(isset($a->b));
|
||||
$a = 'a';
|
||||
var_dump(isset($a->b));
|
||||
$a = '0';
|
||||
var_dump(isset($a->b));
|
||||
$a = '';
|
||||
var_dump(isset($a{'b'}));
|
||||
$a = 'a';
|
||||
var_dump(isset($a{'b'}));
|
||||
$a = '0';
|
||||
var_dump(isset($a{'b'}));
|
||||
|
||||
$simpleString = "Bogus String Text";
|
||||
echo isset($simpleString->wrong)?"bug\n":"ok\n";
|
||||
echo isset($simpleString["wrong"])?"ok\n":"bug\n";
|
||||
echo isset($simpleString[-1])?"bug\n":"ok\n";
|
||||
echo isset($simpleString[0])?"ok\n":"bug\n";
|
||||
echo isset($simpleString["0"])?"ok\n":"bug\n";
|
||||
echo isset($simpleString["16"])?"ok\n":"bug\n";
|
||||
echo isset($simpleString["17"])?"bug\n":"ok\n";
|
||||
echo isset($simpleString["wrong"][0])?"bug\n":"ok\n";
|
||||
echo $simpleString->wrong === null?"ok\n":"bug\n";
|
||||
echo $simpleString["wrong"] === "B"?"ok\n":"bug\n";
|
||||
echo $simpleString["0"] === "B"?"ok\n":"bug\n";
|
||||
$simpleString["wrong"] = "f";
|
||||
echo $simpleString["0"] === "f"?"ok\n":"bug\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
|
||||
Notice: Trying to get property of non-object in %sbug31098.php on line %d
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
Executable
+44
@@ -0,0 +1,44 @@
|
||||
--TEST--
|
||||
Bug #31177 (Memory leak)
|
||||
--FILE--
|
||||
<?php
|
||||
class DbGow {
|
||||
|
||||
public function query() {
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
public function select() {
|
||||
return new DbGowRecordSet($this->query());
|
||||
}
|
||||
|
||||
public function select2() {
|
||||
new DbGowRecordSet($this->query());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class DbGowRecordSet {
|
||||
|
||||
public function __construct($resource) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$db = new DbGow;
|
||||
|
||||
try {
|
||||
$rs = $db->select();
|
||||
} catch(Exception $e) {
|
||||
echo "ok\n";
|
||||
}
|
||||
|
||||
try {
|
||||
$db->select2();
|
||||
} catch(Exception $e) {
|
||||
echo "ok\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
ok
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Bug #31525 (object reference being dropped. $this getting lost)
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo {
|
||||
function getThis() {
|
||||
return $this;
|
||||
}
|
||||
function destroyThis() {
|
||||
$baz =& $this->getThis();
|
||||
}
|
||||
}
|
||||
$bar = new Foo();
|
||||
$bar->destroyThis();
|
||||
var_dump($bar);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Only variables should be assigned by reference in %sbug31525.php on line 7
|
||||
object(Foo)#1 (0) {
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
--TEST--
|
||||
Bug #31683 (changes to $name in __get($name) override future parameters)
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Foo implements ArrayAccess {
|
||||
|
||||
function __get($test) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
}
|
||||
|
||||
function __set($test, $val) {
|
||||
var_dump($test);
|
||||
var_dump($val);
|
||||
$test = 'bug';
|
||||
$val = 'bug';
|
||||
}
|
||||
|
||||
function __call($test, $arg) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
}
|
||||
|
||||
function offsetget($test) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
return 123;
|
||||
}
|
||||
|
||||
function offsetset($test, $val) {
|
||||
var_dump($test);
|
||||
var_dump($val);
|
||||
$test = 'bug';
|
||||
$val = 'bug';
|
||||
}
|
||||
|
||||
function offsetexists($test) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
}
|
||||
|
||||
function offsetunset($test) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$foo = new Foo();
|
||||
$a = "ok";
|
||||
|
||||
for ($i=0; $i < 2; $i++) {
|
||||
$foo->ok("ok");
|
||||
$foo->ok;
|
||||
$foo->ok = "ok";
|
||||
$x = $foo["ok"];
|
||||
$foo["ok"] = "ok";
|
||||
isset($foo["ok"]);
|
||||
unset($foo["ok"]);
|
||||
// $foo[];
|
||||
$foo[] = "ok";
|
||||
// isset($foo[]);
|
||||
// unset($foo[]);
|
||||
$foo->$a;
|
||||
echo "---\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
NULL
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
---
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
NULL
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
---
|
||||
@@ -0,0 +1,16 @@
|
||||
--TEST--
|
||||
Bug #31720 (Invalid object callbacks not caught in array_walk())
|
||||
--FILE--
|
||||
<?
|
||||
$array = array('at least one element');
|
||||
|
||||
array_walk($array, array($nonesuchvar,'show'));
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: nonesuchvar in %s on line %d
|
||||
|
||||
Notice: Non-callable array passed to zend_call_function() in %s on line %d
|
||||
|
||||
Warning: array_walk(): Unable to call Array() - function does not exist in %s on line %d
|
||||
===DONE===
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Bug #31828 (Crash with zend.ze1_compatibility_mode=On)
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=on
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
$o = new stdClass();
|
||||
$o->id = 77;
|
||||
$o->name = "Aerospace";
|
||||
$a[] = $o;
|
||||
$a = $a[0];
|
||||
print_r($a);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug31828.php on line 2
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug31828.php on line 5
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug31828.php on line 6
|
||||
stdClass Object
|
||||
(
|
||||
[id] => 77
|
||||
[name] => Aerospace
|
||||
)
|
||||
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #32080 (segfault when assigning object to itself with zend.ze1_compatibility_mode=On)
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=on
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class test { }
|
||||
$t = new test;
|
||||
$t = $t; // gives segfault
|
||||
var_dump($t);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Implicit cloning object of class 'test' because of 'zend.ze1_compatibility_mode' in %sbug32080.php on line 3
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'test' because of 'zend.ze1_compatibility_mode' in %sbug32080.php on line 5
|
||||
object(test)#%d (0) {
|
||||
}
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Bug # 32226 (SEGV with exception handler on non existing instance)
|
||||
--FILE--
|
||||
<?
|
||||
|
||||
class A
|
||||
{
|
||||
public function A()
|
||||
{
|
||||
set_exception_handler(array($this, 'EH'));
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public function EH()
|
||||
{
|
||||
restore_exception_handler();
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$a = new A();
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
echo "Caught\n";
|
||||
}
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
Caught
|
||||
===DONE===
|
||||
Executable
+47
@@ -0,0 +1,47 @@
|
||||
--TEST--
|
||||
Bug #32252 (Segfault when offsetSet throws an Exception (only without debug))
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Test implements ArrayAccess
|
||||
{
|
||||
function offsetExists($offset)
|
||||
{
|
||||
echo __METHOD__ . "($offset)\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
function offsetGet($offset)
|
||||
{
|
||||
echo __METHOD__ . "($offset)\n";
|
||||
return null;
|
||||
}
|
||||
|
||||
function offsetSet($offset, $value)
|
||||
{
|
||||
echo __METHOD__ . "($offset, $value)\n";
|
||||
throw new Exception("Ooops");
|
||||
}
|
||||
|
||||
function offsetUnset($offset)
|
||||
{
|
||||
echo __METHOD__ . "($offset)\n";
|
||||
}
|
||||
}
|
||||
|
||||
$list = new Test();
|
||||
try
|
||||
{
|
||||
$list[-1] = 123;
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
echo "CAUGHT\n";
|
||||
}
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
Test::offsetSet(-1, 123)
|
||||
CAUGHT
|
||||
===DONE===
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
--TEST--
|
||||
Bug #32290 (calling call_user_func_array() ends in infinite loop within child class)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class TestA
|
||||
{
|
||||
public function doSomething($i)
|
||||
{
|
||||
echo __METHOD__ . "($this)\n";
|
||||
return --$i;
|
||||
}
|
||||
}
|
||||
|
||||
class TestB extends TestA
|
||||
{
|
||||
public function doSomething($i)
|
||||
{
|
||||
echo __METHOD__ . "($this)\n";
|
||||
$i++;
|
||||
if ($i >= 5) return 5;
|
||||
return call_user_func_array(array("TestA","doSomething"), array($i));
|
||||
}
|
||||
}
|
||||
|
||||
$x = new TestB();
|
||||
var_dump($x->doSomething(1));
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
TestB::doSomething(Object id #%d)
|
||||
TestA::doSomething(Object id #%d)
|
||||
int(1)
|
||||
===DONE===
|
||||
Executable
+60
@@ -0,0 +1,60 @@
|
||||
--TEST--
|
||||
Bug #32296 get_class_methods output has changed between 5.0.2 and 5.0.3
|
||||
--FILE--
|
||||
<?php
|
||||
abstract class space{
|
||||
function __construct(){}
|
||||
abstract protected function unfold();
|
||||
}
|
||||
|
||||
abstract class shape extends space{
|
||||
private function x1() {}
|
||||
protected final function unfold(){}
|
||||
}
|
||||
|
||||
abstract class quad extends shape{
|
||||
private function x2() {}
|
||||
function buggy(){
|
||||
$c = get_class($this);
|
||||
$a = get_class_methods(get_class($this));
|
||||
$b = get_class_methods($this);
|
||||
print($c."\n".'a:');
|
||||
print_r($a);
|
||||
print('b:');
|
||||
print_r($b);
|
||||
}
|
||||
}
|
||||
|
||||
class square extends quad{}
|
||||
|
||||
$a = new square();
|
||||
$a->buggy();
|
||||
print_r(get_class_methods("square"));
|
||||
print_r(get_class_methods($a));
|
||||
?>
|
||||
--EXPECT--
|
||||
square
|
||||
a:Array
|
||||
(
|
||||
[0] => x2
|
||||
[1] => buggy
|
||||
[2] => unfold
|
||||
[3] => __construct
|
||||
)
|
||||
b:Array
|
||||
(
|
||||
[0] => x2
|
||||
[1] => buggy
|
||||
[2] => unfold
|
||||
[3] => __construct
|
||||
)
|
||||
Array
|
||||
(
|
||||
[0] => buggy
|
||||
[1] => __construct
|
||||
)
|
||||
Array
|
||||
(
|
||||
[0] => buggy
|
||||
[1] => __construct
|
||||
)
|
||||
Executable
+80
@@ -0,0 +1,80 @@
|
||||
--TEST--
|
||||
Bug #32322 (Return values by reference broken( using self::),example singleton instance)
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class test
|
||||
{
|
||||
private static $instance = null;
|
||||
private $myname = '';
|
||||
|
||||
private function __construct( $value = '' )
|
||||
{
|
||||
echo "New class $value created \n";
|
||||
$this -> myname = $value;
|
||||
}
|
||||
private function __clone() {}
|
||||
static public function getInstance()
|
||||
{
|
||||
if ( self::$instance == null )
|
||||
{
|
||||
self::$instance = new test('Singleton1');
|
||||
}
|
||||
else {
|
||||
echo "Using old class " . self::$instance -> myname . "\n";
|
||||
}
|
||||
return self::$instance;
|
||||
}
|
||||
static public function getInstance2()
|
||||
{
|
||||
static $instance2 = null;
|
||||
if ( $instance2 == null )
|
||||
{
|
||||
$instance2 = new test('Singleton2');
|
||||
}
|
||||
else {
|
||||
echo "Using old class " . $instance2 -> myname . "\n";
|
||||
}
|
||||
return $instance2;
|
||||
}
|
||||
public function __destruct()
|
||||
{
|
||||
if ( defined('SCRIPT_END') )
|
||||
{
|
||||
echo "Class " . $this -> myname . " destroyed at script end\n";
|
||||
} else {
|
||||
echo "Class " . $this -> myname . " destroyed beforce script end\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "Try static instance inside class :\n";
|
||||
$getCopyofSingleton = test::getInstance();
|
||||
$getCopyofSingleton = null;
|
||||
$getCopyofSingleton = &test::getInstance();
|
||||
$getCopyofSingleton = null;
|
||||
$getCopyofSingleton = test::getInstance();
|
||||
echo "Try static instance inside function :\n";
|
||||
$getCopyofSingleton2 = test::getInstance2();
|
||||
$getCopyofSingleton2 = null;
|
||||
$getCopyofSingleton2 = &test::getInstance2();
|
||||
$getCopyofSingleton2 = null;
|
||||
$getCopyofSingleton2 = test::getInstance2();
|
||||
|
||||
define('SCRIPT_END',1);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Try static instance inside class :
|
||||
New class Singleton1 created
|
||||
Using old class Singleton1
|
||||
|
||||
Strict Standards: Only variables should be assigned by reference in %sbug32322.php on line 49
|
||||
Using old class Singleton1
|
||||
Try static instance inside function :
|
||||
New class Singleton2 created
|
||||
Using old class Singleton2
|
||||
|
||||
Strict Standards: Only variables should be assigned by reference in %sbug32322.php on line 55
|
||||
Using old class Singleton2
|
||||
Class Singleton1 destroyed at script end
|
||||
Class Singleton2 destroyed at script end
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #32596 (Segfault/Memory Leak by getClass (etc) in __destruct)
|
||||
--FILE--
|
||||
<?php
|
||||
class BUG {
|
||||
public $error = "please fix this thing, it wasted a nice part of my life!\n";
|
||||
static function instance() {return new BUG();}
|
||||
|
||||
function __destruct()
|
||||
{
|
||||
$c=get_class($this); unset($c);
|
||||
echo get_class($this) ."\n";
|
||||
if(defined('DEBUG_'.__CLASS__)){}
|
||||
$c=get_class($this); //memory leak only
|
||||
echo $this->error;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BUG::instance()->error;
|
||||
echo "this is still executed\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
BUG
|
||||
please fix this thing, it wasted a nice part of my life!
|
||||
this is still executed
|
||||
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Bug #32660 Assignment by reference causes crash when field access is overloaded (__get)
|
||||
--FILE--
|
||||
<?php
|
||||
class A
|
||||
{
|
||||
public $q;
|
||||
|
||||
function __construct()
|
||||
{
|
||||
$this->q = 3;//array();
|
||||
}
|
||||
|
||||
function __get($name)
|
||||
{
|
||||
return $this->q;
|
||||
}
|
||||
}
|
||||
|
||||
$a = new A;
|
||||
|
||||
$b = "short";
|
||||
$c =& $a->whatever;
|
||||
$c = "long";
|
||||
print_r($a);
|
||||
$a->whatever =& $b;
|
||||
$b = "much longer";
|
||||
print_r($a);
|
||||
?>
|
||||
--EXPECTF--
|
||||
A Object
|
||||
(
|
||||
[q] => long
|
||||
)
|
||||
|
||||
Fatal error: Cannot assign by reference to overloaded object in %sbug32660.php on line 23
|
||||
@@ -0,0 +1,62 @@
|
||||
--TEST--
|
||||
Bug #32674 exception in iterator causes crash
|
||||
--FILE--
|
||||
<?php
|
||||
class collection implements Iterator {
|
||||
|
||||
private $_elements = array();
|
||||
|
||||
public function __construct() {
|
||||
}
|
||||
|
||||
public function rewind() {
|
||||
reset($this->_elements);
|
||||
}
|
||||
|
||||
public function count() {
|
||||
return count($this->_elements);
|
||||
}
|
||||
|
||||
public function current() {
|
||||
$element = current($this->_elements);
|
||||
return $element;
|
||||
}
|
||||
|
||||
public function next() {
|
||||
$element = next($this->_elements);
|
||||
return $element;
|
||||
}
|
||||
|
||||
public function key() {
|
||||
$this->_fillCollection();
|
||||
$element = key($this->_elements);
|
||||
return $element;
|
||||
}
|
||||
|
||||
public function valid() {
|
||||
throw new Exception('shit happend');
|
||||
|
||||
return ($this->current() !== false);
|
||||
}
|
||||
}
|
||||
|
||||
class class2 {
|
||||
public $dummy;
|
||||
}
|
||||
|
||||
$obj = new class2();
|
||||
$col = new collection();
|
||||
|
||||
try {
|
||||
foreach($col as $co) {
|
||||
//irrelevant
|
||||
}
|
||||
echo 'shouldn`t get here';
|
||||
//$dummy = 'this will not crash';
|
||||
$obj->dummy = 'this will crash';
|
||||
} catch (Exception $e) {
|
||||
echo "ok\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Bug #32799 (crash: calling the corresponding global var during the destruct)
|
||||
--FILE--
|
||||
<?php
|
||||
class test{
|
||||
public $c=1;
|
||||
function __destruct (){
|
||||
$GLOBALS['p']->c++; // no warning
|
||||
print $GLOBALS['p']->c."\n"; // segfault
|
||||
var_dump($GLOBALS['p']);
|
||||
}
|
||||
}
|
||||
$p=new test;
|
||||
$p=null; //destroy the object by a new assignment (segfault)
|
||||
?>
|
||||
--EXPECT--
|
||||
2
|
||||
object(test)#1 (1) {
|
||||
["c"]=>
|
||||
int(2)
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
--TEST--
|
||||
Bug #32852 (Crash with singleton and __destruct when zend.ze1_compatibility_mode = On)
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=on
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class crashme {
|
||||
private static $instance = null;
|
||||
|
||||
public function __construct() {
|
||||
self::$instance = $this;
|
||||
}
|
||||
|
||||
public function __destruct() {
|
||||
echo "i'm called\n";
|
||||
}
|
||||
|
||||
public static function singleton() {
|
||||
if (!isset(self::$instance)) {
|
||||
self::$instance = new crashme();
|
||||
}
|
||||
return self::$instance;
|
||||
}
|
||||
}
|
||||
|
||||
crashme::singleton();
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Implicit cloning object of class 'crashme' because of 'zend.ze1_compatibility_mode' in %sbug32852.php on line 6
|
||||
i'm called
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'crashme' because of 'zend.ze1_compatibility_mode' in %sbug32852.php on line 15
|
||||
i'm called
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'crashme' because of 'zend.ze1_compatibility_mode' in %sbug32852.php on line 17
|
||||
i'm called
|
||||
i'm called
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Bug #32993 (implemented Iterator function current() don't throw exception)
|
||||
--FILE--
|
||||
<?php
|
||||
class Test implements Iterator {
|
||||
|
||||
public $arr = array();
|
||||
|
||||
public function rewind() { return reset($this->arr); }
|
||||
public function current() { throw new Exception(); }
|
||||
public function key() { return key($this->arr); }
|
||||
public function next() { return next($this->arr); }
|
||||
public function valid() { return (current($this->arr) !== false); }
|
||||
}
|
||||
|
||||
$t = new Test();
|
||||
$t->arr = array(1, 2, 3);
|
||||
|
||||
try {
|
||||
foreach ($t as $v) {
|
||||
echo "$v\n";
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
; // handle exception
|
||||
}
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Bug #33116 (crash when assigning class name to global variable in __autoload)
|
||||
--FILE--
|
||||
<?php
|
||||
function __autoload($class)
|
||||
{
|
||||
$GLOBALS['include'][] = $class;
|
||||
eval("class DefClass{}");
|
||||
}
|
||||
|
||||
$a = new DefClass;
|
||||
print_r($a);
|
||||
print_r($GLOBALS['include']);
|
||||
?>
|
||||
--EXPECT--
|
||||
DefClass Object
|
||||
(
|
||||
)
|
||||
Array
|
||||
(
|
||||
[0] => DefClass
|
||||
)
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #33171 (foreach enumerates private fields declared in base classes)
|
||||
--FILE--
|
||||
<?php
|
||||
class A
|
||||
{
|
||||
private $c = "A's c";
|
||||
}
|
||||
|
||||
class B extends A
|
||||
{
|
||||
private $c = "B's c";
|
||||
|
||||
public function go()
|
||||
{
|
||||
foreach ($this as $key => $val)
|
||||
{
|
||||
echo "$key => $val\n";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$x = new B;
|
||||
$x->go();
|
||||
?>
|
||||
--EXPECT--
|
||||
c => B's c
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Bug #33243 (ze1_compatibility_mode does not work as expected)
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=1
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
$a->y->z = 0;
|
||||
$b = $a; // should perform deep copy of $a
|
||||
$b->y->z = 1; // hence this should have no effect on $a
|
||||
var_dump($a);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Creating default object from empty value in %sbug33243.php on line 2
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug33243.php on line 3
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug33243.php on line 5
|
||||
object(stdClass)#%d (1) {
|
||||
["y"]=>
|
||||
object(stdClass)#%d (1) {
|
||||
["z"]=>
|
||||
int(0)
|
||||
}
|
||||
}
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Bug #33257 array_splice() inconsistent when passed function instead of variable
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class X {
|
||||
protected static $arr = array("a", "b", "c");
|
||||
public static function getArr() {
|
||||
return self::$arr;
|
||||
}
|
||||
}
|
||||
|
||||
//$arr1 = X::getArr();
|
||||
array_splice(X::getArr(), 1, 1);
|
||||
print_r(X::getArr());
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Only variables should be passed by reference in %sbug33257.php on line 10
|
||||
Array
|
||||
(
|
||||
[0] => a
|
||||
[1] => b
|
||||
[2] => c
|
||||
)
|
||||
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #33277 (private method accessed by child class)
|
||||
--FILE--
|
||||
<?
|
||||
class foo {
|
||||
private function bar() {
|
||||
echo "private!\n";
|
||||
}
|
||||
}
|
||||
|
||||
class fooson extends foo {
|
||||
function barson() {
|
||||
$this->bar();
|
||||
}
|
||||
}
|
||||
|
||||
class foo2son extends fooson {
|
||||
|
||||
function bar() {
|
||||
echo "public!\n";
|
||||
}
|
||||
}
|
||||
|
||||
$b = new foo2son();
|
||||
$b->barson();
|
||||
?>
|
||||
--EXPECT--
|
||||
public!
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Bug #33558 (warning with nested calls to functions returning by reference)
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
function & foo() {
|
||||
$var = 'ok';
|
||||
return $var;
|
||||
}
|
||||
|
||||
function & bar() {
|
||||
return foo();
|
||||
}
|
||||
|
||||
$a =& bar();
|
||||
echo "$a\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
|
||||
Executable
+45
@@ -0,0 +1,45 @@
|
||||
--TEST--
|
||||
Bug #33732 (Wrong behavior of constants in class and interface extending)
|
||||
--FILE--
|
||||
<?php
|
||||
interface iA {
|
||||
const cA = "const of iA\n";
|
||||
}
|
||||
|
||||
class A implements iA {
|
||||
}
|
||||
|
||||
class B extends A implements iA {
|
||||
}
|
||||
|
||||
echo iA::cA;
|
||||
echo A::cA;
|
||||
echo B::cA;
|
||||
|
||||
|
||||
interface iA2 {
|
||||
const cA = "const of iA2\n";
|
||||
}
|
||||
|
||||
interface iB2 extends iA2 {
|
||||
}
|
||||
|
||||
class A2 implements iA2 {
|
||||
}
|
||||
|
||||
class B2 extends A2 implements iB2 {
|
||||
}
|
||||
|
||||
echo iA2::cA;
|
||||
echo A2::cA;
|
||||
echo iB2::cA;
|
||||
echo B2::cA;
|
||||
?>
|
||||
--EXPECT--
|
||||
const of iA
|
||||
const of iA
|
||||
const of iA
|
||||
const of iA2
|
||||
const of iA2
|
||||
const of iA2
|
||||
const of iA2
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Bug #33802 (throw Exception in error handler causes crash)
|
||||
--FILE--
|
||||
<?php
|
||||
set_error_handler('errorHandler', E_USER_ERROR);
|
||||
try{
|
||||
test();
|
||||
}catch(Exception $e){
|
||||
}
|
||||
restore_error_handler();
|
||||
|
||||
function test(){
|
||||
trigger_error("error", E_USER_ERROR);
|
||||
}
|
||||
|
||||
function errorHandler($errno, $errstr, $errfile, $errline) {
|
||||
throw new Exception();
|
||||
}
|
||||
?>
|
||||
ok
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Bug #34062 (Crash in catch block when many arguments are used)
|
||||
--FILE--
|
||||
<?php
|
||||
function f1() { throw new Exception; }
|
||||
function f2() { echo "here\n"; }
|
||||
|
||||
try {
|
||||
// Currently it's the minimum required number of zeros
|
||||
// If you remove one, it won't crash
|
||||
max(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, f1());
|
||||
} catch (Exception $e) {
|
||||
echo "(((\n";
|
||||
f2(0, 0, 0); // Won't crash if less than 3 zeros here
|
||||
echo ")))\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
(((
|
||||
here
|
||||
)))
|
||||
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
--TEST--
|
||||
Bug #34064 (arr[] as param to function in class gives invalid opcode)
|
||||
--FILE--
|
||||
<?php
|
||||
class XmlTest {
|
||||
|
||||
function test_ref(&$test)
|
||||
{
|
||||
$test = "ok";
|
||||
}
|
||||
|
||||
function test($test)
|
||||
{
|
||||
}
|
||||
|
||||
function run()
|
||||
{
|
||||
$ar = array();
|
||||
$this->test_ref($ar[]);
|
||||
var_dump($ar);
|
||||
$this->test($ar[]);
|
||||
}
|
||||
}
|
||||
|
||||
$o = new XmlTest();
|
||||
$o->run();
|
||||
?>
|
||||
--EXPECTF--
|
||||
array(1) {
|
||||
[0]=>
|
||||
string(2) "ok"
|
||||
}
|
||||
|
||||
Fatal error: Cannot use [] for reading in %sbug34064.php on line 18
|
||||
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
--TEST--
|
||||
Bug #34137 (assigning array element by reference causes binary mess)
|
||||
--FILE--
|
||||
<?php
|
||||
$arr1 = array('a1' => array('alfa' => 'ok'));
|
||||
$arr1 =& $arr1['a1'];
|
||||
echo '-'.$arr1['alfa']."-\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
-ok-
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
--TEST--
|
||||
Bug #34199 (if($obj)/if(!$obj) inconsistency because of cast handler)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("simplexml")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$xml = "<root></root>";
|
||||
$xml = simplexml_load_string($xml);
|
||||
$kids = $xml->children();
|
||||
var_dump((bool)$kids);
|
||||
if($kids) echo "bug\n"; else echo "ok\n";
|
||||
if(!$kids) echo "ok\n"; else echo "bug\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
ok
|
||||
ok
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Bug #34260 (Segfault with callbacks (array_map) + overloading)
|
||||
--FILE--
|
||||
<?php
|
||||
class Faulty
|
||||
{
|
||||
function __call($Method,$Args)
|
||||
{
|
||||
switch($Method)
|
||||
{
|
||||
case 'seg':
|
||||
echo "I hate me\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function NormalMethod($Args)
|
||||
{
|
||||
echo "I heart me\n";
|
||||
}
|
||||
}
|
||||
|
||||
$Faulty = new Faulty();
|
||||
$Array = array('Some junk','Some other junk');
|
||||
|
||||
// This causes a seg fault.
|
||||
$Failure = array_map(array($Faulty,'seg'),$Array);
|
||||
|
||||
// This does not.
|
||||
$Failure = array_map(array($Faulty,'NormalMethod'),$Array);
|
||||
?>
|
||||
--EXPECT--
|
||||
I hate me
|
||||
I hate me
|
||||
I heart me
|
||||
I heart me
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #34617 (zend_deactivate: objects_store used after zend_objects_store_destroy is called)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("xml")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
class Thing {}
|
||||
function boom()
|
||||
{
|
||||
$reader = xml_parser_create();
|
||||
xml_set_object($reader, new Thing());
|
||||
die("ok\n");
|
||||
xml_parser_free($reader);
|
||||
}
|
||||
boom();
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Bug #34678 (__call(), is_callable() and static methods)
|
||||
--FILE--
|
||||
<?php
|
||||
class A {
|
||||
public function __call($m, $a) {
|
||||
echo "__call\n";
|
||||
}
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
public static function foo() {
|
||||
echo "foo\n";
|
||||
}
|
||||
}
|
||||
|
||||
if (is_callable(array('B', 'foo'))) {
|
||||
call_user_func(array('B', 'foo'));
|
||||
}
|
||||
if (is_callable(array('A', 'foo'))) {
|
||||
call_user_func(array('A', 'foo'));
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
foo
|
||||
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
bug #34873 (Segmentation Fault on foreach in object)
|
||||
--FILE--
|
||||
<?php
|
||||
class pwa {
|
||||
public $var;
|
||||
|
||||
function __construct(){
|
||||
$this->var = array();
|
||||
}
|
||||
|
||||
function test (){
|
||||
$cont = array();
|
||||
$cont["mykey"] = "myvalue";
|
||||
|
||||
foreach ($cont as $this->var['key'] => $this->var['value'])
|
||||
var_dump($this->var['value']);
|
||||
}
|
||||
}
|
||||
$myPwa = new Pwa();
|
||||
$myPwa->test();
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
string(7) "myvalue"
|
||||
Done
|
||||
Executable
+41
@@ -0,0 +1,41 @@
|
||||
--TEST--
|
||||
Bug #35239 (Objects can lose references)
|
||||
--FILE--
|
||||
<?php
|
||||
$a = new stdClass;
|
||||
$a->x0 = new stdClass;
|
||||
$a->x0->y0 = 'a';
|
||||
$a->x0->y1 =& $a->x0;
|
||||
$a->x0->y2 =& $a->x0;
|
||||
$a->x0->y0 = 'b';
|
||||
var_dump($a);
|
||||
$a->x0->y1 = "ok\n";
|
||||
echo $a->x0;
|
||||
?>
|
||||
--EXPECT--
|
||||
object(stdClass)#1 (1) {
|
||||
["x0"]=>
|
||||
&object(stdClass)#2 (3) {
|
||||
["y0"]=>
|
||||
string(1) "b"
|
||||
["y1"]=>
|
||||
&object(stdClass)#2 (3) {
|
||||
["y0"]=>
|
||||
string(1) "b"
|
||||
["y1"]=>
|
||||
*RECURSION*
|
||||
["y2"]=>
|
||||
*RECURSION*
|
||||
}
|
||||
["y2"]=>
|
||||
&object(stdClass)#2 (3) {
|
||||
["y0"]=>
|
||||
string(1) "b"
|
||||
["y1"]=>
|
||||
*RECURSION*
|
||||
["y2"]=>
|
||||
*RECURSION*
|
||||
}
|
||||
}
|
||||
}
|
||||
ok
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #35437 Segfault or Invalid Opcode 137/1/4
|
||||
--FILE--
|
||||
<?php
|
||||
function err2exception($errno, $errstr)
|
||||
{
|
||||
throw new Exception("Error occuried: " . $errstr);
|
||||
}
|
||||
|
||||
set_error_handler('err2exception');
|
||||
|
||||
class TestClass
|
||||
{
|
||||
function testMethod()
|
||||
{
|
||||
$GLOBALS['t'] = new stdClass;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
TestClass::testMethod();
|
||||
} catch (Exception $e) {
|
||||
echo "Catched: ".$e->getMessage()."\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
Catched: Error occuried: Non-static method TestClass::testMethod() should not be called statically
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #36006 (Problem with $this in __destruct())
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Person {
|
||||
public $dad;
|
||||
public function __destruct() {
|
||||
$this->dad = null; /* no segfault if this is commented out */
|
||||
}
|
||||
}
|
||||
|
||||
class Dad extends Person {
|
||||
public $son;
|
||||
public function __construct() {
|
||||
$this->son = new Person;
|
||||
$this->son->dad = $this; /* no segfault if this is commented out */
|
||||
}
|
||||
public function __destruct() {
|
||||
$this->son = null;
|
||||
parent::__destruct(); /* segfault here */
|
||||
}
|
||||
}
|
||||
|
||||
$o = new Dad;
|
||||
unset($o);
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
--TEST--
|
||||
Bug #36071 (Engine Crash related with 'clone')
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
$a = clone 0;
|
||||
$a[0]->b = 0;
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: __clone method called on non-object in %sbug36071.php on line 2
|
||||
ok
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
--TEST--
|
||||
Bug #36303 (foreach on error_zval produces segfault)
|
||||
--FILE--
|
||||
<?php
|
||||
$x="test";
|
||||
foreach($x->a->b as &$v) {
|
||||
}
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Invalid argument supplied for foreach() in %sbug36303.php on line 3
|
||||
ok
|
||||
Loaded 100 of 1469 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user