mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-10 02:30:50 +00:00
Compare commits
1636
Commits
php-5.0.1b1
...
php-5.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b277a2878 | ||
|
|
8b443a1851 | ||
|
|
b81012c718 | ||
|
|
bd196f4bd0 | ||
|
|
93608bf8a5 | ||
|
|
fc34aa8489 | ||
|
|
e678e7a6af | ||
|
|
e8ec9a98dd | ||
|
|
51e3beb4cb | ||
|
|
934e19107d | ||
|
|
c37b13e0db | ||
|
|
9aebeaaf09 | ||
|
|
b3a48855ab | ||
|
|
331726338b | ||
|
|
497fae9d1f | ||
|
|
ef08c58664 | ||
|
|
339b4dbd6f | ||
|
|
ab6a675131 | ||
|
|
426fb96cc9 | ||
|
|
36d62a2f84 | ||
|
|
0b9f9de012 | ||
|
|
85ad81736c | ||
|
|
1ea0bae9c0 | ||
|
|
57f76446cf | ||
|
|
0f3d8acfd6 | ||
|
|
46ae03d872 | ||
|
|
7241dea7ef | ||
|
|
b6307d1014 | ||
|
|
4e3cd72df5 | ||
|
|
244c9a4ba0 | ||
|
|
c0c096b752 | ||
|
|
366832fbd2 | ||
|
|
4e4b98a66d | ||
|
|
dc0db7382c | ||
|
|
350aec954e | ||
|
|
7107105429 | ||
|
|
17f504a0ec | ||
|
|
70331c361e | ||
|
|
2256ec00ef | ||
|
|
2618322506 | ||
|
|
268ac81e39 | ||
|
|
1d3f0d8891 | ||
|
|
c2d53719c2 | ||
|
|
bb2f034eff | ||
|
|
363b0ce10b | ||
|
|
0a865c89c5 | ||
|
|
94ab6069b8 | ||
|
|
dfdd1e4caf | ||
|
|
2814b749ec | ||
|
|
7aa61c312d | ||
|
|
fb81446ec9 | ||
|
|
aae30f20fc | ||
|
|
8e49bacf95 | ||
|
|
a570981151 | ||
|
|
f5117c81b3 | ||
|
|
a420b562df | ||
|
|
c13c6e4f68 | ||
|
|
4dbac17f9c | ||
|
|
e0ded79c0f | ||
|
|
794c2e8e5d | ||
|
|
b9f0ff7aab | ||
|
|
f7beb9f30c | ||
|
|
1e93bb16e4 | ||
|
|
36d6ddc241 | ||
|
|
7e0dc09703 | ||
|
|
ad7732c0cc | ||
|
|
8c86ea4693 | ||
|
|
2f6cebb206 | ||
|
|
af34ed0d97 | ||
|
|
7f367c9d83 | ||
|
|
0d088689c0 | ||
|
|
80e04c2c35 | ||
|
|
13996df552 | ||
|
|
3db21d2f4c | ||
|
|
a6a9dc2eec | ||
|
|
7243d31ae0 | ||
|
|
19ea8abd09 | ||
|
|
e47c21e0bc | ||
|
|
2bb4d8282c | ||
|
|
4020933726 | ||
|
|
db77890bbd | ||
|
|
abe364335b | ||
|
|
cfeb12ccf5 | ||
|
|
d20fe303b3 | ||
|
|
493c9fcf93 | ||
|
|
60949ca571 | ||
|
|
6ed54ddc79 | ||
|
|
e1fac162a0 | ||
|
|
ae75d4350d | ||
|
|
da2d7e7229 | ||
|
|
110344d65c | ||
|
|
54a5c714ca | ||
|
|
7b073bbad8 | ||
|
|
8b4e1abdb0 | ||
|
|
25558ffdbb | ||
|
|
c21ced1ec9 | ||
|
|
aa749a1269 | ||
|
|
4ba37d04d4 | ||
|
|
4eb9e62209 | ||
|
|
eb0a6a666f | ||
|
|
8f514cd18c | ||
|
|
1340c04976 | ||
|
|
014729d00b | ||
|
|
95c6c6d2cd | ||
|
|
d734669230 | ||
|
|
1a78dc5fbf | ||
|
|
924ae32ddf | ||
|
|
18606377dd | ||
|
|
a0303c772a | ||
|
|
52747127f8 | ||
|
|
c127df868e | ||
|
|
b5c8fcb5fa | ||
|
|
158ebbd9b5 | ||
|
|
da0a76c561 | ||
|
|
f1a8fde76a | ||
|
|
cce5e8c9ea | ||
|
|
9aeb125f4a | ||
|
|
aab9009deb | ||
|
|
209169786a | ||
|
|
6b8bf38333 | ||
|
|
8bd18e174b | ||
|
|
0bd9518f8c | ||
|
|
c95360658f | ||
|
|
f8781c168e | ||
|
|
a7d31c8dac | ||
|
|
b58ed261d7 | ||
|
|
aa9ea59851 | ||
|
|
57e49322a5 | ||
|
|
c4da6009bb | ||
|
|
d3e0b57e1a | ||
|
|
3c19326480 | ||
|
|
23a3fdbf04 | ||
|
|
64931b62cc | ||
|
|
a8c6b992b8 | ||
|
|
5519008169 | ||
|
|
8c100e6451 | ||
|
|
fe306ed1a6 | ||
|
|
241aa9a59d | ||
|
|
cd9e244a68 | ||
|
|
927ea59de3 | ||
|
|
f3f057127b | ||
|
|
592e78ab87 | ||
|
|
71ac32bdb8 | ||
|
|
bd8fe7fcf0 | ||
|
|
f60da5cd5e | ||
|
|
68d1942a9a | ||
|
|
df2c11b731 | ||
|
|
611a05f857 | ||
|
|
64e8f63978 | ||
|
|
00a9f063f8 | ||
|
|
270640283e | ||
|
|
9c14ce94f3 | ||
|
|
134b2718d4 | ||
|
|
8e2de517bb | ||
|
|
bb293e15c3 | ||
|
|
ae1d56d098 | ||
|
|
9e1beb4f1c | ||
|
|
88edad9f08 | ||
|
|
6ec23a56d8 | ||
|
|
261eabbdd4 | ||
|
|
33c650020a | ||
|
|
71ad4dd19b | ||
|
|
15c1b8a3a2 | ||
|
|
c388f97ac9 | ||
|
|
d4a1506d52 | ||
|
|
b03351633a | ||
|
|
04a291d39a | ||
|
|
82814fc852 | ||
|
|
2556b354b3 | ||
|
|
00dfb7dc14 | ||
|
|
00df9b67ce | ||
|
|
bf9a25d0bb | ||
|
|
83bdbe5b53 | ||
|
|
2ca2153a06 | ||
|
|
e464f0f456 | ||
|
|
7ae7cc363a | ||
|
|
528e7869b6 | ||
|
|
72030596ba | ||
|
|
17d16cf2af | ||
|
|
edc87ef840 | ||
|
|
8098790208 | ||
|
|
50ba309495 | ||
|
|
a4bd0d6a25 | ||
|
|
703fc059bf | ||
|
|
496fd1c041 | ||
|
|
435b820f68 | ||
|
|
e02f8809f1 | ||
|
|
1d0b88d316 | ||
|
|
376d4554fb | ||
|
|
623a2021ab | ||
|
|
289402edc6 | ||
|
|
98691ba0c0 | ||
|
|
f803888510 | ||
|
|
fbc6470cb6 | ||
|
|
3d9af317e6 | ||
|
|
6f63c45639 | ||
|
|
e98a40f1fa | ||
|
|
02eb02d1ce | ||
|
|
38c5dd2929 | ||
|
|
dbc09d3325 | ||
|
|
b6fe60ab52 | ||
|
|
6070381f9d | ||
|
|
872661b91d | ||
|
|
b3b9ee1467 | ||
|
|
598f182c29 | ||
|
|
58a14f225d | ||
|
|
890bd3f002 | ||
|
|
0ba24fb65a | ||
|
|
9622ccface | ||
|
|
681405fc4a | ||
|
|
24a80c3ebf | ||
|
|
b74698f135 | ||
|
|
2baf1500e0 | ||
|
|
40c24a65c4 | ||
|
|
138ad7d252 | ||
|
|
e7494a7e9e | ||
|
|
2dc3862c7f | ||
|
|
57510065ce | ||
|
|
cea6a783af | ||
|
|
941a94ead4 | ||
|
|
d22d6910ad | ||
|
|
cc4b453611 | ||
|
|
0139cd0e53 | ||
|
|
7af8089096 | ||
|
|
588d88960c | ||
|
|
c28a9a4e5c | ||
|
|
e0924b7451 | ||
|
|
b2424b2e08 | ||
|
|
9bd48c2e15 | ||
|
|
fad0caaee9 | ||
|
|
579c9abfb3 | ||
|
|
721fec251b | ||
|
|
b05b949a47 | ||
|
|
e9de9f3aeb | ||
|
|
a3cb94abff | ||
|
|
fa406902d5 | ||
|
|
36a14076a8 | ||
|
|
3815b367d5 | ||
|
|
844cb82c45 | ||
|
|
2e8f773eee | ||
|
|
a9cac89541 | ||
|
|
8212034254 | ||
|
|
9ffefbc74e | ||
|
|
7c01510b95 | ||
|
|
3a9cdbfd41 | ||
|
|
bac9ab777e | ||
|
|
ced39e3168 | ||
|
|
dcd7879556 | ||
|
|
97ec02ce81 | ||
|
|
4c98758328 | ||
|
|
5b502880b6 | ||
|
|
51d8950b53 | ||
|
|
b122cd4b08 | ||
|
|
143d1c8011 | ||
|
|
f987de46b4 | ||
|
|
936b1e56c3 | ||
|
|
2486b846cc | ||
|
|
af888a4807 | ||
|
|
a329ecd8c4 | ||
|
|
2af3190a3d | ||
|
|
e13d51cea3 | ||
|
|
2c5c8c161c | ||
|
|
3bbd4b17a9 | ||
|
|
e415260868 | ||
|
|
4d3c8240d5 | ||
|
|
60efdff75f | ||
|
|
9490f1c847 | ||
|
|
a0c8d5d80a | ||
|
|
6b46a441cd | ||
|
|
dda1f722e2 | ||
|
|
57b520541b | ||
|
|
5460d2dad6 | ||
|
|
a0dd931d85 | ||
|
|
f9fb94ff00 | ||
|
|
0a7b720094 | ||
|
|
76ad7425ad | ||
|
|
ea544cf38f | ||
|
|
ecca329c14 | ||
|
|
890f7f46b4 | ||
|
|
23d3ddea25 | ||
|
|
75a548a7e9 | ||
|
|
b260064bbf | ||
|
|
187b6cc583 | ||
|
|
af0adbed39 | ||
|
|
7c3bdf444d | ||
|
|
863bf8a574 | ||
|
|
d4696abdb9 | ||
|
|
e7925c9767 | ||
|
|
159bae3d99 | ||
|
|
5fdeb391f3 | ||
|
|
b0c0b79136 | ||
|
|
ad1f706fda | ||
|
|
a8c338aa65 | ||
|
|
c326593c1a | ||
|
|
03cb8e959b | ||
|
|
d32c6512e1 | ||
|
|
c095e20ca8 | ||
|
|
9269f58477 | ||
|
|
3446a75a36 | ||
|
|
5bb29235dc | ||
|
|
719e78c78f | ||
|
|
382bc9d0e4 | ||
|
|
4d0439e487 | ||
|
|
5916b8dd04 | ||
|
|
5fd4035194 | ||
|
|
e264b8a4d3 | ||
|
|
5ec19bb68c | ||
|
|
4a6faadcce | ||
|
|
6aed41421e | ||
|
|
e5928942ac | ||
|
|
24046edbbb | ||
|
|
cbb928b8eb | ||
|
|
3e46adb183 | ||
|
|
fb57a8363e | ||
|
|
12ff2532c9 | ||
|
|
62ca4594f8 | ||
|
|
bddc4e6c1d | ||
|
|
d8e5ee075f | ||
|
|
e89500cdfb | ||
|
|
5a7596591f | ||
|
|
8b91c8f32e | ||
|
|
03418c1d36 | ||
|
|
5a29be9b7d | ||
|
|
d467331307 | ||
|
|
cdbf1938f2 | ||
|
|
f133b09907 | ||
|
|
fbda9ce9f4 | ||
|
|
197142b3e0 | ||
|
|
8f4112bfdd | ||
|
|
b0f1719ee5 | ||
|
|
cc50a96139 | ||
|
|
8d476ded8e | ||
|
|
e7bd6769df | ||
|
|
8ac5b549e0 | ||
|
|
0893e10ac3 | ||
|
|
33921efc44 | ||
|
|
b343aa9945 | ||
|
|
3c042299e6 | ||
|
|
eb28594aa5 | ||
|
|
a218299d6a | ||
|
|
e6566d9477 | ||
|
|
1017c44f4a | ||
|
|
a03039bade | ||
|
|
d18cdaf6dd | ||
|
|
709f73aea7 | ||
|
|
646500bfe9 | ||
|
|
1e0494a714 | ||
|
|
001f506533 | ||
|
|
4c8afd895a | ||
|
|
7e2bccf776 | ||
|
|
491674bea6 | ||
|
|
c47fb30b5b | ||
|
|
81b8096ea8 | ||
|
|
3fbee80f35 | ||
|
|
428006f54d | ||
|
|
d67821cd02 | ||
|
|
f4371b9cc6 | ||
|
|
4acffedc6b | ||
|
|
cd90395cb6 | ||
|
|
49678f0908 | ||
|
|
25a82d8a5c | ||
|
|
67f27b0aef | ||
|
|
305e946358 | ||
|
|
2580744813 | ||
|
|
2bc716c131 | ||
|
|
0615bf6cb4 | ||
|
|
855f7dfd95 | ||
|
|
28a0aef13e | ||
|
|
c0ec353655 | ||
|
|
ea4734926e | ||
|
|
cc034dcb38 | ||
|
|
ad73bdcbe0 | ||
|
|
bb8e5de181 | ||
|
|
631da59b50 | ||
|
|
062626d03e | ||
|
|
a5cea052e8 | ||
|
|
44205dc58a | ||
|
|
9d79a201f1 | ||
|
|
c61c3dd422 | ||
|
|
a5fe9808aa | ||
|
|
df71093dd8 | ||
|
|
58a0906bf9 | ||
|
|
8152c64c02 | ||
|
|
410e106aae | ||
|
|
3019a1c6a3 | ||
|
|
b94970a3bd | ||
|
|
eef799a6ec | ||
|
|
c797466259 | ||
|
|
ad28ef81c0 | ||
|
|
d41c6dc6d6 | ||
|
|
45794ee259 | ||
|
|
656f02fada | ||
|
|
036f28f115 | ||
|
|
60d70459f3 | ||
|
|
b551a55bca | ||
|
|
b1d0f9bb43 | ||
|
|
0fefec1a35 | ||
|
|
e403b15ebb | ||
|
|
412a28d124 | ||
|
|
24af08eb80 | ||
|
|
91682f88e4 | ||
|
|
a8c5828ce0 | ||
|
|
de03dd6387 | ||
|
|
bc81f55541 | ||
|
|
303a642a0d | ||
|
|
5dd9ad8f53 | ||
|
|
5ef3e0c57b | ||
|
|
94238838cf | ||
|
|
11f0ff9c1a | ||
|
|
7357ac0b96 | ||
|
|
e3c8bd51de | ||
|
|
470da4e960 | ||
|
|
5e46f636a5 | ||
|
|
faf80a4035 | ||
|
|
1f7c9e197c | ||
|
|
6df3e40977 | ||
|
|
2cbe63513c | ||
|
|
e011229598 | ||
|
|
969f05a709 | ||
|
|
595ee08653 | ||
|
|
6b0de601be | ||
|
|
d8bb2766a8 | ||
|
|
fa3394eccb | ||
|
|
dec65f584b | ||
|
|
abe0e61801 | ||
|
|
35c82a75eb | ||
|
|
e58513c4d0 | ||
|
|
71bd44ac02 | ||
|
|
d3dc0a39bc | ||
|
|
e1791bedd5 | ||
|
|
6eaf1671b5 | ||
|
|
f42742f796 | ||
|
|
cb83e27b02 | ||
|
|
93ffc14028 | ||
|
|
b33c2d9b17 | ||
|
|
8a929e054e | ||
|
|
b29b16af2e | ||
|
|
3ced246dfc | ||
|
|
3282497f82 | ||
|
|
bcf354a97a | ||
|
|
3abc925a8a | ||
|
|
e1661efced | ||
|
|
1f6debba12 | ||
|
|
33a91ad309 | ||
|
|
c3678550a3 | ||
|
|
6cbe6d7d52 | ||
|
|
f2ed06347b | ||
|
|
1b8ecbcf54 | ||
|
|
e0e9b5ac39 | ||
|
|
3d8dc4d3b1 | ||
|
|
0a50368580 | ||
|
|
4d631ec31b | ||
|
|
6df490d0ca | ||
|
|
262cbbe8d0 | ||
|
|
ffe605f2ed | ||
|
|
1c667a88e7 | ||
|
|
061ff97f69 | ||
|
|
308a64bc08 | ||
|
|
42728f947c | ||
|
|
0a2e6f723e | ||
|
|
8a5bd01a44 | ||
|
|
31f8d7dc20 | ||
|
|
48d9adc3f0 | ||
|
|
e117d540d1 | ||
|
|
afccca77dd | ||
|
|
d09fbaa495 | ||
|
|
184309c2e9 | ||
|
|
594fd87ca7 | ||
|
|
728acc3785 | ||
|
|
9a0bed9863 | ||
|
|
612dab64ee | ||
|
|
b76dcd68ee | ||
|
|
a750f195cd | ||
|
|
991a29cfd6 | ||
|
|
ca9dd7d826 | ||
|
|
0ea0e1615f | ||
|
|
224e1f50ae | ||
|
|
6333f71ea3 | ||
|
|
c19322869b | ||
|
|
ba3862b369 | ||
|
|
13dc73940d | ||
|
|
69722777a0 | ||
|
|
08b5c498ce | ||
|
|
932346c00f | ||
|
|
56f006a998 | ||
|
|
4c4b955dce | ||
|
|
655743c4e7 | ||
|
|
91e31d0243 | ||
|
|
dfc8044098 | ||
|
|
69f0675a35 | ||
|
|
b47525e508 | ||
|
|
941ac55d2f | ||
|
|
09540ee965 | ||
|
|
e2599c3dbf | ||
|
|
1a04335ec2 | ||
|
|
ba5f66777e | ||
|
|
386a3b9305 | ||
|
|
4329db25a1 | ||
|
|
72857b6dbb | ||
|
|
c0cb5a83bf | ||
|
|
006922ba18 | ||
|
|
ef04eea493 | ||
|
|
846b0826ab | ||
|
|
15c9f414a6 | ||
|
|
c508b5e66a | ||
|
|
9daaedc125 | ||
|
|
049882f29c | ||
|
|
f4a15e4fb8 | ||
|
|
d696f11814 | ||
|
|
57641c166f | ||
|
|
fdd42afa6c | ||
|
|
fab0baa274 | ||
|
|
06550ce8e0 | ||
|
|
2352850c52 | ||
|
|
1536082186 | ||
|
|
a349428685 | ||
|
|
4fb5b322ee | ||
|
|
3905ce46d9 | ||
|
|
4f7d14f8d9 | ||
|
|
6cc5e191d0 | ||
|
|
0d9bc3a679 | ||
|
|
ba8a8d9f25 | ||
|
|
4566f48777 | ||
|
|
c81c189198 | ||
|
|
a952406eb3 | ||
|
|
35b7ad00a6 | ||
|
|
6cf5be04d6 | ||
|
|
a3a2fe37af | ||
|
|
09f0161160 | ||
|
|
e3a1bf1e62 | ||
|
|
5ece2f6369 | ||
|
|
d38a901189 | ||
|
|
5337c02684 | ||
|
|
b5017bd725 | ||
|
|
d6c7d9630b | ||
|
|
0dce979bfc | ||
|
|
eef28dacec | ||
|
|
8524b33feb | ||
|
|
f8e8c5534b | ||
|
|
0823526afe | ||
|
|
f0c27e68b2 | ||
|
|
cd63787e9a | ||
|
|
8bba75f0f8 | ||
|
|
f3c44f6065 | ||
|
|
a72a517e2f | ||
|
|
0988162649 | ||
|
|
3d41ebf595 | ||
|
|
20c3266588 | ||
|
|
999a7acd71 | ||
|
|
967413c58c | ||
|
|
5e33a09f20 | ||
|
|
a51fc50b6e | ||
|
|
ddf3f9b068 | ||
|
|
529263d680 | ||
|
|
de6b4c0091 | ||
|
|
4dff36f6b4 | ||
|
|
bcb70109d2 | ||
|
|
462940cbb0 | ||
|
|
08a6122f54 | ||
|
|
fe9db9ab0a | ||
|
|
bfe844e41e | ||
|
|
9986219353 | ||
|
|
33d913d9da | ||
|
|
5eb6b78c90 | ||
|
|
e26ae04d5f | ||
|
|
9d3ac92729 | ||
|
|
0ce7487110 | ||
|
|
46488c8bb4 | ||
|
|
116584297a | ||
|
|
9a1c6c55b8 | ||
|
|
c3a79b5990 | ||
|
|
8acd34d6d8 | ||
|
|
d1ee4b407c | ||
|
|
7d918fae4c | ||
|
|
7e762989e7 | ||
|
|
87071cf1d6 | ||
|
|
3eb6167902 | ||
|
|
21e809b7be | ||
|
|
3fd2e85458 | ||
|
|
4b9b5505f0 | ||
|
|
f43767b249 | ||
|
|
27763b3666 | ||
|
|
e4a4ab60c7 | ||
|
|
8cf678c306 | ||
|
|
1bf64add7b | ||
|
|
595e93be27 | ||
|
|
69edc17192 | ||
|
|
ae281c372a | ||
|
|
7199bc5f86 | ||
|
|
c0ffebcee6 | ||
|
|
eb7e9b6bfc | ||
|
|
5ca5efcdda | ||
|
|
ca8596ab83 | ||
|
|
3fab7a3ed6 | ||
|
|
a29501195f | ||
|
|
b4dd030782 | ||
|
|
a5f0cbed44 | ||
|
|
650b76e542 | ||
|
|
d5809b85f9 | ||
|
|
dc929d011c | ||
|
|
766e4b3c15 | ||
|
|
bab59278d7 | ||
|
|
c221e148d7 | ||
|
|
d3f03cc468 | ||
|
|
bd7a277d48 | ||
|
|
196e54fc43 | ||
|
|
09f89c8cb0 | ||
|
|
2a7bd2b823 | ||
|
|
9d1f2f30d3 | ||
|
|
9a74c68a4c | ||
|
|
21698c12fe | ||
|
|
90236679e9 | ||
|
|
5682438549 | ||
|
|
8dc3e7b147 | ||
|
|
9e9f413aeb | ||
|
|
af01525d1e | ||
|
|
be945f9fe2 | ||
|
|
81151a5dbf | ||
|
|
497c7714e6 | ||
|
|
77d3a41f8a | ||
|
|
1e37cc7b82 | ||
|
|
a55c4799aa | ||
|
|
e53f6428ac | ||
|
|
f4007c8f6b | ||
|
|
edc39221c0 | ||
|
|
5f47b4178e | ||
|
|
e9c81e4983 | ||
|
|
9c252b4b07 | ||
|
|
2d16ed7706 | ||
|
|
efe24c0205 | ||
|
|
6b0d0f7ceb | ||
|
|
7262ccfac9 | ||
|
|
0730fa2af9 | ||
|
|
9305339d94 | ||
|
|
26bf79a15e | ||
|
|
b5e2cc5197 | ||
|
|
06e3607102 | ||
|
|
6818826bbd | ||
|
|
25c6fbe515 | ||
|
|
42fb30298c | ||
|
|
46783871e3 | ||
|
|
6ed7a799af | ||
|
|
38a52c5b0d | ||
|
|
8a39d704c4 | ||
|
|
7f293b91b4 | ||
|
|
caa9702a5a | ||
|
|
a022e10c2d | ||
|
|
a3c168239d | ||
|
|
27df981727 | ||
|
|
020f1ba949 | ||
|
|
1ee421ff66 | ||
|
|
635d65ab4e | ||
|
|
084ab84411 | ||
|
|
222900c4b0 | ||
|
|
d1be6c8152 | ||
|
|
b6be0f9817 | ||
|
|
60b1f64cc7 | ||
|
|
4e1b287b82 | ||
|
|
38317bb3bd | ||
|
|
6bc126681c | ||
|
|
bd30309d65 | ||
|
|
0eabbc9f89 | ||
|
|
a8355965bb | ||
|
|
2b32ff53cd | ||
|
|
abcfcd3f2e | ||
|
|
1890173d8c | ||
|
|
8c4d1f6657 | ||
|
|
bb35f045df | ||
|
|
00566c3949 | ||
|
|
321732227f | ||
|
|
170ef60d6f | ||
|
|
96873fecef | ||
|
|
6319efa013 | ||
|
|
44840ace8e | ||
|
|
a4673bd7b7 | ||
|
|
5f8809907a | ||
|
|
64cfbf539f | ||
|
|
248c30dad7 | ||
|
|
1978e9109f | ||
|
|
41901d127c | ||
|
|
4f161fe289 | ||
|
|
7fda1750f1 | ||
|
|
9057102e6e | ||
|
|
e615889d6b | ||
|
|
5253ea11de | ||
|
|
40f971b5b6 | ||
|
|
248345d920 | ||
|
|
655cb3aaf7 | ||
|
|
156a899e4a | ||
|
|
28796e9aa6 | ||
|
|
ab78a63357 | ||
|
|
2ec2739c19 | ||
|
|
b08c3d880e | ||
|
|
307ec8ece4 | ||
|
|
9230473cd3 | ||
|
|
d1a4819c09 | ||
|
|
7c37c2c37e | ||
|
|
b247dc3418 | ||
|
|
43f63e4753 | ||
|
|
99baa01aac | ||
|
|
0e2491f553 | ||
|
|
cf39bec447 | ||
|
|
7230be4951 | ||
|
|
ba38b8a9c9 | ||
|
|
5fc9d15692 | ||
|
|
805ca9c51f | ||
|
|
f02aa075cb | ||
|
|
c6aae12cc1 | ||
|
|
3a21310f37 | ||
|
|
1b02f3ec31 | ||
|
|
2b53e96832 | ||
|
|
11eeb0c3ac | ||
|
|
0c4867144a | ||
|
|
5dd6467bd0 | ||
|
|
a596d53131 | ||
|
|
b842d8e3d8 | ||
|
|
980b9be4b4 | ||
|
|
293beeb74a | ||
|
|
2e4c7dbb03 | ||
|
|
ce6abe492c | ||
|
|
4f89b2e0cb | ||
|
|
d3326d5b26 | ||
|
|
30b14ee8e9 | ||
|
|
e96c51a175 | ||
|
|
164b4ad4dd | ||
|
|
da4096c210 | ||
|
|
19dc0411f7 | ||
|
|
9e0ed1cb67 | ||
|
|
82d8cfb681 | ||
|
|
31dcd92f46 | ||
|
|
ae8a3a0f9e | ||
|
|
de247c88cd | ||
|
|
e5c570997e | ||
|
|
b8cc3a9c32 | ||
|
|
33df597531 | ||
|
|
daa209297d | ||
|
|
f4eb5095a6 | ||
|
|
f7ef84c32d | ||
|
|
b31ff96be9 | ||
|
|
3b329a9926 | ||
|
|
4e798f6e02 | ||
|
|
9477097564 | ||
|
|
75d362225c | ||
|
|
286d53397a | ||
|
|
a23aec662c | ||
|
|
e134382a71 | ||
|
|
94c7fd0603 | ||
|
|
1dd48ca039 | ||
|
|
f286018dd0 | ||
|
|
617716b171 | ||
|
|
690f2ab5ed | ||
|
|
976edd47e2 | ||
|
|
5516735c88 | ||
|
|
cf1b4cf673 | ||
|
|
e8b05734be | ||
|
|
5610ad29e3 | ||
|
|
23d4f9882f | ||
|
|
ca24e21972 | ||
|
|
2c6d0f8c48 | ||
|
|
496bc9fce3 | ||
|
|
d327027ea9 | ||
|
|
81b6d3e725 | ||
|
|
9711fbace9 | ||
|
|
a47eec0754 | ||
|
|
8bdc4285aa | ||
|
|
bbd37d99e1 | ||
|
|
0d993d2172 | ||
|
|
812c1e0475 | ||
|
|
e46cd60d89 | ||
|
|
a0d479994f | ||
|
|
b31f168184 | ||
|
|
54df2c9d36 | ||
|
|
4ddaf76efc | ||
|
|
417f113940 | ||
|
|
0941045fcc | ||
|
|
e274f52bbf | ||
|
|
2f594ec2b3 | ||
|
|
6c87db9e99 | ||
|
|
974adb419a | ||
|
|
565c7708ca | ||
|
|
256e6e3350 | ||
|
|
c792839d8f | ||
|
|
9aa81a786b | ||
|
|
ba8cfb4a93 | ||
|
|
2a37a0c495 | ||
|
|
daba35fead | ||
|
|
ebd4ab4d78 | ||
|
|
779e6d203e | ||
|
|
3bc9bc5de8 | ||
|
|
54931f5259 | ||
|
|
96d755978c | ||
|
|
f0f1557998 | ||
|
|
1a29376c07 | ||
|
|
995c3002aa | ||
|
|
1c7eb15eea | ||
|
|
d55f456497 | ||
|
|
96dfe589fe | ||
|
|
eeecc8a015 | ||
|
|
01d8e59d3b | ||
|
|
4571221d8e | ||
|
|
e623e5352d | ||
|
|
1a7524d7c6 | ||
|
|
0030ec7f4e | ||
|
|
1b31cbdf1a | ||
|
|
52e03bc612 | ||
|
|
030542c238 | ||
|
|
2e4d679629 | ||
|
|
4ad526693c | ||
|
|
d4fd9a58cf | ||
|
|
98f245e5f9 | ||
|
|
000a9e3015 | ||
|
|
919b0bd5b4 | ||
|
|
ee5fd96e37 | ||
|
|
0f2986fe9d | ||
|
|
c9103e18b0 | ||
|
|
621238a3c3 | ||
|
|
9a469dadd5 | ||
|
|
34f1c973a9 | ||
|
|
df5cfe27b4 | ||
|
|
757a76df3f | ||
|
|
3052233876 | ||
|
|
c59d0aeb0a | ||
|
|
47ae4b0cb9 | ||
|
|
c1fee15561 | ||
|
|
46854447c5 | ||
|
|
ae7ba4bf58 | ||
|
|
a26f8ca351 | ||
|
|
e451fb4a42 | ||
|
|
b345d31ffd | ||
|
|
017df4e790 | ||
|
|
b80eaf1721 | ||
|
|
97d493effb | ||
|
|
6e5ddd7b30 | ||
|
|
36cc9d0d42 | ||
|
|
c47f0cc73b | ||
|
|
f25c366a73 | ||
|
|
313ff9998e | ||
|
|
dcc18b6d6f | ||
|
|
7675a85828 | ||
|
|
2f4ee2fc86 | ||
|
|
806961aeee | ||
|
|
91860cf594 | ||
|
|
894237d531 | ||
|
|
8864ad2606 | ||
|
|
4b0c39887c | ||
|
|
9270751a7f | ||
|
|
32d69c853a | ||
|
|
3982f722c2 | ||
|
|
c10d6d3c89 | ||
|
|
d77c684c42 | ||
|
|
a744a6feb5 | ||
|
|
85d77d8cea | ||
|
|
7ba278b7b2 | ||
|
|
f3d9a1adbd | ||
|
|
b87970a956 | ||
|
|
aafc593eb5 | ||
|
|
98e70ab585 | ||
|
|
23e4102e95 | ||
|
|
3887a6e835 | ||
|
|
ecc34bddcc | ||
|
|
23e671a51e | ||
|
|
ce32c4ece7 | ||
|
|
916815b779 | ||
|
|
b732622dfa | ||
|
|
b711486feb | ||
|
|
20241fe16a | ||
|
|
d1623186d5 | ||
|
|
ef28855f4e | ||
|
|
46a669b7fa | ||
|
|
650cdaed12 | ||
|
|
990f7043d9 | ||
|
|
9f6e05964f | ||
|
|
3593a55341 | ||
|
|
b529831df8 | ||
|
|
c9571d7786 | ||
|
|
71df205907 | ||
|
|
cc3ceea197 | ||
|
|
cf7089972f | ||
|
|
fb5f1b7fad | ||
|
|
88fcc4859f | ||
|
|
d8cf02edb3 | ||
|
|
1066066436 | ||
|
|
cf6bb99723 | ||
|
|
a5efa0d4c3 | ||
|
|
560ac37280 | ||
|
|
a78730c257 | ||
|
|
ac19a759b6 | ||
|
|
57be0d2ed7 | ||
|
|
0cbcd08e7c | ||
|
|
f6ec1b481e | ||
|
|
4f4f52d8b0 | ||
|
|
ef11786501 | ||
|
|
be10050d8f | ||
|
|
3c8d91f558 | ||
|
|
8fdec883ab | ||
|
|
4b935b9a8a | ||
|
|
1564872062 | ||
|
|
0bb094e52b | ||
|
|
ea71e02c7a | ||
|
|
70f72d39e4 | ||
|
|
22db404132 | ||
|
|
f66d5f0cc5 | ||
|
|
b325b340b7 | ||
|
|
a5c41b2c8e | ||
|
|
4b0cdf8cd4 | ||
|
|
3e3d9e941e | ||
|
|
97c460c813 | ||
|
|
49787c93be | ||
|
|
a2c0f11235 | ||
|
|
9c392835de | ||
|
|
0b34e041e3 | ||
|
|
d608181dc7 | ||
|
|
53e5260662 | ||
|
|
0a89e44ed7 | ||
|
|
83b5eb54c4 | ||
|
|
e78ea8251a | ||
|
|
1de8a4c08c | ||
|
|
a935b06236 | ||
|
|
b3685eef5a | ||
|
|
7f1e8292d7 | ||
|
|
98694f919c | ||
|
|
882cb200cc | ||
|
|
7e071d9a1f | ||
|
|
3674649c59 | ||
|
|
bf85bf515e | ||
|
|
a6f0d99e5b | ||
|
|
594dadf9ae | ||
|
|
bed55bd176 | ||
|
|
b87c4b6abe | ||
|
|
32cf3cc19f | ||
|
|
dcac8e1a44 | ||
|
|
9b73ab50b6 | ||
|
|
eab79e8de6 | ||
|
|
73d7fb493c | ||
|
|
f7c0b7d09e | ||
|
|
ba77f8515b | ||
|
|
163c92510a | ||
|
|
2d920f6848 | ||
|
|
86d81fd743 | ||
|
|
f2874cf737 | ||
|
|
2a8cd27f4e | ||
|
|
a29793c4d2 | ||
|
|
3a5eca2bae | ||
|
|
b77cefd588 | ||
|
|
884c97d4d7 | ||
|
|
c35454440c | ||
|
|
1fad73d13d | ||
|
|
e8ea32a789 | ||
|
|
c6018b85c4 | ||
|
|
ae1fa04899 | ||
|
|
b1183590e9 | ||
|
|
beee0d14a0 | ||
|
|
bc80bdb973 | ||
|
|
0a494976c5 | ||
|
|
66125c18a3 | ||
|
|
63d0774ed6 | ||
|
|
29bf2d3a09 | ||
|
|
9859780570 | ||
|
|
84f28ce6c1 | ||
|
|
03897956b2 | ||
|
|
813bd67320 | ||
|
|
d8eece2b43 | ||
|
|
e4b07b3ebe | ||
|
|
99cb1b8004 | ||
|
|
1c82ec11a1 | ||
|
|
b19c520142 | ||
|
|
cfe1dc3b46 | ||
|
|
882503110d | ||
|
|
3560bb9c2b | ||
|
|
3db688c6c9 | ||
|
|
e11fc8bda4 | ||
|
|
6b5f4da085 | ||
|
|
8a3d3aefbb | ||
|
|
e4b1fb6455 | ||
|
|
22181d6451 | ||
|
|
0f3e95b926 | ||
|
|
4b6d351cd3 | ||
|
|
e07d2f4803 | ||
|
|
3102638061 | ||
|
|
e6c1ff254d | ||
|
|
efcfe44299 | ||
|
|
1b31dfb160 | ||
|
|
ec50ec65b9 | ||
|
|
08891a1c1b | ||
|
|
99d8090cb2 | ||
|
|
97e8c6f4a9 | ||
|
|
79f3cb9856 | ||
|
|
9438584d76 | ||
|
|
1e1d2e2b0d | ||
|
|
8adbc92d4b | ||
|
|
0e8430bc78 | ||
|
|
40a049b27e | ||
|
|
dd3d739cc6 | ||
|
|
bf75124011 | ||
|
|
b8eb8bc7d5 | ||
|
|
3b5af6d43f | ||
|
|
897090c01e | ||
|
|
27c24383ee | ||
|
|
546418a66b | ||
|
|
d4348d11dd | ||
|
|
3ebfbe6bd2 | ||
|
|
6e7a8f10d1 | ||
|
|
43c1a1b73c | ||
|
|
7aca138456 | ||
|
|
a59f50faca | ||
|
|
e568ea3277 | ||
|
|
96a273a10d | ||
|
|
db138c59d4 | ||
|
|
936e199d38 | ||
|
|
e77c65f081 | ||
|
|
ec58143e93 | ||
|
|
a9cd02c033 | ||
|
|
70bd938bbd | ||
|
|
e63d1706cf | ||
|
|
be88f5a960 | ||
|
|
d9826ec143 | ||
|
|
7f053e062c | ||
|
|
4854dd71de | ||
|
|
8c57c3a9fe | ||
|
|
a6931b3923 | ||
|
|
c4ba9edd57 | ||
|
|
f90bdf8933 | ||
|
|
d7baf87c61 | ||
|
|
d8415108b4 | ||
|
|
75e6dd1c61 | ||
|
|
8cea6123e9 | ||
|
|
890b1602fb | ||
|
|
ef4931f627 | ||
|
|
503330fb88 | ||
|
|
70ec0f41ac | ||
|
|
62c47d1778 | ||
|
|
c1e73b4a67 | ||
|
|
96fc6717e9 | ||
|
|
7316ee0399 | ||
|
|
dfeddbe539 | ||
|
|
5d762d93be | ||
|
|
2889c497f5 | ||
|
|
191c216bea | ||
|
|
c0365c3134 | ||
|
|
d77acff66f | ||
|
|
032d0962c2 | ||
|
|
a62e9a01b0 | ||
|
|
d0ec239661 | ||
|
|
869d6002d6 | ||
|
|
67a66b858f | ||
|
|
384a96faf6 | ||
|
|
cdd43e622d | ||
|
|
7d1b4145b1 | ||
|
|
6be7584eba | ||
|
|
bdf2753ee8 | ||
|
|
a007ddb190 | ||
|
|
8452176fba | ||
|
|
8c446726cf | ||
|
|
fc48f9096d | ||
|
|
d025a14d33 | ||
|
|
695e195a27 | ||
|
|
fbc568013a | ||
|
|
0601249f82 | ||
|
|
ec940d4d5a | ||
|
|
29894e4446 | ||
|
|
45f624adc4 | ||
|
|
85e237888c | ||
|
|
bc9bc3972c | ||
|
|
df44615339 | ||
|
|
917eefc3ff | ||
|
|
ada35ab562 | ||
|
|
2f390c25d8 | ||
|
|
be8fe97cb4 | ||
|
|
502b00c3f6 | ||
|
|
2fdbd380ba | ||
|
|
f030fe2f3a | ||
|
|
897818e1a0 | ||
|
|
5232c4a544 | ||
|
|
8899425e26 | ||
|
|
fa4ea0fff4 | ||
|
|
0131b2b032 | ||
|
|
9aabcf7016 | ||
|
|
3e5ddd2a80 | ||
|
|
04dd0e1094 | ||
|
|
bf9288d457 | ||
|
|
93962139fb | ||
|
|
9caaee66bd | ||
|
|
2f558a3798 | ||
|
|
c25b8a3699 | ||
|
|
212299c1fa | ||
|
|
0562581de8 | ||
|
|
9240c5f521 | ||
|
|
1bd3483dea | ||
|
|
4f22ac0cdd | ||
|
|
664ebfa499 | ||
|
|
f5a09e87ee | ||
|
|
8a9fc3439a | ||
|
|
e21f5f9592 | ||
|
|
b3aa24ff98 | ||
|
|
9749926224 | ||
|
|
6f1261c70c | ||
|
|
9dde2b0cbe | ||
|
|
35df0e5571 | ||
|
|
21ed9234a0 | ||
|
|
08f8fcf8f4 | ||
|
|
0d7fa88b4e | ||
|
|
000ef9c4b5 | ||
|
|
54866c02ff | ||
|
|
31de8e9018 | ||
|
|
55ab9b75a6 | ||
|
|
2711d70d33 | ||
|
|
5602a5ba65 | ||
|
|
3d373f86f0 | ||
|
|
44713e7b63 | ||
|
|
eb4aff5a91 | ||
|
|
4c18dfc852 | ||
|
|
f21084cb0b | ||
|
|
858d827790 | ||
|
|
df60983b75 | ||
|
|
d3a9f93111 | ||
|
|
c58e878513 | ||
|
|
007f571beb | ||
|
|
ba66cac1cf | ||
|
|
c2f3636cf2 | ||
|
|
d3b653e97b | ||
|
|
5fe5da90ea | ||
|
|
60ce60d395 | ||
|
|
15e772ce13 | ||
|
|
fcee086982 | ||
|
|
0b1931a8ff | ||
|
|
c0d7215b81 | ||
|
|
6ee00c8199 | ||
|
|
ca59b1158e | ||
|
|
8d743e70e0 | ||
|
|
c1717ed8e6 | ||
|
|
7976182b94 | ||
|
|
168b6500fd | ||
|
|
6377c0ccca | ||
|
|
38e4fb09e0 | ||
|
|
512af63a63 | ||
|
|
dec54a98fa | ||
|
|
38a02b6244 | ||
|
|
2301d93156 | ||
|
|
bf020f87e1 | ||
|
|
046635075b | ||
|
|
529d8177fe | ||
|
|
8f31f0cfaa | ||
|
|
206c7b8372 | ||
|
|
ab1ba644db | ||
|
|
057e1973c7 | ||
|
|
8e30a80733 | ||
|
|
eb7dc34bfb | ||
|
|
592a0835fa | ||
|
|
39379b8f58 | ||
|
|
d705522bbe | ||
|
|
76a447c900 | ||
|
|
a7e85b3c07 | ||
|
|
c17e7e896e | ||
|
|
7f7c80babf | ||
|
|
3fea0b7b8c | ||
|
|
b8bcdbc5f6 | ||
|
|
49c1882837 | ||
|
|
ef7bd06657 | ||
|
|
71d28a82cf | ||
|
|
b2141b04d2 | ||
|
|
b0e700524f | ||
|
|
5156c7b38f | ||
|
|
e7b930ea9a | ||
|
|
bcd201f522 | ||
|
|
da7d537d49 | ||
|
|
22896664a8 | ||
|
|
294a44a9cb | ||
|
|
f51e1c2064 | ||
|
|
345e0255b5 | ||
|
|
307f622817 | ||
|
|
82da3f5074 | ||
|
|
5fe199fb0f | ||
|
|
4580a7fd8e | ||
|
|
9d37c58059 | ||
|
|
721687e11c | ||
|
|
b7459aaf7d | ||
|
|
3baf1f7632 | ||
|
|
d9c1a380ad | ||
|
|
3c5b9a6e6a | ||
|
|
86028ad122 | ||
|
|
703c55577b | ||
|
|
3fbb2081a1 | ||
|
|
dc09c2ef9c | ||
|
|
c80b4c7440 | ||
|
|
32663f7da7 | ||
|
|
618afbdfc8 | ||
|
|
626d318f07 | ||
|
|
fff515bc46 | ||
|
|
1095da42e0 | ||
|
|
ce3c90414b | ||
|
|
6c332449f9 | ||
|
|
09d433a349 | ||
|
|
f94f36fee8 | ||
|
|
6253c6c5e1 | ||
|
|
93024bc268 | ||
|
|
68caaadc6a | ||
|
|
576ff830a9 | ||
|
|
f4681fd86b | ||
|
|
0eb0b781e0 | ||
|
|
b27d49579a | ||
|
|
27caee32bd | ||
|
|
8b3becf06c | ||
|
|
958803655e | ||
|
|
e61dfb0213 | ||
|
|
8de3367453 | ||
|
|
04b1b727dd | ||
|
|
3064cb787d | ||
|
|
10e1eecf3f | ||
|
|
bcb447f6b8 | ||
|
|
56dd9f5731 | ||
|
|
e7217e032c | ||
|
|
30c916f21a | ||
|
|
277f9357f4 | ||
|
|
1f52d756fd | ||
|
|
61d6c4e616 | ||
|
|
72a75a87ea | ||
|
|
e39f37d36b | ||
|
|
35dbaea547 | ||
|
|
7b610aba35 | ||
|
|
14dbb2dfe9 | ||
|
|
5b84ae26ab | ||
|
|
c477a0b181 | ||
|
|
887f44a9dd | ||
|
|
a81e8ae358 | ||
|
|
aa5084d17b | ||
|
|
c933634253 | ||
|
|
d75d455737 | ||
|
|
312a8eede3 | ||
|
|
43c84919be | ||
|
|
319cbe1c5a | ||
|
|
17b877a772 | ||
|
|
d9248ab10e | ||
|
|
bf23d8d2b8 | ||
|
|
901419d028 | ||
|
|
95e3f66299 | ||
|
|
69feece2bc | ||
|
|
343af548a6 | ||
|
|
1b9b6312c3 | ||
|
|
531c8b9f8c | ||
|
|
73dd4043b3 | ||
|
|
d647e000a7 | ||
|
|
6ba4559b51 | ||
|
|
498c2c7f3b | ||
|
|
1d33a3e95e | ||
|
|
43210250ea | ||
|
|
346c090924 | ||
|
|
effc5f1927 | ||
|
|
3334de5fa2 | ||
|
|
45ae792d08 | ||
|
|
19b6ffed3c | ||
|
|
422f14cb0f | ||
|
|
8aa3554d19 | ||
|
|
0ef991e5ae | ||
|
|
dda7692c87 | ||
|
|
34c4ac7bac | ||
|
|
b440eb4b45 | ||
|
|
2e9d063814 | ||
|
|
d3c83378eb | ||
|
|
ed02f202f0 | ||
|
|
f4b5a51952 | ||
|
|
d3c337e59d | ||
|
|
fa9fdbeeac | ||
|
|
d4a158260b | ||
|
|
75cfa5c2e0 | ||
|
|
d7e5dfb2de | ||
|
|
6649a16c3d | ||
|
|
9ac84b2f1a | ||
|
|
2b47899981 | ||
|
|
1bbab25455 | ||
|
|
6fd9e5a64f | ||
|
|
e273318d76 | ||
|
|
03c835464f | ||
|
|
aeeda84714 | ||
|
|
230d5bc4fc | ||
|
|
00855fcc34 | ||
|
|
f05de12fcf | ||
|
|
7ef1a91508 | ||
|
|
5d65789877 | ||
|
|
1a10666b08 | ||
|
|
6b4910b028 | ||
|
|
e70b3a94f4 | ||
|
|
fe81fa0338 | ||
|
|
e6820914ff | ||
|
|
98a2eeacc7 | ||
|
|
6e4d1b9be6 | ||
|
|
eab2cdedd3 | ||
|
|
4ae7321f3e | ||
|
|
6833acff23 | ||
|
|
f7fe18dde4 | ||
|
|
7575ef4778 | ||
|
|
138b4435dd | ||
|
|
e155585e6e | ||
|
|
2e79463120 | ||
|
|
c6cbbdb335 | ||
|
|
e614839111 | ||
|
|
7d02c9dcb2 | ||
|
|
efc6ccaa01 | ||
|
|
07862d7218 | ||
|
|
6cea418c31 | ||
|
|
2ca2dc0b08 | ||
|
|
9518bae116 | ||
|
|
340bcffdf0 | ||
|
|
384c52faee | ||
|
|
33218e6b24 | ||
|
|
3f2f79936c | ||
|
|
613d30f215 | ||
|
|
e4860af785 | ||
|
|
e7de7ff9e2 | ||
|
|
aa202a7e93 | ||
|
|
21e17d7ec0 | ||
|
|
7022fbae55 | ||
|
|
8c77d2a6ca | ||
|
|
ce3b796f90 | ||
|
|
c49718f601 | ||
|
|
c8442648aa | ||
|
|
f4667ee268 | ||
|
|
58379a1d6c | ||
|
|
c98c136297 | ||
|
|
98af84b898 | ||
|
|
e1f398a216 | ||
|
|
d6d7b57b9b | ||
|
|
44c021d851 | ||
|
|
f5aeda2971 | ||
|
|
fb0c96d07b | ||
|
|
9727e938ee | ||
|
|
f8438519e6 | ||
|
|
3e489fe078 | ||
|
|
b91a49ef84 | ||
|
|
fa6c536c26 | ||
|
|
a66eb331f0 | ||
|
|
aa88cd901f | ||
|
|
a8949a5f0e | ||
|
|
0cf082db67 | ||
|
|
7e58c96022 | ||
|
|
faa3fd4ae0 | ||
|
|
dcca4db029 | ||
|
|
28e76fe7f4 | ||
|
|
c06fbbf0c4 | ||
|
|
3137e1e422 | ||
|
|
8c0dc5e887 | ||
|
|
b95ec3528a | ||
|
|
7410964887 | ||
|
|
e3601d22a7 | ||
|
|
3996e49272 | ||
|
|
62d4d8b8d2 | ||
|
|
9e9ef37e98 | ||
|
|
3fe8b55917 | ||
|
|
f04cbae3fd | ||
|
|
990aa7456e | ||
|
|
b35224fa81 | ||
|
|
1ac5cf8746 | ||
|
|
e04f5603f7 | ||
|
|
d5a1296008 | ||
|
|
46fcf913b2 | ||
|
|
b16beb540c | ||
|
|
689f3488a5 | ||
|
|
fb7c1f0561 | ||
|
|
8eb44394cb | ||
|
|
0b35120921 | ||
|
|
7662d4df64 | ||
|
|
0e720a8b42 | ||
|
|
539457f8e4 | ||
|
|
2967f6116f | ||
|
|
498595a122 | ||
|
|
dc79ac371b | ||
|
|
01108f7879 | ||
|
|
f63e56dc1a | ||
|
|
3c653277a6 | ||
|
|
09f052358f | ||
|
|
e923ffddab | ||
|
|
866283d43f | ||
|
|
348c0cddae | ||
|
|
e956cc30d7 | ||
|
|
e80a144fce | ||
|
|
224b12ba8b | ||
|
|
61b9dedd90 | ||
|
|
4f2bca6cc9 | ||
|
|
6bc321395d | ||
|
|
12b66c262a | ||
|
|
cc22d6690f | ||
|
|
87d6f497f7 | ||
|
|
f3f97394b2 | ||
|
|
5443879053 | ||
|
|
58cb6bb07f | ||
|
|
8c1c4865ac | ||
|
|
cfe01e1b06 | ||
|
|
ba80543b16 | ||
|
|
eccc955ed5 | ||
|
|
1caf22fdce | ||
|
|
fd2d420919 | ||
|
|
f17f5da8af | ||
|
|
2037023874 | ||
|
|
f58beefc8f | ||
|
|
ec92bb884e | ||
|
|
fe238490f9 | ||
|
|
50d32d4d7e | ||
|
|
5cf2c9dc45 | ||
|
|
6553a4c7e2 | ||
|
|
9ad129468a | ||
|
|
49c233212b | ||
|
|
60328db583 | ||
|
|
da2ab06111 | ||
|
|
00f14fbd74 | ||
|
|
46b276ee4b | ||
|
|
8566f52297 | ||
|
|
d66e7cb27c | ||
|
|
1c68938c60 | ||
|
|
ce972676b5 | ||
|
|
976be82fb9 | ||
|
|
6fba73e8e2 | ||
|
|
372c38a53a | ||
|
|
c3e2f113f3 | ||
|
|
21e071be06 | ||
|
|
96d568f1fb | ||
|
|
bfa890d81e | ||
|
|
a0ab6b7160 | ||
|
|
4472024ea2 | ||
|
|
ea97aa5e8c | ||
|
|
f845c37b41 | ||
|
|
d995df614c | ||
|
|
adc3993122 | ||
|
|
da201c1be8 | ||
|
|
9bf68ef6c5 | ||
|
|
e656b82956 | ||
|
|
8460074372 | ||
|
|
c594f47f76 | ||
|
|
f5fb13103f | ||
|
|
27374bfaf5 | ||
|
|
1098ec03c1 | ||
|
|
9f2c906e80 | ||
|
|
0fcdcbbfd9 | ||
|
|
68289c4759 | ||
|
|
eccfb9c202 | ||
|
|
a462e687dc | ||
|
|
79d649e173 | ||
|
|
cf0c7a9f5a | ||
|
|
fd3d8e9537 | ||
|
|
e05ec94e1e | ||
|
|
62bdbc0e57 | ||
|
|
3b79941168 | ||
|
|
56c1b316da | ||
|
|
8be61d707f | ||
|
|
6f3b02cba4 | ||
|
|
d99e8894ff | ||
|
|
610fd92ee7 | ||
|
|
4dfa3fc731 | ||
|
|
eb9a7a76e6 | ||
|
|
643709eb96 | ||
|
|
1a4535f692 | ||
|
|
f0d8e67ff5 | ||
|
|
37319639ec | ||
|
|
9d14b408cf | ||
|
|
a6c7324979 | ||
|
|
5bb7b8ed58 | ||
|
|
04e687245e | ||
|
|
466b22c1fe | ||
|
|
74a63cc1b2 | ||
|
|
19904f86d3 | ||
|
|
f554eba8f3 | ||
|
|
5cc056a6ce | ||
|
|
758503e26f | ||
|
|
6a58298bf6 | ||
|
|
a892e4874f | ||
|
|
6a67d06c26 | ||
|
|
9f704ce6d1 | ||
|
|
174e96246b | ||
|
|
2f99f9d1c8 | ||
|
|
3cdc895213 | ||
|
|
363bfdb404 | ||
|
|
a347b91a9e | ||
|
|
5c86a323e5 | ||
|
|
9a831f1e4d | ||
|
|
f01c842ef6 | ||
|
|
21ce9394a7 | ||
|
|
b9575ead72 | ||
|
|
eab2cbf494 | ||
|
|
ebc587846b | ||
|
|
aeb1744011 | ||
|
|
22d433a3db | ||
|
|
63a30ff1f0 | ||
|
|
a91a5601e4 | ||
|
|
07d96b9201 | ||
|
|
3e7446f0e7 | ||
|
|
635ea0d5fd | ||
|
|
c2b34e208a | ||
|
|
9f2283b8a0 | ||
|
|
7299ff3b04 | ||
|
|
95d8125199 | ||
|
|
51f9d5bedc | ||
|
|
67ea97dfdf | ||
|
|
20cc9e3939 | ||
|
|
9f9f6d2e5d | ||
|
|
b70466417e | ||
|
|
eb4103503c | ||
|
|
4ca58ffa00 | ||
|
|
3ad7c1ad4a | ||
|
|
30efc9f68e | ||
|
|
db861c3944 | ||
|
|
cbc98fb3c0 | ||
|
|
b900a96852 | ||
|
|
a104447d46 | ||
|
|
f2ddefcc56 | ||
|
|
0964cd270e | ||
|
|
185648217f | ||
|
|
bcd33d5f18 | ||
|
|
c156a2e1b0 | ||
|
|
25168fffd5 | ||
|
|
19639aa9ab | ||
|
|
a491b82c4c | ||
|
|
15563f8d91 | ||
|
|
987f6f8fcf | ||
|
|
c24bd1584c | ||
|
|
2a314dbc47 | ||
|
|
c41145799d | ||
|
|
2492892fde | ||
|
|
65530de209 | ||
|
|
a81ac8d04b | ||
|
|
f4de039522 | ||
|
|
7c6ba77780 | ||
|
|
371135fa2c | ||
|
|
78a5b7693c | ||
|
|
baf8cadeff | ||
|
|
8d2dd7901c | ||
|
|
d1ee85c2dd | ||
|
|
a32c1f9eee | ||
|
|
f47c78487b | ||
|
|
c0c7a9f010 | ||
|
|
61b2fcc3ce | ||
|
|
37d672d2a3 | ||
|
|
a736f99e2f | ||
|
|
7a7cda7a4c | ||
|
|
353e07f57b | ||
|
|
cd8adc0cf2 | ||
|
|
a87d9876cf | ||
|
|
f2fab902c4 | ||
|
|
ab285a85fd | ||
|
|
1d5397dde0 | ||
|
|
e5df7fa8b2 | ||
|
|
ca16776087 | ||
|
|
c53cdf6dd8 | ||
|
|
fb2b1606ba | ||
|
|
b7ea5dc5f4 | ||
|
|
7f544adbb5 | ||
|
|
4ad939be1b | ||
|
|
34e0ba1f92 | ||
|
|
ba1aac47b7 | ||
|
|
b680c5c5e1 | ||
|
|
f5e71d99d5 | ||
|
|
4de4565710 | ||
|
|
aedbdb087d | ||
|
|
43aa6922d3 | ||
|
|
999998ecaa | ||
|
|
a6d84dbb82 | ||
|
|
ff06fb72de | ||
|
|
7c264559b2 | ||
|
|
faacd7f865 | ||
|
|
c3e6a90808 | ||
|
|
87c9e68c91 | ||
|
|
f847c6f948 | ||
|
|
3c1a774ddc | ||
|
|
65e57a8a2c | ||
|
|
73d503471c | ||
|
|
694585e1a8 | ||
|
|
c68b34c40f | ||
|
|
be0458269e | ||
|
|
ec09711101 | ||
|
|
47676bc067 | ||
|
|
8d2afe0e57 | ||
|
|
eb8b4fd4a1 | ||
|
|
55b0a90e91 | ||
|
|
97666ab4ef | ||
|
|
e56a091bf3 | ||
|
|
d00b6bc170 | ||
|
|
cc33e8f536 | ||
|
|
d1974bad1b | ||
|
|
6d7667267b | ||
|
|
318c7aead7 | ||
|
|
952a2c8234 | ||
|
|
f858c193b6 | ||
|
|
e1573bf6e9 | ||
|
|
61d132cddc | ||
|
|
dd9698a6cb | ||
|
|
4187a6e3c7 | ||
|
|
289997715a | ||
|
|
2d92309797 | ||
|
|
9392a1c9de | ||
|
|
32b3d10174 | ||
|
|
cde34a07b7 | ||
|
|
8d952c906f | ||
|
|
de504dce25 | ||
|
|
4fb4cac65c | ||
|
|
f14292df21 | ||
|
|
bad7aeeffb | ||
|
|
23ffaecc7d | ||
|
|
aa52c68a7a | ||
|
|
ae37249fa9 | ||
|
|
1c9a470cbc | ||
|
|
021389c4dc | ||
|
|
fb95a19824 | ||
|
|
1ef7bf6997 | ||
|
|
1d9baf3dd5 | ||
|
|
b36d4ae02c | ||
|
|
8d91c1a46d | ||
|
|
1cd9875465 | ||
|
|
e5057f7c22 | ||
|
|
334f5d87ff | ||
|
|
8eeff6d2d4 | ||
|
|
15cf2a60b0 | ||
|
|
ee28f62dc0 | ||
|
|
6d6630a250 | ||
|
|
60b465fc5b | ||
|
|
14b80ad199 | ||
|
|
cec2347c96 | ||
|
|
2a128504a2 | ||
|
|
54d85cbfda | ||
|
|
e6dcba6052 | ||
|
|
beeac8672e | ||
|
|
ba93fc60af | ||
|
|
55b5376d19 | ||
|
|
88141e3ed0 | ||
|
|
d5adc7ceff | ||
|
|
4440d3897e | ||
|
|
8030941485 | ||
|
|
7a794caed0 | ||
|
|
dddac3e86e | ||
|
|
467db93099 | ||
|
|
16bbd70cd5 | ||
|
|
e0787f3d24 | ||
|
|
986800ce88 | ||
|
|
b21bf3d357 | ||
|
|
ecce72aa83 | ||
|
|
183c8aa287 | ||
|
|
13ac7169af | ||
|
|
7e4be5c520 | ||
|
|
f124c2086e | ||
|
|
0638c657e1 |
No files matched your search
+6
-7
@@ -148,20 +148,19 @@ Naming Conventions
|
||||
'buildsomewidget'
|
||||
'getI()'
|
||||
|
||||
[7] Classes should be given descriptive names. Avoid using abbreviations
|
||||
where possible. Each word in the class name should start with a capital
|
||||
letter, with words underscore delimited. The class name should be prefixed
|
||||
with the name of the 'parent set'.
|
||||
[7] Classes should be given descriptive names. Avoid using abbreviations where
|
||||
possible. Each word in the class name should start with a capital letter,
|
||||
without underscore delimiters (CampelCaps starting with a capital letter).
|
||||
The class name should be prefixed with the name of the 'parent set' (e.g.
|
||||
the name of the extension).
|
||||
|
||||
Good:
|
||||
'Curl'
|
||||
'Foo_Bar'
|
||||
'FooBar'
|
||||
|
||||
Bad:
|
||||
'foobar'
|
||||
'foo_bar'
|
||||
'FooBar'
|
||||
|
||||
|
||||
Syntax and indentation
|
||||
----------------------
|
||||
|
||||
+6
-1
@@ -68,6 +68,11 @@ PRIMARY MAINTAINER: Alex Leigh <aleigh@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: date
|
||||
PRIMARY MAINTAINER: Derick Rethans <derick@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: embed
|
||||
PRIMARY MAINTAINER: Edin Kadribasic <edink@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -447,7 +452,7 @@ STATUS: Working
|
||||
EXTENSION: pspell
|
||||
PRIMARY MAINTAINER: Vlad Krupin <phpdevel@echospace.com>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
STATUS: Working
|
||||
SINCE: 4.0.2
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: readline
|
||||
|
||||
@@ -262,8 +262,8 @@ Apache 1.3.x on Unix systems
|
||||
|
||||
10. cd ../apache_1.3.x
|
||||
|
||||
11. ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
|
||||
(The above line is correct! Yes, we know libphp4.a does not exist at this
|
||||
11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
|
||||
(The above line is correct! Yes, we know libphp5.a does not exist at this
|
||||
stage. It isn't supposed to. It will be created.)
|
||||
|
||||
12. make
|
||||
@@ -309,24 +309,24 @@ stop and start:
|
||||
|
||||
./configure --with-apxs --with-pgsql
|
||||
|
||||
This will create a libphp4.so shared library that is loaded into
|
||||
This will create a libphp5.so shared library that is loaded into
|
||||
Apache using a LoadModule line in Apache's httpd.conf file. The
|
||||
PostgreSQL support is embedded into this libphp4.so library.
|
||||
PostgreSQL support is embedded into this libphp5.so library.
|
||||
|
||||
./configure --with-apxs --with-pgsql=shared
|
||||
|
||||
This will create a libphp4.so shared library for Apache, but it will
|
||||
This will create a libphp5.so shared library for Apache, but it will
|
||||
also create a pgsql.so shared library that is loaded into PHP either
|
||||
by using the extension directive in php.ini file or by loading it
|
||||
explicitly in a script using the dl() function.
|
||||
|
||||
./configure --with-apache=/path/to/apache_source --with-pgsql
|
||||
|
||||
This will create a libmodphp4.a library, a mod_php4.c and some
|
||||
accompanying files and copy this into the src/modules/php4 directory
|
||||
This will create a libmodphp5.a library, a mod_php5.c and some
|
||||
accompanying files and copy this into the src/modules/php5 directory
|
||||
in the Apache source tree. Then you compile Apache using
|
||||
--activate-module=src/modules/php4/libphp4.a and the Apache build
|
||||
system will create libphp4.a and link it statically into the httpd
|
||||
--activate-module=src/modules/php5/libphp5.a and the Apache build
|
||||
system will create libphp5.a and link it statically into the httpd
|
||||
binary. The PostgreSQL support is included directly into this httpd
|
||||
binary, so the final result here is a single httpd binary that
|
||||
includes all of Apache and all of PHP.
|
||||
@@ -380,8 +380,8 @@ Apache 2.0 on Unix systems
|
||||
|
||||
* PHP 4.3.0 or later available at http://www.php.net/downloads.php.
|
||||
* the latest stable development version. Get the source code
|
||||
http://snaps.php.net/php4-latest.tar.gz or download binaries for
|
||||
Windows http://snaps.php.net/win32/php4-win32-latest.zip.
|
||||
http://snaps.php.net/php5-latest.tar.gz or download binaries for
|
||||
Windows http://snaps.php.net/win32/php5-win32-latest.zip.
|
||||
* a prerelease version downloadable from http://qa.php.net/.
|
||||
* you have always the option to obtain PHP through anonymous CVS.
|
||||
|
||||
|
||||
+4
-4
@@ -7,17 +7,17 @@ $(builddir)/zend_language_scanner.lo: $(builddir)/zend_language_parser.h
|
||||
$(builddir)/zend_ini_scanner.lo: $(builddir)/zend_ini_parser.h
|
||||
|
||||
$(builddir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
|
||||
$(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
|
||||
@$(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
|
||||
|
||||
$(builddir)/zend_language_parser.h: $(builddir)/zend_language_parser.c
|
||||
$(builddir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
|
||||
$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o $@
|
||||
@$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o $@
|
||||
|
||||
$(builddir)/zend_ini_parser.h: $(builddir)/zend_ini_parser.c
|
||||
$(builddir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
|
||||
$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o $@
|
||||
@$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o $@
|
||||
|
||||
$(builddir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
|
||||
$(LEX) -Pini_ -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_ini_scanner.l
|
||||
@$(LEX) -Pini_ -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_ini_scanner.l
|
||||
|
||||
$(builddir)/zend_indent.lo $(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(builddir)/zend_language_parser.h
|
||||
+34
-12
@@ -5,9 +5,6 @@ INSTALL_DATA = $(INSTALL) -m 644
|
||||
DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir)
|
||||
COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORKPATH)
|
||||
|
||||
CORE_HEADERS = Zend/ TSRM/ include/ main/ main/streams/ regex/ ext/standard/
|
||||
INSTALL_HEADERS = $(CORE_HEADERS) $(INSTALL_EXT_HEADERS)
|
||||
|
||||
all: $(all_targets)
|
||||
@echo
|
||||
@echo "Build complete."
|
||||
@@ -45,19 +42,44 @@ install-modules: build-modules
|
||||
@rm -f modules/*.la >/dev/null 2>&1
|
||||
@$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR)
|
||||
|
||||
install-tester:
|
||||
@echo "Installing regression tester: $(INSTALL_ROOT)$(PEAR_INSTALLDIR)/"
|
||||
@$(mkinstalldirs) $(INSTALL_ROOT)$(PEAR_INSTALLDIR)
|
||||
@$(INSTALL) -m 755 $(top_srcdir)/run-tests.php $(INSTALL_ROOT)$(PEAR_INSTALLDIR)
|
||||
install-headers:
|
||||
-@if test "$(INSTALL_HEADERS)"; then \
|
||||
for i in $(INSTALL_HEADERS); do \
|
||||
i=`$(top_srcdir)/build/shtool path -d $$i`; \
|
||||
paths="$$paths $(INSTALL_ROOT)$(phpincludedir)/$$i"; \
|
||||
done; \
|
||||
$(mkinstalldirs) $$paths && \
|
||||
echo "Installing header files: $(INSTALL_ROOT)$(phpincludedir)/" && \
|
||||
for i in $(INSTALL_HEADERS); do \
|
||||
if test "$(PHP_PECL_EXTENSION)"; then \
|
||||
src=`echo $$i | $(SED) -e "s#ext/$(PHP_PECL_EXTENSION)/##g"`; \
|
||||
else \
|
||||
src=$$i; \
|
||||
fi; \
|
||||
if test -f "$(top_srcdir)/$$src"; then \
|
||||
$(INSTALL_DATA) $(top_srcdir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
|
||||
elif test -f "$(top_builddir)/$$src"; then \
|
||||
$(INSTALL_DATA) $(top_builddir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
|
||||
else \
|
||||
(cd $(top_srcdir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i; \
|
||||
cd $(top_builddir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i) 2>/dev/null || true; \
|
||||
fi \
|
||||
done; \
|
||||
fi
|
||||
|
||||
install-su: install-pear
|
||||
|
||||
install-su: install-pear install-tester
|
||||
|
||||
test:
|
||||
-@if test -x $(SAPI_CLI_PATH) && test ! -z $(SAPI_CLI_PATH); then \
|
||||
test: all
|
||||
-@if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
|
||||
TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
|
||||
TEST_PHP_SRCDIR=$(top_srcdir) \
|
||||
CC="$(CC)" \
|
||||
$(PHP_EXECUTABLE) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php -d 'extension_dir=modules/' -d `( . $(PHP_MODULES) ; echo extension=$$dlname)` tests/; \
|
||||
elif test ! -z "$(SAPI_CLI_PATH)" && test -x "$(SAPI_CLI_PATH)"; then \
|
||||
TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
|
||||
TEST_PHP_SRCDIR=$(top_srcdir) \
|
||||
CC="$(CC)" \
|
||||
$(top_builddir)/$(SAPI_CLI_PATH) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' $(top_srcdir)/run-tests.php $(TESTS); \
|
||||
$(top_builddir)/$(SAPI_CLI_PATH) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php $(TESTS); \
|
||||
else \
|
||||
echo "ERROR: Cannot run tests without CLI sapi."; \
|
||||
fi
|
||||
|
||||
@@ -1,54 +1,59 @@
|
||||
PHP NEWS
|
||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
10 Jun 2005, PHP 5.1 Beta 1
|
||||
28 Nov 2005, PHP 5.1.1
|
||||
- Disabled native date class to prevent pear::date conflict. (Ilia)
|
||||
- Changed reflection constants be both PHP and class constants. (Johannes)
|
||||
- Added an additional field $frame['object'] to the result array of
|
||||
debug_backtrace() that contains a reference to the respective object when the
|
||||
frame was called from an object. (Sebastian)
|
||||
- Fixed bug #35423 (RecursiveDirectoryIterator doesnt appear to recurse with
|
||||
RecursiveFilterIterator). (Marcus)
|
||||
- Fixed bug #35413 (Removed -dev flag from Zend Engine version). (Ilia)
|
||||
- Fixed bug #35411 (Regression with \{$ handling). (Ilia)
|
||||
- Fixed bug #35406 (eval hangs when evall'ed code ends with comment w/o
|
||||
newline). (Marcus)
|
||||
- Fixed bug #35391 (pdo_mysql::exec does not return number of affected rows).
|
||||
(Tony)
|
||||
- Fixed bug #35382 (Comment in end of file produces fatal error). (Ilia)
|
||||
- Fixed bug #35360 (exceptions in interactive mode (php -a) may cause crash).
|
||||
(Dmitry)
|
||||
- Fixed bug #35358 (Incorrect error messages for PDO class constants). (Ilia)
|
||||
- Fixed bug #35338 (pdo_pgsql does not handle binary bound params). (Wez)
|
||||
- Fixed bug #35316 (Application exception trying to create COM object). (Rob)
|
||||
- Fixed bug #35170 (PHP_AUTH_DIGEST differs under Apache 1.x and 2.x). (Ilia)
|
||||
|
||||
24 Nov 2005, PHP 5.1
|
||||
- Added support for class constants and static members for internal classes.
|
||||
(Dmitry, Michael Wallner)
|
||||
- Added "new_link" parameter to mssql_connect() (Bug #34369). (Frank)
|
||||
- Added missing safe_mode checks for image* functions and cURL. (Ilia)
|
||||
- Added missing safe_mode/open_basedir checks for file uploads. (Ilia)
|
||||
- Added PDO_MYSQL_ATTR_USE_BUFFERED_QUERY parameter for pdo_mysql. (Ilia)
|
||||
- Added date_timezone_set() function to set the timezone that the date
|
||||
functions will use. (Derick)
|
||||
- Added pg_fetch_all_columns() function to fetch all values of a column from a
|
||||
result cursor. (Ilia)
|
||||
- Added support for LOCK_EX flag for file_put_contents(). (Ilia)
|
||||
- Added bindto socket context option. (Ilia)
|
||||
- Added offset parameter to the stream_copy_to_stream() function. (Ilia)
|
||||
- Added offset & length parameters to substr_count() function. (Ilia)
|
||||
- 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)
|
||||
- Added user opcode API that allow overloading of opcode handlers. (Dmitry)
|
||||
- Opcodes ZEND_NEW, ZEND_JMP_NO_CTOR, ZEND_INIT_CTOR are mefget into one
|
||||
ZEND_NEW. (Dmitry)
|
||||
- Upgraded PCRE library to version 5.0. (Andrei)
|
||||
- Added an optional remove old session parameter to session_regenerate_id(). (Ilia)
|
||||
- Added an optional remove old session parameter to session_regenerate_id().
|
||||
(Ilia)
|
||||
- Added array type hinting. (Dmitry)
|
||||
- Removed php_check_syntax() function which never worked properly. (Ilia)
|
||||
- Removed garbage manager in Zend Engine which results in more aggressive
|
||||
freeing of data. (Dmitry, Andi)
|
||||
- String offsets were re-designed and re-implemented (Dmitry)
|
||||
- Moved extensions to PECL:
|
||||
. ext/cpdf (Tony, Derick)
|
||||
. ext/dio (Jani, Derick)
|
||||
. ext/fam (Jani, Derick)
|
||||
. ext/ingres_ii (Jani, Derick)
|
||||
. ext/mnogosearch (Jani, Derick)
|
||||
. ext/w32api (Jani, Derick)
|
||||
. ext/yp (Jani, Derick)
|
||||
- Changed stream_filter_(ap|pre)pend() to return resource. (Sara)
|
||||
- Changed mysqli_exception and sqlite_exception to use RuntimeException as base
|
||||
if SPL extension is present. (Georg, Marcus)
|
||||
- Improved interactive mode of PHP CLI (php -a). (Johannes, Marcus)
|
||||
- Improved support for embedded server in mysqli. (Georg)
|
||||
- Improved performance of:
|
||||
. general execution/compilation. (Andi, Thies, Sterling, Dmitry, Marcus)
|
||||
. switch() statement. (Dmitry)
|
||||
. several array functions. (Marcus)
|
||||
. virtual path handling by adding a realpath() cache. (Andi)
|
||||
. variable fetches. (Andi)
|
||||
. magic method invocations. (Marcus)
|
||||
- Improved extension SPL (Marcus).
|
||||
. added standard hierarchy of Exception classes
|
||||
. added interface Countable
|
||||
. added interfaces Subject and Observer
|
||||
. added spl_autoload*() functions
|
||||
. converted several 5.0 examples into c code
|
||||
. added class FileObject
|
||||
. added possibility to use a string with class_parents() and
|
||||
class_implements(). (Andrey)
|
||||
- Added the tidy_get_opt_doc() function to return documentation for
|
||||
- Added the tidy_get_opt_doc() function to return documentation for
|
||||
configuration options in tidy. (Patch by: nlopess@php.net)
|
||||
- Added support for .cc files in extensions. (Brian)
|
||||
- Added imageconvolution() function which can be used to apply a custom 3x3
|
||||
- Added imageconvolution() function which can be used to apply a custom 3x3
|
||||
matrix convolution to an image. (Pierre)
|
||||
- Added optional first parameter to XsltProcessor::registerPHPFunctions to only
|
||||
allow certain functions to be called from XSLT. (Christian)
|
||||
- Added the ability to override the autotools executables used by the buildconf
|
||||
script via the PHP_AUTOCONF and PHP_AUTOHEADER environmental variables. (Jon)
|
||||
- Added optional first parameter to XsltProcessor::registerPHPFunctions to
|
||||
only allow certain functions to be called from XSLT. (Christian)
|
||||
- Added the ability to override the autotools executables used by the
|
||||
buildconf script via the PHP_AUTOCONF and PHP_AUTOHEADER environmental
|
||||
variables. (Jon)
|
||||
- Added several new functions to support the PostgreSQL v3 protocol introduced
|
||||
in PostgreSQL 7.4. (Christopher)
|
||||
. pg_transaction_status() - in-transaction status of a database connection.
|
||||
@@ -58,34 +63,29 @@ PHP NEWS
|
||||
. pg_send_query_params() - async equivalent of pg_query_params().
|
||||
. pg_send_prepare() - async equivalent of pg_prepare().
|
||||
. pg_send_execute() - async equivalent of pg_execute().
|
||||
. pg_result_error_field() - highly detailed error information,
|
||||
most importantly the SQLSTATE error code.
|
||||
. pg_result_error_field() - highly detailed error information, most
|
||||
importantly
|
||||
the SQLSTATE error code.
|
||||
. pg_set_error_verbosity() - set verbosity of errors.
|
||||
- Improved extension mysqli (Georg)
|
||||
. added constructor for mysqli_stmt and mysqli_result classes
|
||||
. added new function mysqli_get_charset
|
||||
. added new class mysqli_driver
|
||||
. added new class mysqli_warning
|
||||
. added new class mysqli_execption
|
||||
. added new class mysqli_sql_exception
|
||||
- Added optional fifth parameter "count" to preg_replace_callback() and
|
||||
- Added optional fifth parameter "count" to preg_replace_callback() and
|
||||
preg_replace() to count the number of replacements made. FR #32275. (Andrey)
|
||||
- Added optional third parameter "charlist" to str_word_count() which
|
||||
contains characters to be considered as word part. FR #31560. (Andrey, Ilia)
|
||||
- Added interface Serializeable. (Stanislav, Marcus)
|
||||
- Added optional third parameter "charlist" to str_word_count() which contains
|
||||
characters to be considered as word part. FR #31560. (Andrey, Ilia)
|
||||
- Added interface Serializable. (Stanislav, Marcus)
|
||||
- Added pg_field_type_oid() PostgreSQL function. (mauroi at digbang dot com)
|
||||
- Added zend_declare_property_...() and zend_update_property_...()
|
||||
API functions for bool, double and binary safe strings. (Hartmut)
|
||||
- Added zend_declare_property_...() and zend_update_property_...() API
|
||||
functions for bool, double and binary safe strings. (Hartmut)
|
||||
- Added possibility to access INI variables from within .ini file. (Andrei)
|
||||
- Added variable $_SERVER['REQUEST_TIME'] containing request start time. (Ilia)
|
||||
- Added variable $_SERVER['REQUEST_TIME'] containing request start time.
|
||||
(Ilia)
|
||||
- Added optional float parameter to gettimeofday(). (Ilia)
|
||||
- Added apache_reset_timeout() Apache1 function. (Rasmus)
|
||||
- Added sqlite_fetch_column_types() 3rd argument for arrays. (Ilia)
|
||||
- Added optional offset parameter to stream_get_contents() and
|
||||
- Added optional offset parameter to stream_get_contents() and
|
||||
file_get_contents(). (Ilia)
|
||||
- Added optional maxlen parameter to file_get_contents(). (Ilia)
|
||||
- Added SAPI hook to get the current request time. (Rasmus)
|
||||
- Added new functions:
|
||||
- Added new functions:
|
||||
. array_diff_key() (Andrey)
|
||||
. array_diff_ukey() (Andrey)
|
||||
. array_intersect_key() (Christiano Duarte)
|
||||
@@ -106,62 +106,662 @@ PHP NEWS
|
||||
. stream_wrapper_restore() (Sara)
|
||||
. stream_filter_remove() (Sara)
|
||||
. time_sleep_until() (Ilia)
|
||||
- Added DomDocument::$recover property for parsing not well-formed
|
||||
XML Documents. (Christian)
|
||||
- Added DomDocument::$recover property for parsing not well-formed XML
|
||||
Documents. (Christian)
|
||||
- Added Cursor support for MySQL 5.0.x in mysqli (Georg)
|
||||
- Added proxy support to ftp wrapper via http. (Sara)
|
||||
- Added MDTM support to ftp_url_stat. (Sara)
|
||||
- Added zlib stream filter support. (Sara)
|
||||
- Added bz2 stream filter support. (Sara)
|
||||
- Added HTTP/1.1 and chunked encoding support to http:// wrapper. (Sara)
|
||||
- Added max_redirects context option that specifies how many HTTP
|
||||
redirects to follow. (Ilia)
|
||||
- Added support of parameter=>value arrays to
|
||||
- Added support of parameter=>value arrays to
|
||||
xsl_xsltprocessor_set_parameter(). (Tony)
|
||||
- Fixed extension initialization to respect dependancies between extensions.
|
||||
(Wez)
|
||||
- Fixed a problem with SPL iterators aggregating the innner iterator. (Marcus)
|
||||
- Fixed bug with $HTTP_RAW_POST_DATA not getting set. (Brian)
|
||||
- Fixed bug in mysql::client_version(). (Georg)
|
||||
|
||||
- Improved PHP extension loading mechanism with support for module
|
||||
dependencies and conflicts. (Jani, Dmitry)
|
||||
- Improved interactive mode of PHP CLI (php -a). (Johannes, Marcus)
|
||||
- Improved performance of:
|
||||
. general execution/compilation. (Andi, Thies, Sterling, Dmitry, Marcus)
|
||||
. switch() statement. (Dmitry)
|
||||
. several array functions. (Marcus)
|
||||
. virtual path handling by adding a realpath() cache. (Andi)
|
||||
. variable fetches. (Andi)
|
||||
. magic method invocations. (Marcus)
|
||||
- Improved support for embedded server in mysqli. (Georg)
|
||||
- Improved mysqli extension. (Georg)
|
||||
. added constructor for mysqli_stmt and mysqli_result classes
|
||||
. added new function mysqli_get_charset()
|
||||
. added new function mysqli_set_charset()
|
||||
. added new class mysqli_driver
|
||||
. added new class mysqli_warning
|
||||
. added new class mysqli_exception
|
||||
. added new class mysqli_sql_exception
|
||||
- Improved SPL extension. (Marcus)
|
||||
. Moved RecursiveArrayIterator from examples into extension
|
||||
. Moved RecursiveFilterIterator from examples into extension
|
||||
. Added SplObjectStorage
|
||||
. Made all SPL constants class constants
|
||||
. Renamed CachingRecursiveIterator to RecursiveCachingIterator to follow
|
||||
Recursive<*>Iterator naming scheme.
|
||||
. added standard hierarchy of Exception classes
|
||||
. added interface Countable
|
||||
. added interfaces Subject and SplObserver
|
||||
. added spl_autoload*() functions
|
||||
. converted several 5.0 examples into c code
|
||||
. added class SplFileObject
|
||||
. added possibility to use a string with class_parents() and
|
||||
class_implements(). (Andrey)
|
||||
|
||||
- Changed type hints to allow "null" as default value for class and array.
|
||||
(Marcus, Derick, Dmitry)
|
||||
- Changed SQLite extension to be a shared module in Windows distribution.
|
||||
(Edin)
|
||||
- Changed "instanceof" and "catch" operators, is_a() and is_subclass_of()
|
||||
functions to not call __autoload(). (Dmitry)
|
||||
- Changed sha1_file() and md5_file() functions to use streams instead of low
|
||||
level IO. (Uwe)
|
||||
- Changed abstract private methods to be not allowed anymore. (Stas)
|
||||
- Changed stream_filter_(ap|pre)pend() to return resource. (Sara)
|
||||
- Changed mysqli_exception and sqlite_exception to use RuntimeException as
|
||||
base if SPL extension is present. (Georg, Marcus)
|
||||
|
||||
- Upgraded bundled libraries:
|
||||
. PCRE library to version 6.2. (Andrei)
|
||||
. SQLite 3 library in ext/pdo_sqlite to 3.2.7. (Ilia)
|
||||
. SQLite 2 library in ext/sqlite to 2.8.16. (Ilia)
|
||||
- Upgraded bundled libraries in Windows distribution. (Edin)
|
||||
. zlib 1.2.3
|
||||
. curl 7.14.0
|
||||
. openssl 0.9.8
|
||||
. ming 0.3b
|
||||
. libpq (PostgreSQL) 8.0.1
|
||||
|
||||
- Implemented feature request #33452 (Year belonging to ISO week). (Derick)
|
||||
- Allowed return by reference from internal functions. (Marcus, Andi, Dmitry)
|
||||
- Rewrote strtotime() with support for timezones and many new formats.
|
||||
Implements feature requests #21399, #26694, #28088, #29150, #29585 and
|
||||
#29595. (Derick)
|
||||
|
||||
- Moved extensions to PECL:
|
||||
. ext/cpdf (Tony, Derick)
|
||||
. ext/dio (Jani, Derick)
|
||||
. ext/fam (Jani, Derick)
|
||||
. ext/ingres_ii (Jani, Derick)
|
||||
. ext/mnogosearch (Jani, Derick)
|
||||
. ext/w32api (Jani, Derick)
|
||||
. ext/yp (Jani, Derick)
|
||||
. ext/mcve (Jani, Derick, Pierre)
|
||||
. ext/oracle (Jani, Derick)
|
||||
. ext/ovrimos (Jani, Derick, Pierre)
|
||||
. ext/pfpro (Jani, Derick, Pierre)
|
||||
. ext/dbx (Jani, Derick)
|
||||
. ext/ircg (Jani, Derick)
|
||||
|
||||
- Removed php_check_syntax() function which never worked properly. (Ilia)
|
||||
- Removed garbage manager in Zend Engine which results in more aggressive
|
||||
freeing of data. (Dmitry, Andi)
|
||||
|
||||
- Fixed "make test" to work for phpized extensions. (Hartmut, Jani)
|
||||
- Fixed Apache 2 regression with sub-request handling on non-linux systems.
|
||||
(Ilia, Tony)
|
||||
- Fixed PDO shutdown problem (possible infinite loop running rollback on
|
||||
shutdown). (Wez)
|
||||
- Fixed PECL bug #3714 (PDO: beginTransaction doesn't work if you're in
|
||||
auto-commit mode). (Wez)
|
||||
- Fixed ZTS destruction. (Marcus)
|
||||
- Fixed bug #32993 (implemented Iterator function current() don't throw
|
||||
- Fixed __get/__set to allow recursive calls for different properties. (Dmitry)
|
||||
- Fixed a bug where stream_get_meta_data() did not return the "uri" element
|
||||
for files opened with tmpname(). (Derick)
|
||||
- Fixed a problem with SPL iterators aggregating the inner iterator. (Marcus)
|
||||
- Fixed an error in mysqli_fetch_fields (returned NULL instead of an array
|
||||
when row number > field_count). (Georg)
|
||||
- Fixed bug in mysql::client_version(). (Georg)
|
||||
- Fixed bug in mysqli extension with unsigned int(11) being represented as
|
||||
signed integer in PHP instead of string in 32bit systems. (Andrey)
|
||||
- Fixed bug with $HTTP_RAW_POST_DATA not getting set. (Brian)
|
||||
- Fixed crash inside stream_get_line() when length parameter equals 0. (Ilia)
|
||||
- Fixed ext/mysqli to allocate less memory when fetching bound params of type
|
||||
(MEDIUM|LONG)BLOB/(MEDIUM|LONG)TEXT. (Andrey)
|
||||
- Fixed extension initialization to respect dependencies between extensions.
|
||||
(Wez)
|
||||
- Fixed failing queries (FALSE returned) with mysqli_query() on 64 bit systems.
|
||||
(Andrey)
|
||||
- Fixed fgetcsv() and fputcsv() inconsistency. (Dmitry)
|
||||
- Fixed inheritance check to control return by reference and pass by
|
||||
reference correctly (ArrayAccess can no longer support references correctly).
|
||||
(Marcus, Andi, Dmitry)
|
||||
- Fixed initializing and argument checking for posix_mknod(). (Derick)
|
||||
- Fixed memory corruption in ImageTTFText() with 64bit systems. (Andrey)
|
||||
- Fixed memory corruption in pg_copy_from() in case the as_null parameter was
|
||||
passed. (Derick)
|
||||
- Fixed memory corruption in stristr(). (Derick)
|
||||
- Fixed possible GLOBALS variable override when register_globals are ON.
|
||||
(Ilia, Stefan)
|
||||
- Fixed possible INI setting leak via virtual() in Apache 2 sapi. (Ilia)
|
||||
- Fixed possible register_globals toggle via parse_str(). (Ilia, Stefan)
|
||||
- Fixed potential GLOBALS overwrite via import_request_variables() and
|
||||
possible crash and/or memory corruption. (Ilia)
|
||||
- Fixed segfaults when CURL callback functions throw exception. (Tony)
|
||||
- Fixed support for shared extensions on AIX. (Dmitry)
|
||||
- Fixed bug #35342 (isset(DOMNodeList->length) returns false). (Rob)
|
||||
- Fixed bug #35341 (Fix for bug #33760 breaks build with older curl). (Tony)
|
||||
- Fixed bug #35336 (crash on PDO::FETCH_CLASS + __set()). (Tony)
|
||||
- Fixed bug #35303 (PDO prepare() crashes with invalid parameters). (Ilia)
|
||||
- Fixed bug #35293 (PDO segfaults when using persistent connections). (Tony)
|
||||
- Fixed bug #35278 (Multiple virtual() calls crash Apache 2 php module). (Ilia)
|
||||
- Fixed bug #35273 (Error in mapping soap - java types). (Dmitry)
|
||||
- Fixed bug #35249 (compile failure when ext/readline is compiled as shared).
|
||||
(Jani)
|
||||
- Fixed bug #35248 (sqlite_query() doesn't set error_msg when return value is
|
||||
being used). (Ilia)
|
||||
- Fixed bug #35243 (php_mblen() crashes when compiled with thread-safety on
|
||||
Linux). (Patch: shulmanb at il dot ibm dot com, Jani)
|
||||
- Fixed bug #35239 (Objects can lose references). (Dmitry)
|
||||
- Fixed bug #35229 (call_user_func() crashes when argument_stack is nearly
|
||||
full). (Dmitry)
|
||||
- Fixed bug #35197 (Destructor is not called). (Tony)
|
||||
- Fixed bug #35179 (tokenizer extension needs T_HALT_COMPILER). (Greg)
|
||||
- Fixed bug #35176 (include()/require()/*_once() produce wrong error messages
|
||||
about main()). (Dmitry)
|
||||
- Fixed bug #35147 (__HALT_COMPILER() breaks with --enable-zend-multibyte).
|
||||
(Dmitry, Moriyoshi)
|
||||
- Fixed bug #35143 (gettimeofday() ignores current time zone). (Derick)
|
||||
- Fixed bug #35142 (SOAP Client/Server Complex Object Support). (Dmitry)
|
||||
- Fixed bug #35135 (PDOStatment without related PDO object may crash). (Ilia)
|
||||
- Fixed bug #35091 (SoapClient leaks memory). (Dmitry)
|
||||
- Fixed bug #35079 (stream_set_blocking(true) toggles, not enables blocking).
|
||||
(askalski at gmail dot com, Tony)
|
||||
- Fixed bug #35078 (configure does not find ldap_start_tls_s). (Jani)
|
||||
- Fixed bug #35046 (phpinfo() uses improper css enclosure). (Ilia)
|
||||
- Fixed bugs #35022, #35019 (Regression in the behavior of key() and
|
||||
current() functions). (Ilia)
|
||||
- Fixed bug #35017 (Exception thrown in error handler may cause unexpected
|
||||
behavior). (Dmitry)
|
||||
- Fixed bug #35014 (array_product() always returns 0). (Ilia)
|
||||
- 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 #34977 (Compile failure on MacOSX due to use of varargs.h). (Tony)
|
||||
- Fixed bug #34968 (bz2 extension fails on to build on some win32 setups).
|
||||
(Ilia)
|
||||
- Fixed bug #34965 (tidy is not binary safe). (Mike)
|
||||
- Fixed bug #34957 (PHP doesn't respect ACLs for access checks). (Wez)
|
||||
- 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 #34905 (Digest authentication does not work with Apache 1). (Ilia)
|
||||
- Fixed bug #34902 (mysqli::character_set_name() - undefined method). (Tony)
|
||||
- Fixed bug #34899 (Fixed sqlite extension compile failure). (Ilia)
|
||||
- Fixed bug #34893 (PHP5.1 overloading, Cannot access private property).
|
||||
(Dmitry)
|
||||
- Fixed bug #34884 (Possible crash in ext/sqlite when sqlite.assoc_case is
|
||||
being used). (Tony, Ilia)
|
||||
- Fixed bug #34879 (str_replace, array_map corrupt negative array indexes on
|
||||
64-bit platforms). (Dmitry)
|
||||
- Fixed bug #34873 (Segmentation Fault on foreach in object). (Dmitry)
|
||||
- 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 #34851 (SO_RECVTIMEO and SO_SNDTIMEO socket options expect
|
||||
integer parameter on Windows). (Mike)
|
||||
- Fixed bug #34850 (--program-suffix and --program-prefix not included in
|
||||
man page names). (Jani)
|
||||
- Fixed bug #34821 (zlib encoders fail on widely varying binary data on
|
||||
windows). (Mike, Ilia)
|
||||
- Fixed bug #34818 (several functions crash when invalid mysqli_link object
|
||||
is passed). (Tony)
|
||||
- Fixed bug #34810 (mysqli::init() and others use wrong $this pointer without
|
||||
checks). (Tony)
|
||||
- Fixed bug #34809 (FETCH_INTO in PDO crashes without a destination object).
|
||||
(Ilia)
|
||||
- Fixed bug #34802 (Fixed crash on object instantiation failure). (Ilia)
|
||||
- Fixed bug #34796 (missing SSL linking in ext/ftp when configured as shared).
|
||||
(Jani)
|
||||
- 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 #34786 (2 @ results in change to error_reporting() to random
|
||||
value) (Dmitry, Tony)
|
||||
- Fixed bug #34785 (subclassing of mysqli_stmt does not work). (Georg)
|
||||
- Fixed bug #34782 (token_get_all() gives wrong result). (Dmitry)
|
||||
- Fixed bug #34777 (Crash in dblib when fetching non-existent error info).
|
||||
(Ilia)
|
||||
- Fixed bug #34771 (strtotime() fails with 1-12am/pm). (Derick)
|
||||
- Fixed bug #34767 (Zend Engine 1 Compatibility not copying objects
|
||||
correctly). (Dmitry)
|
||||
- Fixed bug #34758 (PDO_DBLIB did not implement rowCount()). (Ilia)
|
||||
- Fixed bug #34757 (iconv_substr() gives "Unknown error" when offset > string
|
||||
length). (Tony)
|
||||
- Fixed bug #34742 (ftp wrapper failures caused from segmented command
|
||||
transfer). (Ilia)
|
||||
- Fixed bug #34725 (CLI segmentation faults during cleanup). (Dmitry)
|
||||
- Fixed bug #34723 (array_count_values() strips leading zeroes). (Tony)
|
||||
- Fixed bug #34712 (zend.ze1_compatibility_mode = on segfault). (Dmitry)
|
||||
- Fixed bug #34704 (Infinite recursion due to corrupt JPEG). (Marcus)
|
||||
- Fixed bug #34678 (__call(), is_callable() and static methods). (Dmitry)
|
||||
- Fixed bug #34676 (missing support for strtotime("midnight") and
|
||||
strtotime("noon")). (Derick)
|
||||
- Fixed bug #34645 (ctype corrupts memory when validating large numbers).
|
||||
(Ilia)
|
||||
- Fixed bug #34643 (wsdl default value has no effect). (Dmitry)
|
||||
- Fixed bug #34623 (Crash in pdo_mysql on longtext fields). (Ilia)
|
||||
- Fixed bug #34617 (zend_deactivate: objects_store used after
|
||||
zend_objects_store_destroy is called). (Dmitry)
|
||||
- Fixed bug #34590 (User defined PDOStatement class can't implement
|
||||
methods). (Marcus)
|
||||
- Fixed bug #34584 (Segfault with SPL autoload handler). (Marcus)
|
||||
- Fixed bug #34581 (crash with mod_rewrite). (Tony, Ilia)
|
||||
- Fixed bug #34565 (mb_send_mail does not fetch
|
||||
mail.force_extra_parameters). (Marco, Ilia)
|
||||
- Fixed bug #34557 (php -m exits with "error" 1). (Johannes)
|
||||
- Fixed bug #34518 (Unset doesn't separate container in CV). (Dmitry)
|
||||
- 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 #34467 (foreach + __get + __set inconsistency). (Dmitry)
|
||||
- Fixed bug #34456 (Possible crash inside pspell extension). (Ilia)
|
||||
- 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 #34420 (Possible crash inside curl_multi_remove_handle()). (Ilia)
|
||||
- Fixed bug #34358 (Fatal error: Cannot re-assign $this). (Dmitry)
|
||||
- Fixed bug #34331 (php crashes when variables_order is empty). (Ilia)
|
||||
- Fixed bug #34321 (Possible crash in filter code). (Ilia)
|
||||
- Fixed bug #34311 (unserialize() crashes with chars above 191 dec). (Nuno)
|
||||
- Fixed bug #34310 (foreach($arr as $c->d => $x) crashes). (Dmitry)
|
||||
- Fixed bug #34307 (on_modify handler not called to set the default value if
|
||||
setting from php.ini was invalid). (Andrei)
|
||||
- Fixed bug #34306 (wddx_serialize_value() crashes with long array keys).
|
||||
(Jani)
|
||||
- Fixed bug #34304 (date() doesn't have a modifier for ISO Week Day). (Derick)
|
||||
- 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 #34284 (CLI phpinfo showing html on _SERVER["argv"]). (Jani)
|
||||
- Fixed bug #34277 (array_filter() crashes with references and objects).
|
||||
(Dmitry)
|
||||
- Fixed bug #34276 (setAttributeNS doesn't work with default namespace).
|
||||
(Rob)
|
||||
- Fixed bug #34260 (Segfault with callbacks (array_map) + overloading).
|
||||
(Dmitry)
|
||||
- Fixed bug #34257 (lib64 not handled correctly in ming extension). (Marcus)
|
||||
- Fixed bug #34221 (Compiling xmlrpc as shared fails other parts). (Jani)
|
||||
- Fixed bug #34216 (Segfault with autoload). (Marcus)
|
||||
- Fixed bug #34199 (if($obj)/if(!$obj) inconsistency because of cast handler).
|
||||
(Dmitry, Alex)
|
||||
- Fixed bug #34191 (ob_gzhandler does not enforce trailing \0). (Ilia)
|
||||
- Fixed bug #34156 (memory usage remains elevated after memory limit is
|
||||
reached). (Ilia)
|
||||
- Fixed bug #34148 (+,- and . not supported as parts of scheme). (Ilia)
|
||||
- Fixed bug #34137 (assigning array element by reference causes binary mess).
|
||||
(Dmitry)
|
||||
- Fixed bug #34103 (line numbering not maintained in dom document). (Rob)
|
||||
- Fixed bug #34078 (Reflection API problems in methods with boolean or
|
||||
null default values). (Tony)
|
||||
- Fixed bug #34068 (Numeric string as array key not cast to integer in
|
||||
wddx_deserialize()). (Ilia)
|
||||
- Fixed bug #34064 (arr[] as param to function in class gives invalid
|
||||
opcode). (Dmitry)
|
||||
- Fixed bug #34062 (Crash in catch block when many arguments are used).
|
||||
(Dmitry)
|
||||
- Fixed bug #34052 (date('U') returns %ld not unix timestamp). (Nuno)
|
||||
- Fixed bug #34045 (Buffer overflow with serialized object). (Dmitry)
|
||||
- Fixed bug #34001 (pdo_mysql truncates numeric fields at 4 chars). (Ilia)
|
||||
- Fixed bug #33999 (object remains object when cast to int). (Dmitry)
|
||||
- Fixed bug #33996 (No information given for fatal error on passing invalid
|
||||
value to typed argument). (Dmitry)
|
||||
- Fixed bug #33989 (extract($GLOBALS,EXTR_REFS) crashes PHP). (Dmitry)
|
||||
- Fixed bug #33987 (php script as ErrorDocument causes crash in Apache 2).
|
||||
(Ilia)
|
||||
- Fixed bug #33967 (misuse of Exception constructor doesn't display
|
||||
errorfile). (Jani)
|
||||
- Fixed bug #33966 (Wrong use of reflectionproperty causes a segfault). (Tony)
|
||||
- Fixed bug #33963 (mssql_bind() fails on input parameters). (Frank)
|
||||
- Fixed bug #33958 (duplicate cookies and magic_quotes=off may cause a crash).
|
||||
(Ilia)
|
||||
- Fixed bug #33957 (gmdate('W')/date('W') sometimes returns wrong week number).
|
||||
(Derick)
|
||||
- Fixed bug #33940 (array_map() fails to pass by reference when called
|
||||
recursively). (Dmitry)
|
||||
- Fixed bug #33917 (number_format() output with > 1 char separators). (Jani)
|
||||
- Fixed bug #33904 (input array keys being escaped when magic quotes is off).
|
||||
(Ilia)
|
||||
- Fixed bug #33903 (spl_autoload_register class method). (Marcus)
|
||||
- Fixed bug #33899 (CLI: setting extension_dir=some/path extension=foobar.so
|
||||
does not work). (Jani)
|
||||
- Fixed bug #33882 (CLI was looking for php.ini in wrong path). (Hartmut)
|
||||
- Fixed bug #33869 (strtotime() problem with "+1days" format). (Ilia)
|
||||
- Fixed bug #33841 (pdo sqlite driver forgets to update affected column
|
||||
count on execution of prepared statments). (Ilia)
|
||||
- Fixed bug #33837 (Informix ESQL version numbering schema changed). (Jani)
|
||||
- Fixed bug #33829 (mime_content_type() returns text/plain for gzip and bzip
|
||||
files). (Derick)
|
||||
- Fixed bug #33802 (throw Exception in error handler causes crash). (Dmitry)
|
||||
- Fixed bug #33771 (error_reporting falls to 0 when @ was used inside
|
||||
try/catch block). (Tony)
|
||||
- Fixed bug #33760 (cURL needs to implement CRYPTO_callback functions to
|
||||
prevent locking). (Mike, Ilia)
|
||||
- Fixed bug #33732 (Wrong behavior of constants in class and interface
|
||||
extending). (Dmitry)
|
||||
- Fixed bug #33723 (php_value overrides php_admin_value). (Dmitry)
|
||||
- Fixed bug #33720 (mb_encode_mimeheader does not work for multibyte
|
||||
chars). (Rui)
|
||||
- Fixed bug #33710 (ArrayAccess objects does not initialize $this). (Dmitry)
|
||||
- Fixed bug #33690 (Crash setting some ini directives in httpd.conf). (Rasmus)
|
||||
- Fixed bug #33673 (Added detection for partially uploaded files). (Ilia)
|
||||
- Fixed bug #33605 (substr_compare() crashes with negative offset and length).
|
||||
(Tony)
|
||||
- Fixed bug #33597 (setcookie() "expires" date format doesn't comply with RFC).
|
||||
(Tony)
|
||||
- Fixed bug #33588 (LDAP: RootDSE query not possible). (Jani)
|
||||
- Fixed bug #33578 (strtotime() problem with "Oct17" format). (Derick)
|
||||
- Fixed bug #33578 (strtotime() doesn't understand "11 Oct" format). (Derick)
|
||||
- Fixed bug #33562 (date("") crashes). (Derick)
|
||||
- Fixed bug #33558 (warning with nested calls to functions returning by
|
||||
reference). (Dmitry)
|
||||
- Fixed bug #33536 (strtotime() defaults to now even on non time string).
|
||||
(Derick)
|
||||
- Fixed bug #33532 (Different output for strftime() and date()). (Derick)
|
||||
- Fixed bug #33523 (Memory leak in xmlrpc_encode_request()). (Ilia)
|
||||
- Fixed bug #33520 (crash if safe_mode is on and session.save_path is changed).
|
||||
(Dmitry)
|
||||
- Fixed bug #33512 (Add missing support for isset()/unset() overloading to
|
||||
complement the property get/set methods). (Dmitry)
|
||||
- Fixed bug #33491 (crash after extending MySQLi internal class). (Tony)
|
||||
- Fixed bug #33475 (cURL handle is not closed on curl_close(). (Ilia)
|
||||
- Fixed bug #33469 (Compile error undefined reference to ifx_checkAPI). (Jani)
|
||||
- Fixed bug #33433 (strtoll not available on Tru64). (Jani, Derick)
|
||||
- Fixed bug #33427 (ext/odbc: check if unixODBC header file exists). (Jani)
|
||||
- Fixed bug #33415 (strtotime() related bugs). (Derick)
|
||||
- Fixed bug #33414 (Comprehensive list of incorrect days returned after
|
||||
strtotime() / date() tests). (Derick)
|
||||
- Fixed bug #33389 (double free() when exporting a ReflectionClass). (Marcus)
|
||||
- Fixed bug #33383 (crash when retrieving empty LOBs). (Tony)
|
||||
- Fixed bug #33382 (array_reverse() fails after *sort()), introduced by
|
||||
zend_hash_sort() optimizations in HEAD. (Tony)
|
||||
- Fixed bug #33340 (CLI Crash when calling php:function from XSLT). (Rob)
|
||||
- Fixed bug #33326 (Cannot build extensions with phpize on Macosx). (Jani)
|
||||
- Fixed bug #33318 (throw 1; results in Invalid opcode 108/1/8). (Dmitry)
|
||||
- Fixed bug #33312 (ReflectionParameter methods do not work correctly).
|
||||
(Dmitry)
|
||||
- Fixed bug #33299 (php:function no longer handles returned dom objects).
|
||||
(Rob, Joe Orton)
|
||||
- Fixed bug #33286 (nested array_walk() calls and user array compare functions
|
||||
broken; FCI cache). (Andrei, patch from m.bretz@metropolis-ag.de)
|
||||
- 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 #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 #33212 ([GCC 4]: 'zend_error_noreturn' aliased to external symbol
|
||||
'zend_error'). (Dmitry)
|
||||
- Fixed bug #33210 (relax jpeg recursive loop protection). (Ilia)
|
||||
- Fixed bug #33201 (Crash when fetching some data types). (Frank)
|
||||
- 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 #33167 (Possible crash inside pg_fetch_array()). (Ilia)
|
||||
- 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 #33153 (crash in mssql_next result). (Frank)
|
||||
- Fixed bug #33150 (shtool: insecure temporary file creation). (Jani)
|
||||
- Fixed bug #33136 (method offsetSet in class extended from ArrayObject crash
|
||||
PHP). (Marcus)
|
||||
- Fixed bug #33125 (imagecopymergegray() produces mosaic rainbow effect).
|
||||
(Pierre)
|
||||
- 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 #32993 (implemented Iterator function current() don't throw
|
||||
exception). (Dmitry)
|
||||
- Fixed bug #32924 (file included with "auto_prepend_file" can be included
|
||||
- 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 #32937 (open_basedir looses trailing / in the limiter).
|
||||
(Adam Conrad)
|
||||
- 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 #32924 (file included with "auto_prepend_file" can be included
|
||||
with require_once() or include_once()). (Stas)
|
||||
- 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 #32833 (Invalid opcode). (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() function).
|
||||
(Ilia)
|
||||
- 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 #32429 (method_exists() always return TRUE if __call method
|
||||
- Fixed bug #32455 (wrong setting property to unset value). (Dmitry)
|
||||
- Fixed bug #32429 (method_exists() always return TRUE if __call method
|
||||
exists). (Dmitry)
|
||||
- Fixed bug #32428 (The @ warning error supression operator is broken).
|
||||
- Fixed bug #32428 (The @ warning error suppression operator is broken).
|
||||
(Dmitry)
|
||||
- Fixed bug #32427 (Interfaces are not allowed 'static' access modifier).
|
||||
(Dmitry)
|
||||
- Fixed bug #32109 ($_POST is not populated in multithreaded environment).
|
||||
- Fixed bug #32405 (mysqli::fetch() returns bad data - 64bit problem).
|
||||
(Andrey)
|
||||
- Fixed bug #32296 (get_class_methods() output has changed between 5.0.2 and
|
||||
5.0.3). (Dmitry)
|
||||
- Fixed bug #32282 (Segfault in mysqli_fetch_array on 64-bit). (Georg)
|
||||
- Fixed bug #32245 (xml_parser_free() in a function assigned to the xml
|
||||
parser gives a segfault). (Rob)
|
||||
- Fixed bug #32179 (xmlrpc_encode() segfaults with recursive references).
|
||||
(Tony)
|
||||
- Fixed bug #32171 (Userspace stream wrapper crashes PHP). (Tony, Dmitry)
|
||||
- Fixed bug #32160 (copying a file into itself leads to data loss). (Ilia)
|
||||
- Fixed bug #32139 (SOAP client does not auto-handle base64 encoding). (Ilia)
|
||||
- Fixed bug #32109 ($_POST is not populated in multi-threaded environment).
|
||||
(Moriyoshi)
|
||||
- Fixed bug #32080 (segfault when assigning object to itself with
|
||||
zend.ze1_compatibility_mode=On). (Dmitry)
|
||||
- Fixed bug #32021 (Crash caused by range('', 'z')). (Derick)
|
||||
- Fixed bug #32013 (ext/mysqli bind_result causes fatal error: memory limit).
|
||||
(Andrey)
|
||||
- Fixed bug #32010 (Memory leak in mssql_fetch_batch). (fmk)
|
||||
- Fixed bug #32009 (crash when mssql_bind() is called more than once). (Frank)
|
||||
- Fixed bug #31971 (ftp_login fails on some SSL servers).
|
||||
(frantisek at augusztin dot com)
|
||||
- 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 #31478 (segfault with empty() / isset()). (Moriyoshi)
|
||||
- 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 #31358 (Older GCC versions do not provide portable va_copy()).
|
||||
(Jani)
|
||||
- Fixed bug #31341 (escape on curly inconsistent). (Dmitry)
|
||||
- Fixed bug #31256 (PHP_EVAL_LIBLINE configure macro does not handle
|
||||
-pthread). (Jani)
|
||||
- Fixed bug #31213 (Side effects caused by fix of bug #29493). (Dmitry)
|
||||
- Fixed bug #31177 (memory leaks and corruption because of incorrect
|
||||
refcounting). (Dmitry)
|
||||
- Fixed bug #31158 (array_splice on $GLOBALS crashes). (Dmitry)
|
||||
- Fixed bug #31054 (safe_mode & open_basedir checks only check first
|
||||
include_path value). (Ilia)
|
||||
- Fixed bug #31033 (php:function(string, nodeset) with xsl:key crashes PHP).
|
||||
(Rob)
|
||||
- Fixed bug #30578 (Output buffers flushed before calling __desctruct()
|
||||
- Fixed bug #30961 (Wrong line number 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 #30578 (Output buffers flushed before calling __destruct()
|
||||
functions). (Jani)
|
||||
- Fixed bug #30407 (Strange behaviour of default arguments). (Dmitry)
|
||||
- Fixed bug #30519 (Interface not existing says Class not found). (Dmitry)
|
||||
- Fixed bug #30407 (Strange behavior of default arguments). (Dmitry)
|
||||
- Fixed bug #30394 (Assignment operators yield wrong result with __get/__set).
|
||||
(Dmitry)
|
||||
- Fixed bug #30332 (zend.ze1_compatibility_mode isn't fully compatible 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 #30096 (gmmktime does not return the current time). (Derick)
|
||||
- Fixed bug #30080 (Passing array or non array of objects). (Dmitry)
|
||||
- Fixed bug #30052 (Crash on shutdown after odbc_pconnect()). (Edin)
|
||||
- Fixed bug #29983 (PHP does not explicitly set mime type & charset). (Ilia)
|
||||
- Fixed bug #29975 (memory leaks when set_error_handler() is used inside error
|
||||
handler). (Tony)
|
||||
- Fixed bug #29971 (variables_order behavior). (Dmitry)
|
||||
- Fixed bug #29944 (Function defined in switch, crashes). (Dmitry)
|
||||
- Fixed bug #29896 (Backtrace argument list out of sync). (Dmitry)
|
||||
- Fixed bug #29728 (Reflection API Feature: Default parameter value). (Marcus)
|
||||
- Fixed bug #29689 (default value of protected member overrides default value
|
||||
of private and other private variable problems in inherited classes). (Stas)
|
||||
- Fixed bug #29683 (headers_list() returns empty array). (Tony)
|
||||
- Fixed bug #29583 (crash when echoing a COM object). (M.Sisolak, Wez)
|
||||
- Fixed bug #29522 (accessing properties without connection). (Georg)
|
||||
- Fixed bug #29361 (var_export() producing invalid code). (Derick)
|
||||
- Fixed bug #29338 (unencoded spaces get ignored after certain tags). (Ilia)
|
||||
- Fixed bug #29335 (fetch functions now use MYSQLI_BOTH as default). (Georg)
|
||||
- Fixed bug #29334 (win32 mail() provides incorrect Date: header). (Jani)
|
||||
- Fixed bug #29311 (calling parent constructor in mysqli). (Georg)
|
||||
- Fixed bug #29256 (SOAP HTTP Error when envelop size is more than 24345
|
||||
bytes). (Dmitry, Wez)
|
||||
- Fixed bug #29268 (__autoload() not called with Reflection->getClass()).
|
||||
(Dmitry)
|
||||
- Fixed bug #29256 (SOAP HTTP Error when envelop size is more than 24345
|
||||
bytes). (Dmitry, Wez)
|
||||
- Fixed bug #29253 (array_diff with $GLOBALS argument fails). (Dmitry)
|
||||
- Fixed bug #29236 (memory error when wsdl-cache is enabled). (Dmitry)
|
||||
- Fixed bug #29210 (Function: is_callable - no support for private and
|
||||
protected classes). (Dmitry)
|
||||
- Fixed bug #29109 (SoapFault exception: [WSDL] Out of memory). (Dmitry)
|
||||
- Fixed bug #29104 (Function declaration in method doesn't work). (Dmitry)
|
||||
- Fixed bug #29061 (soap extension segfaults). (Dmitry)
|
||||
- Fixed bug #29015 (Incorrect behavior of member vars(non string ones)-numeric
|
||||
mem vars and others). (Dmitry)
|
||||
- Fixed bug #28985 (__getTypes() returning nothing on complex WSDL). (Dmitry)
|
||||
- Fixed bug #28969 (Wrong data encoding of special characters). (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 #28568 (SAPI::known_post_content_types is not thread safe).
|
||||
(Moriyoshi)
|
||||
- Fixed bug #29689 (default value of protected member overrides default value of private)
|
||||
and other private variable problems in inherited classes (Stas)
|
||||
- Abstract private methods are no longer allowed (Stas)
|
||||
- Fixed bug #28377 (debug_backtrace is intermittently passing args). (Dmitry)
|
||||
- Fixed bug #28355 (glob wont error if dir is not readable). (Hartmut)
|
||||
- Fixed bug #28072 (static array with some constant keys will be incorrectly
|
||||
ordered). (Dmitry)
|
||||
- Fixed bug #27908 (xml default_handlers not being called). (Rob)
|
||||
- Fixed bug #27598 (list() array key assignment causes HUGE memory leak).
|
||||
(Dmitry)
|
||||
- Fixed bug #27268 (Bad references accentuated by clone). (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 #25359 (array_multisort() doesn't work in a function if array is
|
||||
global or reference). (Dmitry)
|
||||
- Fixed bug #22836 (returning reference to uninitialized variable). (Dmitry)
|
||||
- Fixed bug #21306 (ext/sesssion: catch bailouts of write handler during
|
||||
RSHUTDOWN). (Jani, Xuefer at 21cn dot com)
|
||||
- Fixed bug #15854 (boolean ini options may be incorrectly displayed as Off
|
||||
when they are On). (Tony)
|
||||
- Fixed bugs #14561, #20382, #26090, #26320, #28024, #30532, #32086, #32270,
|
||||
#32555, #32588, #33056 (strtotime() related bugs). (Derick)
|
||||
|
||||
31 Mar 2005, PHP 5.0.4
|
||||
- Added SNMPv2 support. (harrie)
|
||||
|
||||
@@ -64,14 +64,6 @@ documentation
|
||||
* Add developer documentation.
|
||||
* Add detailed documentation for Java extension.
|
||||
|
||||
ext/bz2
|
||||
-------
|
||||
* Add an ini directive to specify the size of decompression buffer.
|
||||
The default 4k is too small for large files and also requires much time
|
||||
for decompression. 40k is suitable for such files, however it may be too
|
||||
much under certain environments. There should be appropriate default
|
||||
settings for the various SAPI modules (e.g. apache and cli).
|
||||
|
||||
ext/curl
|
||||
--------
|
||||
* Have a warning scheme for when people use unsupported features.
|
||||
|
||||
@@ -2,9 +2,3 @@ Zend Engine
|
||||
-----------
|
||||
- Look at making zend_constant value member be a zval* instead of zval. (Andi)
|
||||
- Implement inheritance rules for type hints. (Marcus)
|
||||
- Implement typehinting for arrays (apply the patch). (Andi, Marcus)
|
||||
- Find a keyword for the if-set-or operator (apply the patch). (Marcus, all)
|
||||
|
||||
Standard Library
|
||||
----------------
|
||||
- Implement new time/date parsing and handling functions. (Derick)
|
||||
@@ -1,3 +0,0 @@
|
||||
- clean up .cvsignores
|
||||
- purge Makefile.ins and replace PHP_EXTENSION in config.m4s
|
||||
with appropiate calls to PHP_NEW_EXTENSION
|
||||
-19
@@ -430,7 +430,6 @@ void *tsrm_new_interpreter_context(void)
|
||||
|
||||
current = tsrm_tls_get();
|
||||
|
||||
new_ctx = malloc(sizeof(*new_ctx));
|
||||
allocate_new_resource(&new_ctx, thread_id);
|
||||
|
||||
/* switch back to the context that was in use prior to our creation
|
||||
@@ -580,12 +579,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)
|
||||
@@ -615,12 +608,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)
|
||||
@@ -646,12 +633,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)
|
||||
|
||||
+1
-1
@@ -143,7 +143,7 @@ TSRM_API void tsrm_free_interpreter_context(void *context);
|
||||
|
||||
#define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL)
|
||||
#define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx
|
||||
#define TSRMLS_SET_CTX(ctx) (void ***) ctx = tsrm_ls
|
||||
#define TSRMLS_SET_CTX(ctx) ctx = (void ***) tsrm_ls
|
||||
#define TSRMG(id, type, element) (((type) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
|
||||
#define TSRMLS_D void ***tsrm_ls
|
||||
#define TSRMLS_DC , TSRMLS_D
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2004 The PHP Group |
|
||||
| Copyright (c) 1997-2005 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.0 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2004 The PHP Group |
|
||||
| Copyright (c) 1997-2005 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.0 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+18
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2004 The PHP Group |
|
||||
| Copyright (c) 1997-2005 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.0 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -42,6 +42,10 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef NETWARE
|
||||
#include <fsio.h>
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_REALPATH
|
||||
#define realpath(x,y) strcpy(y,x)
|
||||
#endif
|
||||
@@ -206,7 +210,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';
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2004 The PHP Group |
|
||||
| Copyright (c) 1997-2005 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.0 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -70,12 +70,10 @@ typedef unsigned short mode_t;
|
||||
#include <dirent.h>
|
||||
#endif
|
||||
|
||||
#define DEFAULT_SLASH '\\'
|
||||
#define DEFAULT_SLASH '/'
|
||||
#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 */
|
||||
/* Colon indicates volume name, either first character should be forward slash or backward slash */
|
||||
#define IS_ABSOLUTE_PATH(path, len) \
|
||||
((strchr(path, ':') != NULL) || ((len >= 1) && ((path[0] == '/') || (path[0] == '\\'))))
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2004 The PHP Group |
|
||||
| Copyright (c) 1997-2005 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.0 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2004 The PHP Group |
|
||||
| Copyright (c) 1997-2005 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.0 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -0,0 +1,548 @@
|
||||
$Id$
|
||||
|
||||
UPGRADE NOTES - PHP 5.1
|
||||
|
||||
1. Changes in reference handling
|
||||
a. Overview
|
||||
b. Code that worked under PHP 4.3, but now fails
|
||||
c. Code that was valid under PHP 4.3, but now throws an error
|
||||
d. Code that failed under PHP 4.3, but now works
|
||||
e. Code that 'should have worked' under PHP 5.0
|
||||
f. Warnings that came and went
|
||||
2. Reading []
|
||||
3. instanceof, is_a(), is_subclass_of(), catch
|
||||
4. Integer values in function parameters
|
||||
5. Abstract private methods
|
||||
6. Access modifiers in interfaces
|
||||
7. Changes in inheritance rules
|
||||
8. Class constants
|
||||
9. Extensions
|
||||
a. Extensions that are gone from the PHP core
|
||||
b. Class constants in new PHP 5.1 extensions
|
||||
10. Date/time support
|
||||
11. Changes in database support
|
||||
a. PDO overview
|
||||
b. Changes in MySQL support
|
||||
c. Changes in SQLite support
|
||||
12. Further migration information
|
||||
13. Checking for E_STRICT errors
|
||||
|
||||
===============================================================================
|
||||
|
||||
1. Changes in reference handling
|
||||
================================
|
||||
|
||||
1a. Overview
|
||||
============
|
||||
|
||||
>From the PHP script writer's point of view, the change most likely to impact
|
||||
legacy code is in the way that references are handled in all PHP versions
|
||||
post-dating the PHP 4.4.0 release.
|
||||
|
||||
Until and including PHP 4.3, it was possible to send, assign or return variables
|
||||
by reference that should really be returned by value, such as a constant, a
|
||||
temporary value (e.g. the result of an expression), or the result of a function
|
||||
that had itself been returned by value, as here:
|
||||
|
||||
<?php
|
||||
|
||||
$foo = "123";
|
||||
|
||||
function return_value() {
|
||||
global $foo;
|
||||
return $foo;
|
||||
}
|
||||
|
||||
$bar = &return_value();
|
||||
|
||||
?>
|
||||
|
||||
Although this code would usually work as expected under PHP 4.3, in the general
|
||||
case the result is undefined. The Zend Engine could not act correctly on these
|
||||
values as references. This bug could and did lead to various hard-to-reproduce
|
||||
memory corruption problems, particularly where the code base was large.
|
||||
|
||||
In PHP 4.4.0, PHP 5.0.4 and all subsequent PHP releases, the Engine was fixed
|
||||
to 'know' when the reference operation is being used on a value that should
|
||||
not be referenced. The actual value is now used in such cases, and a warning
|
||||
is emitted. The warning takes the form of an E_NOTICE in PHP 4.4.0 and up,
|
||||
and E_STRICT in PHP 5.0.4 and up.
|
||||
|
||||
Code that could potentially produce memory corruption can no longer do so.
|
||||
However, some legacy code might work differently as a result.
|
||||
|
||||
1b. Code that worked under PHP 4.3, but now fails
|
||||
=================================================
|
||||
|
||||
<?php
|
||||
|
||||
function func(&$arraykey) {
|
||||
return $arraykey; // function returns by value!
|
||||
}
|
||||
|
||||
$array = array('a', 'b', 'c');
|
||||
foreach (array_keys($array) as $key) {
|
||||
$y = &func($array[$key]);
|
||||
$z[] =& $y;
|
||||
}
|
||||
|
||||
var_dump($z);
|
||||
|
||||
?>
|
||||
Running the above script under any version of PHP that pre-dates the reference
|
||||
fix would produce this output:
|
||||
|
||||
array(3) {
|
||||
[0]=>
|
||||
&string(1) "a"
|
||||
[1]=>
|
||||
&string(1) "b"
|
||||
[2]=>
|
||||
&string(1) "c"
|
||||
}
|
||||
|
||||
Following the reference fix, the same code would result in:
|
||||
|
||||
array(3) {
|
||||
[0]=>
|
||||
&string(1) "c"
|
||||
[1]=>
|
||||
&string(1) "c"
|
||||
[2]=>
|
||||
&string(1) "c"
|
||||
}
|
||||
|
||||
This is because, following the changes, func() assigns by value. The value
|
||||
of $y is re-assigned, and reference-binding is preserved from $z. Prior
|
||||
to the fix, the value was assigned by reference, leading $y to be
|
||||
re-bound on each assignment. The attempt to bind to a temporary value
|
||||
by reference was the cause of the memory corruption.
|
||||
|
||||
Such code can be made to work identically in both the pre-fix and the
|
||||
post-fix PHP versions. The signature of func() can be altered to return
|
||||
by reference, or the reference assignment can be removed from the result
|
||||
of func().
|
||||
|
||||
<?php
|
||||
|
||||
function func() {
|
||||
return 'function return';
|
||||
}
|
||||
|
||||
$x = 'original value';
|
||||
$y =& $x;
|
||||
$y = &func();
|
||||
echo $x;
|
||||
|
||||
?>
|
||||
|
||||
In PHP 4.3 $x would be 'original value', whereas after the changes it would
|
||||
be 'function return' - remember that where the function does not return by
|
||||
reference, the reference assignment is converted to a regular assignment.
|
||||
Again, this can be brought to a common base, either by forcing func() to
|
||||
return by reference or by eliminating the by-reference assignment.
|
||||
|
||||
1c. Code that was valid under PHP 4.3, but now throws an error
|
||||
==============================================================
|
||||
|
||||
<?php
|
||||
|
||||
class Foo {
|
||||
|
||||
function getThis() {
|
||||
return $this;
|
||||
}
|
||||
|
||||
function destroyThis() {
|
||||
$baz =& $this->getThis();
|
||||
}
|
||||
}
|
||||
|
||||
$bar = new Foo();
|
||||
$bar->destroyThis();
|
||||
var_dump($bar);
|
||||
|
||||
?>
|
||||
|
||||
In PHP 5.0.3, $bar evaluated to NULL instead of returning an object.
|
||||
That happened because getThis() returns by value, but the value here
|
||||
is assigned by reference. Although it now works in the expected way,
|
||||
this is actually invalid code which will throw an E_NOTICE under
|
||||
PHP 4.4 or an E_STRICT under PHP 5.0.4 and up.
|
||||
|
||||
1d. Code that failed under PHP 4.3, but now works
|
||||
=================================================
|
||||
|
||||
<?php
|
||||
|
||||
function &f() {
|
||||
$x = "foo";
|
||||
var_dump($x);
|
||||
print "$x\n";
|
||||
return($a);
|
||||
}
|
||||
|
||||
for ($i = 0; $i < 3; $i++) {
|
||||
$h = &f();
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
In PHP 4.3 the third call to var_dump produces NULL, due to the memory
|
||||
corruption caused by returning an uninitialized value by reference.
|
||||
This is valid code in PHP 5.0.4 and up, but threw errors in earlier
|
||||
releases of PHP.
|
||||
|
||||
<?php
|
||||
|
||||
$arr = array('a1' => array('alfa' => 'ok'));
|
||||
$arr =& $arr['a1'];
|
||||
echo '-'.$arr['alfa']."-\n";
|
||||
|
||||
?>
|
||||
|
||||
Until PHP 5.0.5, it wasn't possible to assign an array element by
|
||||
reference in this way. It now is.
|
||||
|
||||
1e. Code that 'should have worked' under PHP 5.0
|
||||
================================================
|
||||
|
||||
There are a couple of instances of bugs reported under PHP 5.0 prior
|
||||
to the reference fixes which now 'work'. However, in both cases errors
|
||||
are thrown by PHP 5.1, because the code was invalid in the first place.
|
||||
Returning values by reference using self:: now works in the general
|
||||
case but throws an E_STRICT warning, and although your mileage may
|
||||
vary when assigning by reference to an overloaded object, you will
|
||||
still see an E_ERROR when you try it, even where the assignment
|
||||
itself appears to work.
|
||||
|
||||
1f. Warnings that came and went
|
||||
===============================
|
||||
|
||||
<?php
|
||||
|
||||
function & foo() {
|
||||
$var = 'ok';
|
||||
return $var;
|
||||
}
|
||||
|
||||
function & bar() {
|
||||
return foo();
|
||||
}
|
||||
|
||||
$a =& bar();
|
||||
echo "$a\n";
|
||||
|
||||
?>
|
||||
|
||||
Nested calls to functions returning by reference are valid code under both
|
||||
PHP 4.3 and PHP 5.1, but threw an unwarranted E_NOTICE or E_STRICT under
|
||||
the intervening PHP releases.
|
||||
|
||||
2. Reading []
|
||||
=============
|
||||
|
||||
<?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();
|
||||
|
||||
?>
|
||||
|
||||
This should always have thrown a fatal E_ERROR, because [] cannot be used
|
||||
for reading in PHP. It is invalid code in PHP 4.4.2 and PHP 5.0.5 upward.
|
||||
|
||||
3. instanceof, is_a(), is_subclass_of(), catch
|
||||
==============================================
|
||||
|
||||
In PHP 5.0, is_a() was deprecated and replaced by the "instanceof" operator.
|
||||
There were some issues with the initial implementation of "instanceof", which
|
||||
relied on __autoload() to search for missing classes. If the class was not
|
||||
present, "instanceof" would throw a fatal E_ERROR due to the failure of
|
||||
__autoload() to discover that class. The same behaviour occurred in the
|
||||
"catch" operator and the is_subclass_of() function, for the same reason.
|
||||
|
||||
None of these functions or operators call __autoload() in PHP 5.1, and
|
||||
the class_exists() workarounds used in code written for PHP 5.0, while
|
||||
not problematic in any way, are no longer necessary.
|
||||
|
||||
4. Integer values in function parameters
|
||||
========================================
|
||||
|
||||
With the advent of PHP 5.0, a new parameter parsing API was introduced
|
||||
which is used by a large number of PHP functions. In all versions of
|
||||
PHP between 5.0 and 5.1, the handling of integer values was very strict
|
||||
and would reject non-well formed numeric values when a PHP function
|
||||
expected an integer. These checks have now been relaxed to support
|
||||
non-well formed numeric strings such as " 123" and "123 ", and will
|
||||
no longer fail as they did under PHP 5.0. However, to promote code
|
||||
safety and input validation, PHP functions will now emit an E_NOTICE
|
||||
when such strings are passed as integers.
|
||||
|
||||
5. Abstract private methods
|
||||
===========================
|
||||
|
||||
Abstract private methods were supported between PHP 5.0.0 and PHP 5.0.4,
|
||||
but were then disallowed on the grounds that the behaviours of 'private'
|
||||
and 'abstract' are mutually exclusive.
|
||||
|
||||
6. Access modifiers in interfaces
|
||||
=================================
|
||||
|
||||
Under PHP 5.0, function declarations in interfaces were treated in exactly
|
||||
the same way as function declarations in classes. This has not been the case
|
||||
since October 2004, at which point only the 'public' access modifier was
|
||||
allowed in interface function declarations. Since April 2005 - which pre-dates
|
||||
the PHP 5.0b1 release - the 'static' modifier has also been allowed. However,
|
||||
the 'protected' and 'private' modifiers will now throw an E_ERROR, as will
|
||||
'abstract'. Note that this change should not affect your existing code, as
|
||||
none of these modifiers makes sense in the context of interfaces anyway.
|
||||
|
||||
7. Changes in inheritance rules
|
||||
===============================
|
||||
|
||||
Under PHP 5.0, it was possible to have a function declaration in a derived class
|
||||
that did not match the declaration of the same function in the base class, e.g.
|
||||
|
||||
class Base {
|
||||
function &return_by_ref() {
|
||||
$r = 1;
|
||||
return $r;
|
||||
}
|
||||
}
|
||||
|
||||
class Derived extends Base {
|
||||
function return_by_ref() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
This code will cause an E_STRICT error to be emitted under PHP 5.1.
|
||||
|
||||
8. Class constants
|
||||
==================
|
||||
|
||||
Under PHP 5.0, the following code was valid:
|
||||
|
||||
<?php
|
||||
|
||||
class test {
|
||||
const foobar = 'foo';
|
||||
const foobar = 'bar';
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
Under PHP 5.1, redefinition of a class constant will throw a fatal E_ERROR.
|
||||
|
||||
9. Extensions
|
||||
=============
|
||||
|
||||
9a. Extensions that are gone from the PHP core
|
||||
==============================================
|
||||
|
||||
One of the first things you're likely to notice when you download PHP 5.1 is that
|
||||
several of the older extensions have disappeared. Those extensions that are still
|
||||
actively maintained are available in the PHP Extension Community Library (PECL),
|
||||
at http://pecl.php.net. Windows binaries are built regularly, and you can obtain
|
||||
the binaries for PECL extensions built against PHP 5.1 from
|
||||
http://pecl4win.php.net/list.php/5_1.
|
||||
|
||||
Extension Alternative/status
|
||||
========= ========================
|
||||
ext/cpdf pecl/pdflib
|
||||
ext/dbx pecl/dbx
|
||||
ext/dio pecl/dio
|
||||
ext/fam not actively maintained
|
||||
ext/ingres_ii pecl/ingres
|
||||
ext/ircg not actively maintained
|
||||
ext/mcve pecl/mcve
|
||||
ext/mnogosearch not actively maintained
|
||||
ext/oracle ext/oci8 or ext/pdo_oci
|
||||
ext/ovrimos not actively maintained
|
||||
ext/pfpro not actively maintained
|
||||
- alternatives at http://pecl.php.net/packages.php?catpid=18&catname=Payment
|
||||
ext/w32api pecl/ffi
|
||||
ext/yp not actively maintained
|
||||
sapi/activescript http://pecl4win.php.net/ext.php/php5activescript.dll (PECL package)
|
||||
or pecl/activescript (CVS)
|
||||
|
||||
Modules in PECL that are not actively maintained (i.e. have not been supported
|
||||
for some time, have no active maintainer working on them currently, and do not
|
||||
have any PECL package releases), are still available in CVS at
|
||||
http://cvs.php.net/pecl/. However, unreleased PHP modules are by their nature
|
||||
unsupported, and your mileage may vary when attempting to install or use them.
|
||||
|
||||
9b. Class constants in new PHP 5.1 extensions
|
||||
=============================================
|
||||
|
||||
The Zend Engine 2.1 API allows extension developers to declare class constants
|
||||
in object oriented extensions. New extensions written for PHP 5.1, including SPL,
|
||||
PDO, ext/XMLReader and ext/date, have their constants in the format
|
||||
|
||||
PDO::CLASS_CONSTANT
|
||||
|
||||
rather than in the C format
|
||||
|
||||
PDO_CLASS_CONSTANT
|
||||
|
||||
in order to minimise pollution of the global namespace in PHP.
|
||||
|
||||
10. Date/time support
|
||||
====================
|
||||
|
||||
Date/time support has been fully rewritten in PHP 5.1, and no longer
|
||||
uses the system settings to 'know' the timezone in operation. It will
|
||||
instead utilize, in the following order:
|
||||
|
||||
* The timezone set using the date_default_timezone_set() function (if any)
|
||||
* The TZ environment variable (if non empty)
|
||||
* The date.timezone ini option (if set)
|
||||
* "magical" guess (if the operating system supports it)
|
||||
* If none of the above options succeeds, UTC
|
||||
|
||||
To ensure accuracy (and avoid an E_STRICT warning), you will need to define
|
||||
your timezone in your php.ini using the following format:
|
||||
|
||||
date.timezone = Europe/London
|
||||
|
||||
The supported timezones are listed, in this format, in the PHP manual at
|
||||
http://www.php.net/manual/en/timezones.php.
|
||||
|
||||
11. Changes in database support
|
||||
==============================
|
||||
|
||||
11a. PDO overview
|
||||
================
|
||||
|
||||
PHP Data Objects (PDO) were introduced as a PECL extension under PHP 5.0,
|
||||
and became part of the core PHP distribution in PHP 5.1. The PDO extension
|
||||
provides a consistent interface for database access, and is used alongside
|
||||
database-specific PDO drivers. Each driver may also have database-specific
|
||||
functions of its own, but basic data access functionality such as issuing
|
||||
queries and fetching data is covered by PDO functions, using the driver
|
||||
named in PDO::__construct().
|
||||
|
||||
Note that the PDO extension, and its drivers, are intended to be built as
|
||||
shared extensions. This will enable straightforward driver upgrades from
|
||||
PECL, without forcing you to rebuild all of PHP.
|
||||
|
||||
At the point of the PHP 5.1 release, PDO is more than ready for widespread
|
||||
testing and could be adopted in most situations. However, it is important
|
||||
to understand that PDO and its drivers are comparatively young and may be
|
||||
missing certain database-specific features; evaluate PDO carefully before
|
||||
you use it in new projects.
|
||||
|
||||
Legacy code will generally rely on the pre-existing database extensions,
|
||||
which are still maintained.
|
||||
|
||||
There is more in-depth information about the PDO extension in the manual
|
||||
at http://www.php.net/manual/ref.pdo.php.
|
||||
|
||||
11b. Changes in MySQL support
|
||||
============================
|
||||
|
||||
In PHP 4, MySQL 3 support was built-in. With the release of PHP 5.0 there
|
||||
were two MySQL extensions, named 'mysql' and 'mysqli', which were designed
|
||||
to support MySQL < 4.1 and MySQL 4.1 and up, respectively. With the
|
||||
introduction of PDO, which provides a very fast interface to all the
|
||||
database APIs supported by PHP, the PDO_MYSQL driver can support any
|
||||
of the current versions (MySQL 3, 4 or 5) in PHP code written for PDO,
|
||||
depending on the MySQL library version used during compilation. The
|
||||
older MySQL extensions remain in place for reasons of back compatibility,
|
||||
but are not enabled by default.
|
||||
|
||||
11c. Changes in SQLite support
|
||||
=============================
|
||||
|
||||
In PHP 5.0, SQLite 2 support was provided by the built-in sqlite
|
||||
extension, which was also available as a PECL extension in PHP 4.3
|
||||
and PHP 4.4. With the introduction of PDO, the sqlite extension doubles
|
||||
up to act as a 'sqlite2' driver for PDO; it is due to this that the
|
||||
sqlite extension in PHP 5.1 has a dependency upon the PDO extension.
|
||||
|
||||
PHP 5.1 ships with a number of alternative interfaces to sqlite:
|
||||
|
||||
The sqlite extension provides the "classic" sqlite procedural/OO API
|
||||
that you may have used in prior versions of PHP. It also provides the
|
||||
PDO 'sqlite2' driver, which allows you to access legacy SQLite 2
|
||||
databases using the PDO API.
|
||||
|
||||
PDO_SQLITE provides the 'sqlite' version 3 driver. SQLite version 3
|
||||
is vastly superior to SQLite version 2, but the file formats of the
|
||||
two versions are not compatible.
|
||||
|
||||
If your SQLite-based project is already written and working against
|
||||
earlier PHP versions, then you can continue to use ext/sqlite without
|
||||
problems, but will need to explicitly enable both PDO and sqlite. New
|
||||
projects should use PDO and the 'sqlite' (version 3) driver, as this is
|
||||
faster than SQLite 2, has improved locking concurrency, and supports
|
||||
both prepared statements and binary columns natively.
|
||||
|
||||
12. Further migration information
|
||||
================================
|
||||
|
||||
For general information about migrating from PHP 4 to PHP 5, please refer to
|
||||
the relevant section in the PHP manual at http://www.php.net/manual/migration5.php.
|
||||
|
||||
13. Checking for E_STRICT errors
|
||||
================================
|
||||
|
||||
If you only have a single script to check, you can pick up E_STRICT
|
||||
errors using PHP's commandline lint facility:
|
||||
|
||||
php -d error_reporting=4095 -l script_to_check.php
|
||||
|
||||
For larger projects, the shell script below will achieve the same task:
|
||||
|
||||
#!/bin/sh
|
||||
|
||||
directory=$1
|
||||
|
||||
shift
|
||||
|
||||
# These extensions are checked
|
||||
extensions="php inc"
|
||||
|
||||
check_file ()
|
||||
{
|
||||
echo -ne "Doing PHP syntax check on $1 ..."
|
||||
|
||||
# Options:
|
||||
ERRORS=`/www/php/bin/php -d display_errors=1 -d html_errors=0 -d error_prepend_string=" " -d error_append_string=" " -d error_reporting=4095 -l $1 | grep -v "No syntax errors detected"`
|
||||
|
||||
if test -z "$ERRORS"; then
|
||||
echo -ne "OK."
|
||||
else
|
||||
echo -e "Errors found!\n$ERRORS"
|
||||
fi
|
||||
|
||||
echo
|
||||
}
|
||||
|
||||
# loop over remaining file args
|
||||
for FILE in "$@" ; do
|
||||
for ext in $extensions; do
|
||||
if echo $FILE | grep "\.$ext$" > /dev/null; then
|
||||
if test -f $FILE; then
|
||||
check_file "$FILE"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
+904
@@ -1,3 +1,907 @@
|
||||
2005-08-05 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_execute.c
|
||||
tests/array_type_hint_001.phpt
|
||||
tests/bug33996.phpt:
|
||||
Fixed bug #33996 (No information given for fatal error on passing invalid
|
||||
value to typed argument)
|
||||
|
||||
* zend_operators.c
|
||||
tests/bug33999.phpt:
|
||||
Fixed bug #33999 (object remains object when cast to int)
|
||||
|
||||
* zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
Fixed memory leak in foreach() on undefined variable
|
||||
(Zend/tests/foreach_undefined.php)
|
||||
|
||||
2005-08-04 Antony Dovgal <antony@zend.com>
|
||||
|
||||
* tests/foreach_undefined.phpt:
|
||||
add test for the last Dmitry's fix
|
||||
|
||||
2005-08-04 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_compile.c:
|
||||
Fixed possible memory corryption during compilation of <?php foreach($a as
|
||||
$b); ?>
|
||||
|
||||
* (PHP_5_0)
|
||||
zend_objects.c:
|
||||
Fixed clone bug in ze1_compatibility mode
|
||||
|
||||
* zend_objects.c:
|
||||
Fixed clone bug in ze1_compatibilty mode
|
||||
|
||||
2005-08-03 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* LICENSE:
|
||||
- Bumber up year
|
||||
|
||||
* acconfig.h
|
||||
zend.c
|
||||
zend.h
|
||||
zend_API.c
|
||||
zend_API.h
|
||||
zend_alloc.c
|
||||
zend_alloc.h
|
||||
zend_builtin_functions.c
|
||||
zend_builtin_functions.h
|
||||
zend_compile.c
|
||||
zend_compile.h
|
||||
zend_config.nw.h
|
||||
zend_config.w32.h
|
||||
zend_constants.c
|
||||
zend_constants.h
|
||||
zend_default_classes.c
|
||||
zend_dynamic_array.c
|
||||
zend_dynamic_array.h
|
||||
zend_errors.h
|
||||
zend_exceptions.c
|
||||
zend_exceptions.h
|
||||
zend_execute.c
|
||||
zend_execute.h
|
||||
zend_execute_API.c
|
||||
zend_extensions.c
|
||||
zend_extensions.h
|
||||
zend_fast_cache.h
|
||||
zend_globals.h
|
||||
zend_globals_macros.h
|
||||
zend_hash.c
|
||||
zend_hash.h
|
||||
zend_highlight.c
|
||||
zend_highlight.h
|
||||
zend_indent.c
|
||||
zend_indent.h
|
||||
zend_ini.c
|
||||
zend_ini.h
|
||||
zend_ini_parser.y
|
||||
zend_ini_scanner.h
|
||||
zend_ini_scanner.l
|
||||
zend_interfaces.c
|
||||
zend_interfaces.h
|
||||
zend_istdiostream.h
|
||||
zend_iterators.c
|
||||
zend_iterators.h
|
||||
zend_language_parser.y
|
||||
zend_language_scanner.h
|
||||
zend_language_scanner.l
|
||||
zend_list.c
|
||||
zend_list.h
|
||||
zend_llist.c
|
||||
zend_llist.h
|
||||
zend_mm.c
|
||||
zend_mm.h
|
||||
zend_modules.h
|
||||
zend_multibyte.c
|
||||
zend_multibyte.h
|
||||
zend_multiply.h
|
||||
zend_object_handlers.c
|
||||
zend_object_handlers.h
|
||||
zend_objects.c
|
||||
zend_objects.h
|
||||
zend_objects_API.c
|
||||
zend_objects_API.h
|
||||
zend_opcode.c
|
||||
zend_operators.c
|
||||
zend_operators.h
|
||||
zend_ptr_stack.c
|
||||
zend_ptr_stack.h
|
||||
zend_qsort.c
|
||||
zend_qsort.h
|
||||
zend_reflection_api.c
|
||||
zend_reflection_api.h
|
||||
zend_sprintf.c
|
||||
zend_stack.c
|
||||
zend_stack.h
|
||||
zend_static_allocator.c
|
||||
zend_static_allocator.h
|
||||
zend_stream.c
|
||||
zend_stream.h
|
||||
zend_strtod.h
|
||||
zend_ts_hash.c
|
||||
zend_ts_hash.h
|
||||
zend_types.h
|
||||
zend_variables.c
|
||||
zend_variables.h
|
||||
zend_vm.h:
|
||||
Bump up the year
|
||||
|
||||
* README.ZEND_VM:
|
||||
Nuked DOS EOLs
|
||||
|
||||
2005-08-02 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_execute_API.c
|
||||
zend_execute_API.c:
|
||||
Fixed bug #33942 (the patch to #33156 crash cygwin except cli)
|
||||
|
||||
2005-08-02 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* zend_exceptions.c:
|
||||
- Fixed bug #33967 (misuse of Exception constructor doesn\'t display
|
||||
errorfile)
|
||||
|
||||
2005-08-02 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* bench.php:
|
||||
Removed warnings
|
||||
|
||||
2005-07-29 Ilia Alshanetsky <ilia@prohost.org>
|
||||
|
||||
* zend_vm_def.h
|
||||
zend_vm_execute.h:
|
||||
Fixed warning message generated when isset() or empty() are given invalid
|
||||
offset type.
|
||||
|
||||
2005-07-29 Anantha Kesari H Y <hyanantha@novell.com>
|
||||
|
||||
* acconfig.h
|
||||
acconfig.h:
|
||||
In NetWare few of the programs like apache2 and ldap use winsock inclusinf
|
||||
sys/socket.h is not desirable.
|
||||
--Kamesh
|
||||
|
||||
2005-07-29 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* zend_vm_execute.h:
|
||||
update generated file
|
||||
|
||||
2005-07-28 Andi Gutmans <andi@zend.com>
|
||||
|
||||
* zend_vm_def.h:
|
||||
- Tiny fixlet
|
||||
|
||||
2005-07-28 Marcus Boerger <marcus.boerger@post.rwth-aachen.de>
|
||||
|
||||
* zend_API.c
|
||||
zend_API.h:
|
||||
- Add convenience function zend_is_callable_ex() and base zend_is_callable
|
||||
and zend_make_callable on it. This functions allows to check if a php
|
||||
variable is a callable function and returns its function pointer as well
|
||||
as object if possible.
|
||||
|
||||
2005-07-26 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* zend_execute_API.c:
|
||||
bug #33865
|
||||
|
||||
2005-07-25 Marcus Boerger <marcus.boerger@post.rwth-aachen.de>
|
||||
|
||||
* zend_API.c:
|
||||
- Fix #33853
|
||||
|
||||
2005-07-22 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend.c
|
||||
zend.c
|
||||
tests/bug33802.phpt
|
||||
tests/bug33802.phpt
|
||||
tests/bug33802.phpt:
|
||||
Fixed bug #33802 (throw Exception in error handler causes crash)
|
||||
|
||||
2005-07-21 Marcus Boerger <marcus.boerger@post.rwth-aachen.de>
|
||||
|
||||
* zend_execute_API.c:
|
||||
- Fix error generation logic (found by johannes)
|
||||
|
||||
2005-07-21 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_vm_def.h:
|
||||
Fixed bug with returning from internal function by reference
|
||||
|
||||
2005-07-19 Marcus Boerger <marcus.boerger@post.rwth-aachen.de>
|
||||
|
||||
* zend_interfaces.c:
|
||||
- Dont't warn in case an exception is pending - in this case it'd
|
||||
superflous
|
||||
|
||||
2005-07-19 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_compile.c
|
||||
zend_compile.c
|
||||
zend_execute.c
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
Fixed bug #33710 (ArrayAccess objects doen't initialize $this)
|
||||
|
||||
2005-07-18 Rasmus Lerdorf <rasmus@lerdorf.com>
|
||||
|
||||
* zend_language_scanner.l:
|
||||
Valgrind is unhappy that this is not initialized
|
||||
|
||||
2005-07-18 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_API.c
|
||||
zend_API.h:
|
||||
Fixed bug in new module statrup mechanism
|
||||
|
||||
* (PHP_5_0)
|
||||
zend_execute.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h
|
||||
tests/bug33558.phpt:
|
||||
Fixed bug #33558 (warning with nested calls to functions returning by
|
||||
reference)
|
||||
|
||||
* tests/bug33558.phpt
|
||||
tests/bug33558.phpt:
|
||||
|
||||
Fixed bug #33558 (warning with nested calls to functions returning by
|
||||
reference)
|
||||
|
||||
* zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_gen.php
|
||||
zend_vm_opcodes.h:
|
||||
Removed some compilation warnings.
|
||||
|
||||
2005-07-18 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* tests/bug33710.phpt:
|
||||
typo
|
||||
|
||||
2005-07-17 Marcus Boerger <marcus.boerger@post.rwth-aachen.de>
|
||||
|
||||
* tests/bug33710.phpt:
|
||||
- Add new test
|
||||
|
||||
2005-07-17 Ilia Alshanetsky <ilia@prohost.org>
|
||||
|
||||
* zend_compile.c:
|
||||
Added missing init.
|
||||
|
||||
2005-07-14 Andi Gutmans <andi@zend.com>
|
||||
|
||||
* zend.h:
|
||||
- Back to -dev
|
||||
|
||||
* (php_5_1_0b3)
|
||||
zend.h:
|
||||
- Beta 3
|
||||
|
||||
2005-07-12 Andi Gutmans <andi@zend.com>
|
||||
|
||||
* zend.h:
|
||||
- Back to -dev
|
||||
|
||||
* (php_5_1_0b3)
|
||||
zend.h:
|
||||
- Beta 3
|
||||
|
||||
2005-07-12 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* (php_5_1_0b3)
|
||||
zend_execute_API.c
|
||||
zend_execute_API.c:
|
||||
Fixed bug #33156 (cygwin version of setitimer doesn't accept ITIMER_PROF).
|
||||
(Nuno)
|
||||
|
||||
2005-07-11 Ilia Alshanetsky <ilia@prohost.org>
|
||||
|
||||
* zend_vm_def.h
|
||||
zend_vm_execute.h:
|
||||
Make references misuse emit E_NOTICE rather E_STRICT to be compatible with
|
||||
PHP 4.4.0
|
||||
|
||||
2005-07-08 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* tests/unset_cv05.phpt
|
||||
tests/unset_cv06.phpt:
|
||||
fix test when session.save_handler is "user"
|
||||
|
||||
2005-07-07 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend.h
|
||||
zend_API.c
|
||||
zend_API.h
|
||||
zend_compile.c
|
||||
zend_compile.h
|
||||
zend_object_handlers.c
|
||||
zend_objects.c
|
||||
zend_reflection_api.c:
|
||||
Fixed bug #33512 (Add missing support for isset()/unset() overloading to
|
||||
complement the property get/set methods)
|
||||
|
||||
2005-07-07 Anantha Kesari H Y <hyanantha@novell.com>
|
||||
|
||||
* zend_stream.c
|
||||
zend_stream.c:
|
||||
zend_stream_getc uses fread internally. NetWare LibC fread reads 4(Which I
|
||||
believe EOT) for EOF(^D) character. This happens when fread is asked to
|
||||
read one and only character as is the case with cl interactive mode.
|
||||
-- Kamesh
|
||||
|
||||
2005-07-07 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_execute_API.c
|
||||
zend_hash.c
|
||||
zend_hash.h
|
||||
tests/bug28072.phpt:
|
||||
Fixed bug #28072 (static array with some constant keys will be incorrectly
|
||||
ordered).
|
||||
|
||||
2005-07-04 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_compile.h
|
||||
zend_execute.c
|
||||
zend_language_parser.y
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
Fixed SIGSEGV on 'global ${"{$blah}_ID"};'
|
||||
|
||||
* zend_API.h
|
||||
zend_execute_API.c:
|
||||
Fixed bug #31158 (array_splice on $GLOBALS crashes)
|
||||
|
||||
2005-07-03 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
Fixed memory leak
|
||||
|
||||
2005-06-30 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_API.c
|
||||
zend_API.h:
|
||||
Restored old behavior of zend_statup_module()
|
||||
|
||||
2005-06-29 Stanislav Malyshev <stas@zend.com>
|
||||
|
||||
* zend_execute.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h:
|
||||
fix conditions for freeing
|
||||
|
||||
* zend_API.c
|
||||
zend_API.c:
|
||||
add comment
|
||||
|
||||
* (PHP_5_0)
|
||||
zend_execute.c:
|
||||
fix conditions
|
||||
|
||||
2005-06-28 Antony Dovgal <antony@zend.com>
|
||||
|
||||
* zend_execute.c:
|
||||
fix leak: when dup was <success>ful zend_std_object_get_class_name()
|
||||
returns SUCCESS aka 0
|
||||
|
||||
2005-06-28 Stanislav Malyshev <stas@zend.com>
|
||||
|
||||
* zend_execute.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h:
|
||||
fix previous patch
|
||||
|
||||
* zend_vm_execute.h:
|
||||
update
|
||||
|
||||
* zend_execute.c
|
||||
zend_vm_def.h:
|
||||
fixes for non-php objects
|
||||
|
||||
* (PHP_5_0)
|
||||
zend_execute.c:
|
||||
fixes fo rnon-php objects (John Coggeshall)
|
||||
|
||||
2005-06-27 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* zend.c:
|
||||
- Fixed bug #31358 (Older GCC versions do not provide portable va_copy()).
|
||||
|
||||
2005-06-27 Stanislav Malyshev <stas@zend.com>
|
||||
|
||||
* zend_API.c
|
||||
zend_API.c
|
||||
zend_API.h
|
||||
zend_API.h
|
||||
zend_builtin_functions.c
|
||||
zend_builtin_functions.c
|
||||
zend_exceptions.c
|
||||
zend_exceptions.c:
|
||||
fix various "Class entry requested for an object without PHP class"
|
||||
messages
|
||||
when working with non-PHP objects.
|
||||
|
||||
2005-06-27 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* (PHP_5_0)
|
||||
zend_execute.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
Fixed SIGSEGV on assigment string offset by reference
|
||||
|
||||
* zend_builtin_functions.c
|
||||
zend_builtin_functions.c:
|
||||
Fixed wrong include/requre occurrences in debug backtrace.
|
||||
|
||||
2005-06-24 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_execute.h
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_gen.php
|
||||
zend_vm_opcodes.h:
|
||||
Export zend_do_fcall() helper from executor
|
||||
|
||||
* zend_compile.c
|
||||
zend_compile.c:
|
||||
Partial fix for bug #26584 (Class member - array key overflow)
|
||||
It doesn't fix integer overflow problem, but allows null, boolean and
|
||||
double keys in array constants in the same way as in runtime.
|
||||
|
||||
* tests/bug30519.phpt
|
||||
tests/bug30519.phpt:
|
||||
|
||||
Fixed bug #30519 (Interface not existing says Class not found)
|
||||
|
||||
* zend_compile.c
|
||||
zend_compile.c
|
||||
zend_compile.h
|
||||
zend_compile.h
|
||||
zend_execute.c
|
||||
zend_execute_API.c
|
||||
zend_execute_API.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h
|
||||
tests/bug30519.phpt:
|
||||
Fixed bug #30519 (Interface not existing says Class not found)
|
||||
|
||||
2005-06-23 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_builtin_functions.c
|
||||
zend_builtin_functions.c
|
||||
tests/bug28377.phpt:
|
||||
Fixed bug #28377 (debug_backtrace is intermittently passing args)
|
||||
|
||||
* tests/bug28377.phpt
|
||||
tests/bug28377.phpt:
|
||||
|
||||
file bug28377.phpt was initially added on branch PHP_5_0.
|
||||
|
||||
* (PHP_5_0)
|
||||
zend_execute.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h
|
||||
tests/bug32660.phpt:
|
||||
Fixed bug #32660 (Assignment by reference causes crash when field access is
|
||||
overloaded (__get))
|
||||
|
||||
* tests/bug32660.phpt
|
||||
tests/bug32660.phpt:
|
||||
|
||||
Fixed bug #32660 (Assignment by reference causes crash when field access
|
||||
is overloaded (__get))
|
||||
|
||||
* zend_builtin_functions.c
|
||||
zend_builtin_functions.c
|
||||
tests/bug30828.phpt:
|
||||
Fixed bug #30828 (debug_backtrace() reports incorrect class in overridden
|
||||
methods)
|
||||
|
||||
* tests/bug30828.phpt
|
||||
tests/bug30828.phpt:
|
||||
|
||||
file bug30828.phpt was initially added on branch PHP_5_0.
|
||||
|
||||
* (PHP_5_0)
|
||||
tests/bug27268.phpt:
|
||||
Test for bug #27268. It is fixed in HEAD but not in PHP_5_0.
|
||||
|
||||
* zend_execute.c
|
||||
tests/bug27268.phpt
|
||||
tests/bug27268.phpt:
|
||||
Fixed bug #27268 (Bad references accentuated by clone).
|
||||
|
||||
2005-06-23 Andi Gutmans <andi@zend.com>
|
||||
|
||||
* zend.h:
|
||||
- Back to -dev
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend.h:
|
||||
- Beta 2
|
||||
|
||||
2005-06-22 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend_builtin_functions.c
|
||||
zend_builtin_functions.c
|
||||
zend_execute_API.c
|
||||
zend_execute_API.c
|
||||
tests/bug29896.phpt:
|
||||
Fixed bug #29896 (Backtrace argument list out of sync)
|
||||
|
||||
* tests/bug29896.phpt
|
||||
tests/bug29896.phpt:
|
||||
|
||||
file bug29896.phpt was initially added on branch PHP_5_0.
|
||||
|
||||
2005-06-22 Stanislav Malyshev <stas@zend.com>
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend_vm.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_gen.php:
|
||||
export zend_vm_set_opcode_handler
|
||||
|
||||
2005-06-22 Antony Dovgal <antony@zend.com>
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend_ini.c:
|
||||
- allow to use "yes" and "true" with ini_set() and in commandline (through
|
||||
-d flag)
|
||||
- fix #15854 that was caused by wrong consideration that
|
||||
zend_ini_boolean_displayer_cb()
|
||||
always recieves converted to "0"/"1" values.
|
||||
|
||||
2005-06-22 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend_compile.c
|
||||
zend_compile.c
|
||||
zend_compile.h
|
||||
zend_compile.h
|
||||
zend_execute.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h
|
||||
tests/bug33257.phpt:
|
||||
Fixed bug #33257 (array_splice() inconsistent when passed function instead
|
||||
of variable)
|
||||
|
||||
* tests/bug33257.phpt
|
||||
tests/bug33257.phpt:
|
||||
|
||||
file bug33257.phpt was initially added on branch PHP_5_0.
|
||||
|
||||
2005-06-22 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* (php_5_1_0b2)
|
||||
tests/unset_cv05.phpt
|
||||
tests/unset_cv06.phpt:
|
||||
fix tests
|
||||
|
||||
2005-06-21 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* tests/unset_cv07.phpt:
|
||||
Fixed test file
|
||||
|
||||
2005-06-21 Andi Gutmans <andi@zend.com>
|
||||
|
||||
* zend.h:
|
||||
- Back to -dev. Guys (n' Girls), give at least 1 hour before you start
|
||||
- complaining about not going back to -dev. I like checking the tarball
|
||||
- before I change it back.
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend.h:
|
||||
- Take #3 :)
|
||||
|
||||
2005-06-21 Ilia Alshanetsky <ilia@prohost.org>
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend_reflection_api.c:
|
||||
Fixed memory leak.
|
||||
|
||||
|
||||
2005-06-21 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* (PHP_5_0)
|
||||
zend_compile.c:
|
||||
Remove unnecessary ZEND_FETCH_CLASS together with
|
||||
ZEND_DECLARE_INHERITED_CLASS
|
||||
in case of early binding
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend_compile.c:
|
||||
Remove unnecessary ZEND_FETCH_CLASS together with
|
||||
ZEND_DECLARE_INHERITED_CLASS in case of early binding
|
||||
|
||||
2005-06-20 Andi Gutmans <andi@zend.com>
|
||||
|
||||
* zend.h:
|
||||
- Back to -dev
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend.h:
|
||||
- Beta 2
|
||||
|
||||
2005-06-20 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend_object_handlers.c
|
||||
zend_object_handlers.c:
|
||||
Fixed possible crash on $x = $obj->$non_string
|
||||
|
||||
2005-06-20 Marcus Boerger <marcus.boerger@post.rwth-aachen.de>
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend_reflection_api.c:
|
||||
- Fix bug #33389 by fixing copying
|
||||
|
||||
* zend_reflection_api.c:
|
||||
- Show true/flase
|
||||
|
||||
2005-06-19 Derick Rethans <php@derickrethans.nl>
|
||||
|
||||
* tests/bug32226.phpt:
|
||||
- Fixed layout of test description.
|
||||
|
||||
2005-06-17 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* tests/bug29368.phpt
|
||||
tests/bug30856.phpt
|
||||
tests/bug30961.phpt
|
||||
tests/bug31720.phpt
|
||||
tests/bug32226.phpt
|
||||
tests/bug33277.phpt:
|
||||
No short-tags!
|
||||
|
||||
2005-06-17 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_compile.h
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
Removed EX(fbc_constructor) (it is no longer needed)
|
||||
|
||||
2005-06-17 Antony Dovgal <antony@zend.com>
|
||||
|
||||
* (PHP_5_0)
|
||||
zend_API.c
|
||||
zend_list.c:
|
||||
MFH: improve error messages in internal classes
|
||||
|
||||
* zend_API.c
|
||||
zend_list.c:
|
||||
improve error messages when error raised from an internal class (do not
|
||||
hide class name)
|
||||
|
||||
2005-06-17 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_object_handlers.c
|
||||
zend_object_handlers.c:
|
||||
Fixed bug #33277 (private method accessed by child class)
|
||||
|
||||
2005-06-17 Antony Dovgal <antony@zend.com>
|
||||
|
||||
* zend_hash.c:
|
||||
fix bug #33382 (array_reverse() fails after *sort())
|
||||
no need to MFH - the bug existed only in HEAD
|
||||
|
||||
2005-06-17 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_API.c
|
||||
zend_API.h
|
||||
zend_extensions.h
|
||||
zend_modules.h:
|
||||
Improved PHP extension loading mechanism with support for module
|
||||
dependencies and conflicts.
|
||||
|
||||
2005-06-16 Marcus Boerger <marcus.boerger@post.rwth-aachen.de>
|
||||
|
||||
* zend_reflection_api.c:
|
||||
- Internal functions/methods can now return by reference
|
||||
|
||||
* zend_execute.c:
|
||||
- Fix TSRM build
|
||||
|
||||
2005-06-16 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* bench.php:
|
||||
typo
|
||||
|
||||
* zend.h
|
||||
zend_API.h
|
||||
zend_compile.c
|
||||
zend_compile.h
|
||||
zend_execute.c
|
||||
zend_execute_API.c
|
||||
zend_extensions.h
|
||||
zend_modules.h
|
||||
zend_object_handlers.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
Allowed return by refrence from internal functions
|
||||
|
||||
2005-06-16 Stanislav Malyshev <stas@zend.com>
|
||||
|
||||
* zend_execute.c
|
||||
zend_execute.h:
|
||||
rename to zend_
|
||||
|
||||
2005-06-16 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h
|
||||
tests/bug33318.phpt:
|
||||
Fixed bug #33318 (throw 1; results in Invalid opcode 108/1/8)
|
||||
|
||||
2005-06-16 Zeev Suraski <zeev@zend.com>
|
||||
|
||||
* zend_language_scanner.l:
|
||||
Fixlet
|
||||
|
||||
2005-06-16 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_execute.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
Compilation warnings
|
||||
|
||||
* zend_compile.c
|
||||
zend_compile.h
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
ZEND_UNSET_DIM_OBJ is splitted to ZEND_UNSET_DIM and ZEND_UNSET_OBJ.
|
||||
|
||||
2005-06-16 Stanislav Malyshev <stas@zend.com>
|
||||
|
||||
* zend_execute.c
|
||||
zend_execute.h:
|
||||
export zval getters
|
||||
|
||||
2005-06-16 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_execute.h
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_gen.php
|
||||
zend_vm_opcodes.h:
|
||||
USER_OPCODE API is improvet.
|
||||
Implemented ability to dispatch from user handler to internal handler of
|
||||
another opcode.
|
||||
|
||||
2005-06-15 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend.c
|
||||
zend.h:
|
||||
Fixed OS X compatibility
|
||||
|
||||
2005-06-15 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* tests/bug32428.phpt:
|
||||
typofix
|
||||
|
||||
2005-06-14 Ilia Alshanetsky <ilia@prohost.org>
|
||||
|
||||
* bench.php:
|
||||
more accurate timing function.
|
||||
|
||||
2005-06-14 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_vm_execute.h
|
||||
zend_vm_gen.php
|
||||
zend_vm_opcodes.h:
|
||||
Removed old executor
|
||||
|
||||
2005-06-14 Jani Taskinen <jani.taskinen@sci.fi>
|
||||
|
||||
* Zend.m4:
|
||||
reordered + added msg to configure output for PHP_ZEND_VM
|
||||
|
||||
* Zend.m4:
|
||||
typofix
|
||||
|
||||
* Zend.m4
|
||||
acinclude.m4:
|
||||
fix standalone build
|
||||
|
||||
2005-06-13 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* zend_execute.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_gen.php
|
||||
zend_vm_opcodes.h:
|
||||
Specializer optimization
|
||||
|
||||
* zend.c
|
||||
zend.h
|
||||
zend_execute.c:
|
||||
Fixed bug #33212 ([GCC 4]: 'zend_error_noreturn' aliased to external symbol
|
||||
'zend_error').
|
||||
The fix is not tested on Solaris and DARWIN!
|
||||
|
||||
* zend_reflection_api.c
|
||||
tests/bug33312.phpt:
|
||||
Fixed bug #33312 (ReflectionParameter methods do not work correctly)
|
||||
|
||||
2005-06-11 Andi Gutmans <andi@zend.com>
|
||||
|
||||
* zend.h:
|
||||
- Back to -dev
|
||||
|
||||
* (php_5_1_0b2)
|
||||
zend.h:
|
||||
- b2 (will post it to internals@)
|
||||
|
||||
2005-06-10 Andi Gutmans <andi@zend.com>
|
||||
|
||||
* zend.h:
|
||||
- Back to -dev
|
||||
|
||||
* (php_5_1_0b1)
|
||||
zend.h:
|
||||
- Go with 5.1.0b1
|
||||
|
||||
2005-06-10 Dmitry Stogov <dmitry@zend.com>
|
||||
|
||||
* (php_5_1_0b1)
|
||||
tests/bug30162.phpt:
|
||||
Added test for bug #30162 (it is already fixed but test file was forgotten)
|
||||
|
||||
* (php_5_1_0b1)
|
||||
tests/bug31177.phpt:
|
||||
Added test file for bug #31177 (not fixed yet)
|
||||
|
||||
* tests/bug31177.phpt
|
||||
tests/bug31177.phpt:
|
||||
|
||||
file bug31177.phpt was initially added on branch PHP_5_0.
|
||||
|
||||
* (php_5_1_0b1)
|
||||
tests/bug29689.phpt:
|
||||
typos
|
||||
|
||||
* (php_5_1_0b1)
|
||||
zend_reflection_api.c
|
||||
zend_reflection_api.c:
|
||||
Fixed support for ZEND_ACC_SHADOW in ReflectionProperty constructor
|
||||
|
||||
* (php_5_1_0b1)
|
||||
zend_execute.c
|
||||
zend_execute.h
|
||||
zend_extensions.h
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_gen.php
|
||||
zend_vm_opcodes.h:
|
||||
Fix so that extensions like xdebug, can overload opcodes in all execution
|
||||
modes including goto/switch
|
||||
|
||||
* (php_5_1_0b1)
|
||||
zend_compile.c
|
||||
zend_vm_def.h
|
||||
zend_vm_execute.h
|
||||
zend_vm_opcodes.h:
|
||||
Merge three opcodes (ZEND_NEW, ZEND_JMP_NO_CTOR, ZEND_INIT_CTOR) into one
|
||||
(ZEND_NEW). There was no real reason for this anymore and API should be
|
||||
changed before 5.1
|
||||
|
||||
2005-06-09 Stanislav Malyshev <stas@zend.com>
|
||||
|
||||
* zend_compile.c
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
--------------------------------------------------------------------
|
||||
The Zend Engine License, Version 2.00
|
||||
Copyright (c) 1999-2003 Zend Technologies Ltd. All rights reserved.
|
||||
Copyright (c) 1999-2005 Zend Technologies Ltd. All rights reserved.
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -105,3 +105,4 @@ Zend Engine II currently includes two executors during the build process, one
|
||||
is the specialized version and the other is the old one non-specialized with
|
||||
function handlers. By default Zend Engine II uses the specialized one but you
|
||||
can switch to the old executor at runtime by calling zend_vm_use_old_executor().
|
||||
|
||||
+22
-14
@@ -121,21 +121,13 @@ AC_ARG_ENABLE(debug,
|
||||
|
||||
AC_DEFUN([LIBZEND_OTHER_CHECKS],[
|
||||
|
||||
PHP_ARG_WITH(zend-vm,[virtual machine dispatch method],
|
||||
AC_ARG_WITH(zend-vm,
|
||||
[ --with-zend-vm=TYPE Set virtual machine dispatch method. Type is
|
||||
one of "CALL", "SWITCH" or "GOTO" [TYPE=CALL]], CALL, no)
|
||||
|
||||
case $PHP_ZEND_VM in
|
||||
SWITCH)
|
||||
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_SWITCH,[virtual machine dispatch method])
|
||||
;;
|
||||
GOTO)
|
||||
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_GOTO,[virtual machine dispatch method])
|
||||
;;
|
||||
*)
|
||||
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_CALL,[virtual machine dispatch method])
|
||||
;;
|
||||
esac
|
||||
one of "CALL", "SWITCH" or "GOTO" [TYPE=CALL]],[
|
||||
PHP_ZEND_VM=$withval
|
||||
],[
|
||||
PHP_ZEND_VM=CALL
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE(zend-memory-manager,
|
||||
[ --disable-zend-memory-manager
|
||||
@@ -175,6 +167,9 @@ AC_ARG_ENABLE(zend-multibyte,
|
||||
ZEND_MULTIBYTE=no
|
||||
])
|
||||
|
||||
AC_MSG_CHECKING([virtual machine dispatch method])
|
||||
AC_MSG_RESULT($PHP_ZEND_VM)
|
||||
|
||||
AC_MSG_CHECKING(whether to enable the Zend memory manager)
|
||||
AC_MSG_RESULT($ZEND_USE_ZEND_ALLOC)
|
||||
|
||||
@@ -193,6 +188,19 @@ AC_MSG_RESULT($ZEND_DEBUG)
|
||||
AC_MSG_CHECKING(whether to enable Zend multibyte)
|
||||
AC_MSG_RESULT($ZEND_MULTIBYTE)
|
||||
|
||||
case $PHP_ZEND_VM in
|
||||
SWITCH)
|
||||
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_SWITCH,[virtual machine dispatch method])
|
||||
;;
|
||||
GOTO)
|
||||
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_GOTO,[virtual machine dispatch method])
|
||||
;;
|
||||
*)
|
||||
PHP_ZEND_VM=CALL
|
||||
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_CALL,[virtual machine dispatch method])
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "$ZEND_DEBUG" = "yes"; then
|
||||
AC_DEFINE(ZEND_DEBUG,1,[ ])
|
||||
echo " $CFLAGS" | grep ' -g' >/dev/null || DEBUG_CFLAGS="-g"
|
||||
|
||||
+8
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2005 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -105,6 +105,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
|
||||
|
||||
+17
-11
@@ -4,25 +4,31 @@ dnl This file contains local autoconf functions.
|
||||
|
||||
AC_DEFUN([LIBZEND_BISON_CHECK],[
|
||||
# we only support certain bison versions
|
||||
bison_version_list="1.28 1.35 1.75 1.875 2.0"
|
||||
bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1"
|
||||
|
||||
# for standalone build of Zend Engine
|
||||
test -z "$SED" && SED=sed
|
||||
|
||||
bison_version=none
|
||||
if test "$YACC"; then
|
||||
AC_CACHE_CHECK([for bison version], php_cv_bison_version, [
|
||||
set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | $SED -e 's/\./ /'|tr -d a-z`
|
||||
bison_version="${1}.${2}"
|
||||
bison_version_vars=`bison --version 2> /dev/null | grep 'GNU Bison' | cut -d ' ' -f 4 | $SED -e 's/\./ /' | tr -d a-z`
|
||||
php_cv_bison_version=invalid
|
||||
for bison_check_version in $bison_version_list; do
|
||||
if test "$bison_version" = "$bison_check_version"; then
|
||||
php_cv_bison_version="$bison_check_version (ok)"
|
||||
fi
|
||||
done
|
||||
if test -n "$bison_version_vars"; then
|
||||
set $bison_version_vars
|
||||
bison_version="${1}.${2}"
|
||||
for bison_check_version in $bison_version_list; do
|
||||
if test "$bison_version" = "$bison_check_version"; then
|
||||
php_cv_bison_version="$bison_check_version (ok)"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
])
|
||||
else
|
||||
bison_version=none
|
||||
fi
|
||||
case $php_cv_bison_version in
|
||||
""|invalid[)]
|
||||
bison_msg="bison versions supported for regeneration of the Zend/PHP parsers: $bison_version_list (found: $bison_version)."
|
||||
bison_msg="bison versions supported for regeneration of the Zend/PHP parsers: $bison_version_list (found: $bison_version)."
|
||||
AC_MSG_WARN([$bison_msg])
|
||||
YACC="exit 0;"
|
||||
;;
|
||||
|
||||
+19
-12
@@ -1,9 +1,11 @@
|
||||
<?php
|
||||
|
||||
function simple() {
|
||||
$a = 0;
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
$a++;
|
||||
|
||||
$thisisanotherlongname = 0;
|
||||
for ($thisisalongname = 0; $thisisalongname < 1000000; $thisisalongname++)
|
||||
$thisisanotherlongname++;
|
||||
}
|
||||
@@ -70,7 +72,7 @@ function mandel() {
|
||||
print "#";
|
||||
}
|
||||
}
|
||||
print "<br>".$vbCr;
|
||||
print "<br>";
|
||||
flush();
|
||||
}
|
||||
}
|
||||
@@ -131,7 +133,7 @@ function ary2($n) {
|
||||
$X[$i] = $i; ++$i;
|
||||
$X[$i] = $i; ++$i;
|
||||
}
|
||||
for ($i=$n-1; $i>=0; $i--) {
|
||||
for ($i=$n-1; $i>=0;) {
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
@@ -153,6 +155,7 @@ function ary2($n) {
|
||||
function ary3($n) {
|
||||
for ($i=0; $i<$n; $i++) {
|
||||
$X[$i] = $i + 1;
|
||||
$Y[$i] = 0;
|
||||
}
|
||||
for ($k=0; $k<1000; $k++) {
|
||||
for ($i=$n-1; $i>=0; $i--) {
|
||||
@@ -166,7 +169,7 @@ function ary3($n) {
|
||||
/****/
|
||||
|
||||
function fibo_r($n){
|
||||
return(($n < 2) ? 1 : fibo($n - 2) + fibo_r($n - 1));
|
||||
return(($n < 2) ? 1 : fibo_r($n - 2) + fibo_r($n - 1));
|
||||
}
|
||||
|
||||
function fibo($n) {
|
||||
@@ -180,8 +183,9 @@ function hash($n) {
|
||||
for ($i = 1; $i <= $n; $i++) {
|
||||
$X[dechex($i)] = $i;
|
||||
}
|
||||
$c = 0;
|
||||
for ($i = $n; $i > 0; $i--) {
|
||||
if ($X[$i]) { $c++; }
|
||||
if ($X[dechex($i)]) { $c++; }
|
||||
}
|
||||
print "$c\n";
|
||||
}
|
||||
@@ -189,13 +193,16 @@ function hash($n) {
|
||||
/****/
|
||||
|
||||
function hash2($n) {
|
||||
for ($i = 0; $i < 10000; $i++) {
|
||||
for ($i = 0; $i < $n; $i++) {
|
||||
$hash1["foo_$i"] = $i;
|
||||
$hash2["foo_$i"] = 0;
|
||||
}
|
||||
for ($i = $n; $i > 0; $i--) {
|
||||
foreach($hash1 as $key => $value) $hash2[$key] += $value;
|
||||
}
|
||||
print "$hash1[foo_1] $hash1[foo_9999] $hash2[foo_1] $hash2[foo_9999]\n";
|
||||
$first = "foo_0";
|
||||
$last = "foo_".($n-1);
|
||||
print "$hash1[$first] $hash1[$last] $hash2[$first] $hash2[$last]\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
@@ -336,10 +343,10 @@ function strcat($n) {
|
||||
/*****/
|
||||
|
||||
function getmicrotime()
|
||||
{
|
||||
list($usec, $sec) = explode(" ",microtime());
|
||||
return ((float)$usec + (float)$sec);
|
||||
}
|
||||
{
|
||||
$t = gettimeofday();
|
||||
return ($t['sec'] + $t['usec'] / 1000000);
|
||||
}
|
||||
|
||||
function start_test()
|
||||
{
|
||||
@@ -396,8 +403,8 @@ fibo(30);
|
||||
$t = end_test($t, "fibo(30)");
|
||||
hash(50000);
|
||||
$t = end_test($t, "hash(50000)");
|
||||
hash2(50);
|
||||
$t = end_test($t, "hash2(50)");
|
||||
hash2(500);
|
||||
$t = end_test($t, "hash2(500)");
|
||||
heapsort(20000);
|
||||
$t = end_test($t, "heapsort(20000)");
|
||||
matrix(20);
|
||||
|
||||
@@ -12,4 +12,4 @@ foo(123);
|
||||
--EXPECTF--
|
||||
3
|
||||
|
||||
Fatal error: Argument 1 must be an array in %sarray_type_hint_001.php on line 2
|
||||
Fatal error: Argument 1 passed to foo() must be an array, called in %sarray_type_hint_001.php on line 7 and defined in %sarray_type_hint_001.php on line 2
|
||||
@@ -39,5 +39,5 @@ echo "Done\n";
|
||||
2
|
||||
3
|
||||
Done
|
||||
test::__destruct
|
||||
test::destructor
|
||||
test::__destruct
|
||||
@@ -34,6 +34,3 @@ $c->viewMom();
|
||||
--EXPECT--
|
||||
protected method
|
||||
protected property
|
||||
--EXPECT--
|
||||
protected method
|
||||
protected property
|
||||
@@ -8,7 +8,7 @@ class Test {
|
||||
function __copy()
|
||||
{
|
||||
$string = PHP_VERSION;
|
||||
$version = $string{0};
|
||||
$version = $string[0];
|
||||
if($string < 5)
|
||||
{
|
||||
return $this;
|
||||
|
||||
@@ -3,7 +3,7 @@ Bug #26281 (switch() crash when condition is a string offset)
|
||||
--FILE--
|
||||
<?php
|
||||
$x = 'abc';
|
||||
switch ($x{0}) {
|
||||
switch ($x[0]) {
|
||||
case 'a':
|
||||
echo "no crash\n";
|
||||
break;
|
||||
|
||||
@@ -4,14 +4,14 @@ Bug #26801 (switch ($a{0}) crash)
|
||||
<?php
|
||||
|
||||
$a = '11';
|
||||
$b = $a{0};
|
||||
$b = $a[0];
|
||||
switch ($b) {
|
||||
case '-':
|
||||
break;
|
||||
}
|
||||
|
||||
$a = '22';
|
||||
switch ($a{0}) {
|
||||
switch ($a[0]) {
|
||||
case '-':
|
||||
break;
|
||||
}
|
||||
|
||||
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
+46
@@ -0,0 +1,46 @@
|
||||
--TEST--
|
||||
Bug #28072 (static array with some constant keys will be incorrectly ordered)
|
||||
--FILE--
|
||||
<?php
|
||||
define("FIRST_KEY", "a");
|
||||
define("THIRD_KEY", "c");
|
||||
|
||||
|
||||
function test()
|
||||
{
|
||||
static $arr = array(
|
||||
FIRST_KEY => "111",
|
||||
"b" => "222",
|
||||
THIRD_KEY => "333",
|
||||
"d" => "444"
|
||||
);
|
||||
print_r($arr);
|
||||
}
|
||||
|
||||
function test2()
|
||||
{
|
||||
static $arr = array(
|
||||
FIRST_KEY => "111",
|
||||
"a" => "222",
|
||||
"c" => "333",
|
||||
THIRD_KEY => "444"
|
||||
);
|
||||
print_r($arr);
|
||||
}
|
||||
|
||||
test();
|
||||
test2();
|
||||
?>
|
||||
--EXPECT--
|
||||
Array
|
||||
(
|
||||
[a] => 111
|
||||
[b] => 222
|
||||
[c] => 333
|
||||
[d] => 444
|
||||
)
|
||||
Array
|
||||
(
|
||||
[a] => 111
|
||||
[c] => 444
|
||||
)
|
||||
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
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug #29368 (The destructor is called when an exception is thrown from the constructor)
|
||||
--FILE--
|
||||
<?
|
||||
<?php
|
||||
|
||||
class Foo
|
||||
{
|
||||
|
||||
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]
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
@@ -9,11 +9,11 @@ var_dump(isset($a->b));
|
||||
$a = '0';
|
||||
var_dump(isset($a->b));
|
||||
$a = '';
|
||||
var_dump(isset($a{'b'}));
|
||||
var_dump(isset($a['b']));
|
||||
$a = 'a';
|
||||
var_dump(isset($a{'b'}));
|
||||
var_dump(isset($a['b']));
|
||||
$a = '0';
|
||||
var_dump(isset($a{'b'}));
|
||||
var_dump(isset($a['b']));
|
||||
|
||||
$simpleString = "Bogus String Text";
|
||||
echo isset($simpleString->wrong)?"bug\n":"ok\n";
|
||||
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #31177 (menory corruption because of incorrect refcounting)
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
function foo($n=0) {
|
||||
if($n) throw new Exception("new");
|
||||
}
|
||||
}
|
||||
$x = new foo();
|
||||
try {
|
||||
$y=$x->foo(1);
|
||||
} catch (Exception $e) {
|
||||
var_dump($x);
|
||||
}
|
||||
--EXPECT--
|
||||
object(foo)#1 (0) {
|
||||
}
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Bug #31341 (escape on curly inconsistent)
|
||||
--FILE--
|
||||
<?php
|
||||
$a = array(
|
||||
"$ \{ ",
|
||||
" \{ $",
|
||||
" \{$ ",
|
||||
" $\{ ",
|
||||
" \$\{ ",
|
||||
" \{\$ ",
|
||||
"\$ \{ ",
|
||||
" \{ \$",
|
||||
"% \{ ");
|
||||
|
||||
foreach ($a as $v) {
|
||||
echo("'$v'\n");
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
'$ \{ '
|
||||
' \{ $'
|
||||
' \{$ '
|
||||
' $\{ '
|
||||
' $\{ '
|
||||
' \{$ '
|
||||
'$ \{ '
|
||||
' \{ $'
|
||||
'% \{ '
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug #31720 (Invalid object callbacks not caught in array_walk())
|
||||
--FILE--
|
||||
<?
|
||||
<?php
|
||||
$array = array('at least one element');
|
||||
|
||||
array_walk($array, array($nonesuchvar,'show'));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug # 32226 (SEGV with exception handler on non existing instance)
|
||||
Bug #32226 (SEGV with exception handler on non existing instance)
|
||||
--FILE--
|
||||
<?
|
||||
<?php
|
||||
|
||||
class A
|
||||
{
|
||||
|
||||
@@ -9,5 +9,5 @@ Bug #32428 (The @ warning error supression operator is broken)
|
||||
$data = @($not_exists+1);
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPEXT--
|
||||
--EXPECT--
|
||||
ok
|
||||
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
|
||||
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
|
||||
)
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug #33277 (private method accessed by child class)
|
||||
--FILE--
|
||||
<?
|
||||
<?php
|
||||
class foo {
|
||||
private function bar() {
|
||||
echo "private!\n";
|
||||
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
--TEST--
|
||||
Bug #33318 (throw 1; results in Invalid opcode 108/1/8)
|
||||
--FILE--
|
||||
<?php
|
||||
throw 1;
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Can only throw objects in %sbug33318.php on line 2
|
||||
Executable
+66
@@ -0,0 +1,66 @@
|
||||
--TEST--
|
||||
Bug #33512 (unset() overloaded properties doesn't work)
|
||||
--FILE--
|
||||
<?php
|
||||
class TheObj {
|
||||
public $RealVar1, $RealVar2, $RealVar3, $RealVar4;
|
||||
public $Var = array();
|
||||
|
||||
function __set($var, $val) {
|
||||
$this->Var[$var] = $val;
|
||||
}
|
||||
function __get($var) {
|
||||
if(isset($this->Var[$var])) return $this->Var[$var];
|
||||
else return -1;
|
||||
}
|
||||
function __unset($var) {
|
||||
unset($this->Var[$var]);
|
||||
}
|
||||
}
|
||||
|
||||
$SomeObj = new TheObj;
|
||||
|
||||
// this will fine
|
||||
$SomeObj->RealVar1 = 'somevalue';
|
||||
$SomeObj->{'RealVar2'} = 'othervalue';
|
||||
$SomeObj->{'RealVar'.(3)} = 'othervaluetoo';
|
||||
$SomeObj->{'RealVar'.'4'} = 'anothervalue';
|
||||
|
||||
// this will fine too
|
||||
$SomeObj->Virtual1 = 'somevalue';
|
||||
$SomeObj->{'Virtual2'} = 'othervalue';
|
||||
|
||||
// it's can't be used since this will encounter error
|
||||
$SomeObj->{'Virtual'.(3)} = 'othervaluetoo';
|
||||
$SomeObj->{'Virtual'.'4'} = 'anothervalue';
|
||||
|
||||
// but this will fine, ofcourse
|
||||
$SomeObj->Var['Virtual'.(3)] = 'othervaluetoo';
|
||||
$SomeObj->Var['Virtual'.'4'] = 'anothervalue';
|
||||
|
||||
|
||||
var_dump($SomeObj->RealVar1);
|
||||
print $SomeObj->{'RealVar'.(3)}."\n";
|
||||
|
||||
unset($SomeObj->RealVar1);
|
||||
unset($SomeObj->{'RealVar'.(3)});
|
||||
|
||||
//the lines below will catch by '__get' magic method since these variables are unavailable anymore
|
||||
var_dump($SomeObj->RealVar1);
|
||||
print $SomeObj->{'RealVar'.(3)}."\n";
|
||||
|
||||
// now we will try to unset these variables
|
||||
unset($SomeObj->Virtual1);
|
||||
unset($SomeObj->{'Virtual'.(3)});
|
||||
|
||||
//but, these variables are still available??? eventhough they're "unset"-ed
|
||||
print $SomeObj->Virtual1."\n";
|
||||
print $SomeObj->{'Virtual'.(3)}."\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
string(9) "somevalue"
|
||||
othervaluetoo
|
||||
int(-1)
|
||||
-1
|
||||
-1
|
||||
-1
|
||||
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
+32
@@ -0,0 +1,32 @@
|
||||
--TEST--
|
||||
Bug #33710 (ArrayAccess objects doesn't initialize $this)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Foo implements ArrayAccess
|
||||
{
|
||||
function offsetExists($offset) {/*...*/}
|
||||
function offsetGet($offset) {/*...*/}
|
||||
function offsetSet($offset, $value) {/*...*/}
|
||||
function offsetUnset($offset) {/*...*/}
|
||||
|
||||
function fail()
|
||||
{
|
||||
$this['blah'];
|
||||
}
|
||||
|
||||
function succeed()
|
||||
{
|
||||
$this;
|
||||
$this['blah'];
|
||||
}
|
||||
}
|
||||
|
||||
$bar = new Foo();
|
||||
$bar->succeed();
|
||||
$bar->fail();
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
===DONE===
|
||||
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
|
||||
@@ -0,0 +1,40 @@
|
||||
--TEST--
|
||||
bug #33771 (error_reporting falls to 0 when @ was used inside try/catch block)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL | E_STRICT);
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
function make_exception()
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
function make_exception_and_change_err_reporting()
|
||||
{
|
||||
error_reporting(E_ALL);
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
@make_exception();
|
||||
} catch (Exception $e) {}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
try {
|
||||
@make_exception_and_change_err_reporting();
|
||||
} catch (Exception $e) {}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
int(4095)
|
||||
int(4095)
|
||||
int(2047)
|
||||
Done
|
||||
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
+29
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Bug #33996 (No information given for fatal error on passing invalid value to typed argument)
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo
|
||||
{
|
||||
// nothing
|
||||
}
|
||||
|
||||
function FooTest(Foo $foo)
|
||||
{
|
||||
echo "Hello!";
|
||||
}
|
||||
|
||||
function NormalTest($a)
|
||||
{
|
||||
echo "Hi!";
|
||||
}
|
||||
|
||||
NormalTest();
|
||||
FooTest();
|
||||
FooTest(new Foo());
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Missing argument 1 for NormalTest(), called in %sbug33996.php on line 17 and defined in %sbug33996.php on line 12
|
||||
Hi!
|
||||
Fatal error: Argument 1 passed to FooTest() must be an object of class Foo, called in %sbug33996.php on line 18 and defined in %sbug33996.php on line 7
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #33999 (object remains object when cast to int)
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo {
|
||||
public $bar = "bat";
|
||||
}
|
||||
|
||||
$foo = new Foo;
|
||||
var_dump($foo);
|
||||
|
||||
$bar = (int)$foo;
|
||||
var_dump($bar);
|
||||
|
||||
$baz = (float)$foo;
|
||||
var_dump($baz);
|
||||
?>
|
||||
--EXPECTF--
|
||||
object(Foo)#1 (1) {
|
||||
["bar"]=>
|
||||
string(3) "bat"
|
||||
}
|
||||
|
||||
Notice: Object of class Foo could not be converted to int in %sbug33999.php on line 9
|
||||
int(1)
|
||||
|
||||
Notice: Object of class Foo could not be converted to double in %sbug33999.php on line 12
|
||||
float(1)
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #34045 (Buffer overflow with serialized object)
|
||||
--FILE--
|
||||
<?php
|
||||
class BasicSingleton
|
||||
{
|
||||
private static $instance;
|
||||
|
||||
public function __wakeup() {
|
||||
self::$instance = $this;
|
||||
}
|
||||
|
||||
public static function singleton() {
|
||||
if (!(self::$instance instanceof BasicSingleton)) {
|
||||
$c = __CLASS__;
|
||||
self::$instance = new $c;
|
||||
}
|
||||
return self::$instance;
|
||||
}
|
||||
}
|
||||
|
||||
$db = BasicSingleton::singleton();
|
||||
$db_str = serialize($db);
|
||||
$db2 = unserialize($db_str);
|
||||
echo "ok\n";
|
||||
?>
|
||||
--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
+18
@@ -0,0 +1,18 @@
|
||||
--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
|
||||
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
Bug #34310 (foreach($arr as $c->d => $x) crashes)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class C
|
||||
{
|
||||
public $d;
|
||||
}
|
||||
|
||||
$c = new C();
|
||||
|
||||
$arr = array (1 => 'a', 2 => 'b', 3 => 'c');
|
||||
|
||||
// Works fine:
|
||||
foreach($arr as $x => $c->d)
|
||||
{
|
||||
echo "{$x} => {$c->d}\n";
|
||||
}
|
||||
|
||||
// Crashes:
|
||||
foreach($arr as $c->d => $x)
|
||||
{
|
||||
echo "{$c->d} => {$x}\n";
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
1 => a
|
||||
2 => b
|
||||
3 => c
|
||||
1 => a
|
||||
2 => b
|
||||
3 => c
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
--TEST--
|
||||
Bug #34358 (Fatal error: Cannot re-assign $this(again))
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
function bar() {
|
||||
$ref = &$this;
|
||||
}
|
||||
}
|
||||
$x = new foo();
|
||||
$x->bar();
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #34467 (foreach + __get + __set incosistency)
|
||||
--FILE--
|
||||
<?php
|
||||
class abc {
|
||||
private $arr;
|
||||
|
||||
function __set ($key, $value) {
|
||||
$this->arr[$key] = $value;
|
||||
}
|
||||
|
||||
function __get ($key) {
|
||||
return $this->arr[$key];
|
||||
}
|
||||
}
|
||||
$abc = new abc();
|
||||
foreach (array (1,2,3) as $abc->k => $abc->v) {
|
||||
var_dump($abc->k,$abc->v);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
int(0)
|
||||
int(1)
|
||||
int(1)
|
||||
int(2)
|
||||
int(2)
|
||||
int(3)
|
||||
Executable
+38
@@ -0,0 +1,38 @@
|
||||
--TEST--
|
||||
Bug #34518 (Unset doesn't separate container in CV)
|
||||
--FILE--
|
||||
<?php
|
||||
$arr = array(1,2,3);
|
||||
$arr["foo"] = array(4,5,6);
|
||||
$copy = $arr;
|
||||
|
||||
unset($copy["foo"][0]);
|
||||
print_r($arr);
|
||||
print_r($copy);
|
||||
?>
|
||||
--EXPECT--
|
||||
Array
|
||||
(
|
||||
[0] => 1
|
||||
[1] => 2
|
||||
[2] => 3
|
||||
[foo] => Array
|
||||
(
|
||||
[0] => 4
|
||||
[1] => 5
|
||||
[2] => 6
|
||||
)
|
||||
|
||||
)
|
||||
Array
|
||||
(
|
||||
[0] => 1
|
||||
[1] => 2
|
||||
[2] => 3
|
||||
[foo] => Array
|
||||
(
|
||||
[1] => 5
|
||||
[2] => 6
|
||||
)
|
||||
|
||||
)
|
||||
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
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #34712 zend.ze1_compatibility_mode = on segfault
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=1
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
function foo(&$obj_ref) {
|
||||
$this->bar = &$obj_ref;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class bar {
|
||||
function bar() {
|
||||
$this->foo = new foo($this);
|
||||
}
|
||||
}
|
||||
|
||||
$test = new bar;
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Implicit cloning object of class 'foo' because of 'zend.ze1_compatibility_mode' in %sbug34712.php on line 11
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'bar' because of 'zend.ze1_compatibility_mode' in %sbug34712.php on line 15
|
||||
ok
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
--TEST--
|
||||
Bug #34767 (Zend Engine 1 Compatibility not copying objects correctly)
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=1
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
$a->y = &new stdClass();
|
||||
print_r($a);
|
||||
$b = $a;
|
||||
$a->y->z = 1;
|
||||
print_r($b);
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
||||
Strict Standards: Assigning the return value of new by reference is deprecated in %sbug34767.php on line 2
|
||||
stdClass Object
|
||||
(
|
||||
[y] => stdClass Object
|
||||
(
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug34767.php on line 4
|
||||
stdClass Object
|
||||
(
|
||||
[y] => stdClass Object
|
||||
(
|
||||
[z] => 1
|
||||
)
|
||||
|
||||
)
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Bug #34786 (2 @ results in change to error_reporting() to random value)
|
||||
--FILE--
|
||||
<?php
|
||||
function foo($a,$b,$c) {
|
||||
echo "foo: ".error_reporting()."\n";
|
||||
}
|
||||
|
||||
function bar() {
|
||||
echo "bar: ".error_reporting()."\n";
|
||||
}
|
||||
|
||||
error_reporting(1);
|
||||
echo "before: ".error_reporting()."\n";
|
||||
@foo(1,@bar(),3);
|
||||
echo "after: ".error_reporting()."\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
before: 1
|
||||
bar: 0
|
||||
foo: 0
|
||||
after: 1
|
||||
@@ -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
+11
@@ -0,0 +1,11 @@
|
||||
--TEST--
|
||||
Bug #34879 (str_replace, array_map corrupt negative array indexes on 64-bit platforms)
|
||||
--FILE--
|
||||
<?php
|
||||
print_r(str_replace('a', 'b', array(-1 =>-1)));
|
||||
?>
|
||||
--EXPECT--
|
||||
Array
|
||||
(
|
||||
[-1] => -1
|
||||
)
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
--TEST--
|
||||
Bug #34893 (PHP5.1 overloading, Cannot access private property)
|
||||
--FILE--
|
||||
<?php
|
||||
class A {
|
||||
private $p;
|
||||
function __get($name){
|
||||
return $this->$name;
|
||||
}
|
||||
function __set($name, $value) {
|
||||
$this->$name = $value;
|
||||
}
|
||||
}
|
||||
class B {
|
||||
private $t;
|
||||
function __get($name){
|
||||
return $this->$name;
|
||||
}
|
||||
function __set($name, $value) {
|
||||
$this->$name = $value;
|
||||
}
|
||||
}
|
||||
$a = new A;
|
||||
$b = new B;
|
||||
$a->p = $b;
|
||||
$b->t = "foo";
|
||||
|
||||
echo $a->p->t;
|
||||
$a->p->t = "bar";
|
||||
echo $a->p->t;
|
||||
?>
|
||||
--EXPECT--
|
||||
foobar
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Bug #35017 (Exception thrown in error handler may cause unexpected behavior)
|
||||
--FILE--
|
||||
<?php
|
||||
set_error_handler('errorHandler');
|
||||
try {
|
||||
if ($a) {
|
||||
echo "1\n";
|
||||
} else {
|
||||
echo "0\n";
|
||||
}
|
||||
echo "?\n";
|
||||
} catch(Exception $e) {
|
||||
echo "This Exception should be catched\n";
|
||||
}
|
||||
function errorHandler($errno, $errstr, $errfile, $errline, $vars) {
|
||||
throw new Exception('Some Exception');
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
This Exception should be catched
|
||||
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
+19
@@ -0,0 +1,19 @@
|
||||
--TEST--
|
||||
Bug #35411 (Regression with \{$ handling)
|
||||
--FILE--
|
||||
<?php
|
||||
$abc = "bar";
|
||||
echo "foo\{$abc}baz\n";
|
||||
echo "foo\{ $abc}baz\n";
|
||||
echo <<<TEST
|
||||
foo{$abc}baz
|
||||
foo\{$abc}baz
|
||||
foo\{ $abc}baz
|
||||
TEST;
|
||||
?>
|
||||
--EXPECT--
|
||||
foo\{bar}baz
|
||||
foo\{ bar}baz
|
||||
foobarbaz
|
||||
foo\{bar}baz
|
||||
foo\{ bar}baz
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
catch shouldn't call __autoload
|
||||
--FILE--
|
||||
<?php
|
||||
function __autoload($name) {
|
||||
echo("AUTOLOAD '$name'\n");
|
||||
eval("class $name {}");
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
} catch (A $e) {
|
||||
}
|
||||
|
||||
try {
|
||||
throw new Exception();
|
||||
} catch (B $e) {
|
||||
} catch (Exception $e) {
|
||||
echo "ok\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
@@ -0,0 +1,26 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 1
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function foo($arg) {
|
||||
}
|
||||
|
||||
function bar() {
|
||||
throw new Exception("test");
|
||||
}
|
||||
|
||||
try {
|
||||
@foo(@bar());
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
int(2047)
|
||||
Done
|
||||
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 2
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function foo($arg) {
|
||||
}
|
||||
|
||||
function bar() {
|
||||
error_reporting(E_ALL|E_STRICT);
|
||||
throw new Exception("test");
|
||||
}
|
||||
|
||||
try {
|
||||
@foo(@bar());
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
int(4095)
|
||||
Done
|
||||
@@ -0,0 +1,35 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 3
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function foo($arg) {
|
||||
echo @$nonex_foo;
|
||||
}
|
||||
|
||||
function bar() {
|
||||
echo @$nonex_bar;
|
||||
throw new Exception("test");
|
||||
}
|
||||
|
||||
function foo1() {
|
||||
echo $undef1;
|
||||
error_reporting(E_ALL|E_STRICT);
|
||||
echo $undef2;
|
||||
}
|
||||
|
||||
try {
|
||||
@foo(@bar(@foo1()));
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: undef2 in %s on line %d
|
||||
int(4095)
|
||||
Done
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 4
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function foo() {
|
||||
echo $undef;
|
||||
error_reporting(E_ALL|E_STRICT);
|
||||
}
|
||||
|
||||
|
||||
foo(@$var);
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: undef in %s on line %d
|
||||
int(4095)
|
||||
Done
|
||||
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 5
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
class test {
|
||||
function __get($name) {
|
||||
return $undef_name;
|
||||
}
|
||||
function __set($name, $value) {
|
||||
return $undef_value;
|
||||
}
|
||||
}
|
||||
|
||||
$test = new test;
|
||||
|
||||
$test->abc = 123;
|
||||
echo $test->bcd;
|
||||
|
||||
@$test->qwe = 123;
|
||||
echo @$test->wer;
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: undef_value in %s on line %d
|
||||
|
||||
Notice: Undefined variable: undef_name in %s on line %d
|
||||
int(2047)
|
||||
Done
|
||||
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 6
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function foo1($arg) {
|
||||
}
|
||||
|
||||
function foo2($arg) {
|
||||
}
|
||||
|
||||
function foo3($arg) {
|
||||
echo $undef3;
|
||||
throw new Exception("test");
|
||||
}
|
||||
|
||||
try {
|
||||
@foo1(@foo2(@foo3()));
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
int(2047)
|
||||
Done
|
||||
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 7
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function foo1($arg) {
|
||||
}
|
||||
|
||||
function foo2($arg) {
|
||||
}
|
||||
|
||||
function foo3($arg) {
|
||||
echo $undef3;
|
||||
throw new Exception("test");
|
||||
}
|
||||
|
||||
try {
|
||||
@error_reporting(@foo1(@foo2(@foo3())));
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
int(2047)
|
||||
Done
|
||||
@@ -0,0 +1,32 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 8
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function foo1($arg) {
|
||||
}
|
||||
|
||||
function foo2($arg) {
|
||||
}
|
||||
|
||||
function foo3($arg) {
|
||||
error_reporting(E_ALL|E_STRICT);
|
||||
echo $undef3;
|
||||
throw new Exception("test");
|
||||
}
|
||||
|
||||
try {
|
||||
@foo1(@foo2(@foo3()));
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: undef3 in %s on line %d
|
||||
int(4095)
|
||||
Done
|
||||
@@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 9
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function bar() {
|
||||
echo @$blah;
|
||||
echo $undef2;
|
||||
}
|
||||
|
||||
function foo() {
|
||||
echo @$undef;
|
||||
error_reporting(E_ALL|E_STRICT);
|
||||
echo $blah;
|
||||
return bar();
|
||||
}
|
||||
|
||||
@foo();
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: blah in %s on line %d
|
||||
|
||||
Notice: Undefined variable: undef2 in %s on line %d
|
||||
int(4095)
|
||||
Done
|
||||
@@ -0,0 +1,35 @@
|
||||
--TEST--
|
||||
testing @ and error_reporting - 10
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
function make_exception()
|
||||
{
|
||||
@$blah;
|
||||
str_replace();
|
||||
error_reporting(0);
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
try {
|
||||
@make_exception();
|
||||
} catch (Exception $e) {}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
error_reporting(E_ALL&~E_NOTICE);
|
||||
|
||||
try {
|
||||
@make_exception();
|
||||
} catch (Exception $e) {}
|
||||
|
||||
var_dump(error_reporting());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
int(2047)
|
||||
int(2039)
|
||||
Done
|
||||
@@ -0,0 +1,14 @@
|
||||
--TEST--
|
||||
foreach() & undefined var
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
foreach($a as $val);
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Warning: Invalid argument supplied for foreach() in %s on line %d
|
||||
Done
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
instanceof shouldn't call __autoload
|
||||
--FILE--
|
||||
<?php
|
||||
function __autoload($name) {
|
||||
echo("AUTOLOAD '$name'\n");
|
||||
eval("class $name {}");
|
||||
}
|
||||
|
||||
class A {
|
||||
}
|
||||
$a = new A;
|
||||
var_dump($a instanceof B);
|
||||
var_dump($a instanceof A);
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
bool(true)
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
--TEST--
|
||||
is_a() and is_subclass_of() shouldn't call __autoload
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
function __autoload($name) {
|
||||
echo("AUTOLOAD '$name'\n");
|
||||
eval("class $name {}");
|
||||
}
|
||||
|
||||
class BASE {
|
||||
}
|
||||
|
||||
interface INT {
|
||||
}
|
||||
|
||||
class A extends BASE implements INT {
|
||||
}
|
||||
|
||||
$a = new A;
|
||||
var_dump(is_a($a, "B1"));
|
||||
var_dump(is_a($a, "A"));
|
||||
var_dump(is_a($a, "BASE"));
|
||||
var_dump(is_a($a, "INT"));
|
||||
var_dump(is_subclass_of($a, "B2"));
|
||||
var_dump(is_subclass_of($a, "A"));
|
||||
var_dump(is_subclass_of($a, "BASE"));
|
||||
var_dump(is_subclass_of($a, "INT"));
|
||||
|
||||
var_dump(is_subclass_of("X1", "X2"));
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %sis_a.php on line 17
|
||||
bool(false)
|
||||
|
||||
Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %sis_a.php on line 18
|
||||
bool(true)
|
||||
|
||||
Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %sis_a.php on line 19
|
||||
bool(true)
|
||||
|
||||
Strict Standards: is_a(): Deprecated. Please use the instanceof operator in %sis_a.php on line 20
|
||||
bool(true)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(false)
|
||||
AUTOLOAD 'X1'
|
||||
AUTOLOAD 'X2'
|
||||
bool(false)
|
||||
@@ -2,8 +2,14 @@
|
||||
unset() CV 5 (indirect unset() of global variable in session_start())
|
||||
--INI--
|
||||
register_long_arrays=1
|
||||
session.auto_start=0
|
||||
session.save_handler=files
|
||||
--SKIPIF--
|
||||
<?php include('../../ext/session/tests/skipif.inc'); ?>
|
||||
<?php
|
||||
|
||||
include(dirname(__FILE__).'/../../ext/session/tests/skipif.inc');
|
||||
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$HTTP_SESSION_VARS = "ok\n";
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
--TEST--
|
||||
unset() CV 6 (indirect unset() of global variable in session_unset())
|
||||
--SKIPIF--
|
||||
<?php include('../../ext/session/tests/skipif.inc'); ?>
|
||||
<?php include(dirname(__FILE__).'/../../ext/session/tests/skipif.inc'); ?>
|
||||
--INI--
|
||||
register_globals=1
|
||||
session.auto_start=0
|
||||
session.save_handler=files
|
||||
--FILE--
|
||||
<?php
|
||||
$x = "1\n";
|
||||
|
||||
@@ -2,22 +2,17 @@
|
||||
unset() CV 7 (indirect unset() of global variable in import_request_variables())
|
||||
--SKIPIF--
|
||||
<?php if (php_sapi_name()=='cli') echo 'skip'; ?>
|
||||
--INI--
|
||||
error_reporting=2039
|
||||
--GET--
|
||||
x=2
|
||||
--FILE--
|
||||
<?php
|
||||
$x = "1\n";
|
||||
echo $x;
|
||||
import_request_variables("g");
|
||||
echo $x;
|
||||
$_x = "1\n";
|
||||
echo $_x;
|
||||
import_request_variables("g","_");
|
||||
echo $_x;
|
||||
echo "\nok\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
1
|
||||
<br />
|
||||
<b>Notice</b>: import_request_variables() [<a href='function.import-request-variables'>function.import-request-variables</a>]: No prefix specified - possible security hazard in <b>%sunset_cv07.php</b> on line <b>4</b><br />
|
||||
%sunset_cv07.php(4) : Notice - import_request_variables() [<a href='function.import-request-variables'>function.import-request-variables</a>]: No prefix specified - possible security hazard
|
||||
2
|
||||
ok
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
--TEST--
|
||||
unset() CV 12 (unset() in indirect called function)
|
||||
--FILE--
|
||||
<?php
|
||||
$x = 1;
|
||||
function foo() {unset($GLOBALS["x"]);}
|
||||
call_user_func("foo");
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
+37
-24
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2005 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -38,6 +38,7 @@
|
||||
# define GLOBAL_FUNCTION_TABLE CG(function_table)
|
||||
# define GLOBAL_CLASS_TABLE CG(class_table)
|
||||
# define GLOBAL_AUTO_GLOBALS_TABLE CG(auto_globals)
|
||||
# define GLOBAL_CONSTANTS_TABLE EG(zend_constants)
|
||||
#endif
|
||||
|
||||
#if defined(ZEND_WIN32) && ZEND_DEBUG
|
||||
@@ -77,6 +78,9 @@ static ZEND_INI_MH(OnUpdateErrorReporting)
|
||||
ZEND_INI_BEGIN()
|
||||
ZEND_INI_ENTRY("error_reporting", NULL, ZEND_INI_ALL, OnUpdateErrorReporting)
|
||||
STD_ZEND_INI_BOOLEAN("zend.ze1_compatibility_mode", "0", ZEND_INI_ALL, OnUpdateBool, ze1_compatibility_mode, zend_executor_globals, executor_globals)
|
||||
#ifdef ZEND_MULTIBYTE
|
||||
STD_ZEND_INI_BOOLEAN("detect_unicode", "1", ZEND_INI_ALL, OnUpdateBool, detect_unicode, zend_compiler_globals, compiler_globals)
|
||||
#endif
|
||||
ZEND_INI_END()
|
||||
|
||||
|
||||
@@ -88,6 +92,7 @@ HashTable *global_function_table;
|
||||
HashTable *global_class_table;
|
||||
HashTable *global_constants_table;
|
||||
HashTable *global_auto_globals_table;
|
||||
static HashTable *global_persistent_list = NULL;
|
||||
#endif
|
||||
|
||||
ZEND_API zend_utility_values zend_uv;
|
||||
@@ -97,7 +102,7 @@ ZEND_API zval zval_used_for_init; /* True global variable */
|
||||
/* version information */
|
||||
static char *zend_version_info;
|
||||
static uint zend_version_info_length;
|
||||
#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2004 Zend Technologies\n"
|
||||
#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2005 Zend Technologies\n"
|
||||
|
||||
|
||||
#define PRINT_ZVAL_INDENT 4
|
||||
@@ -127,7 +132,7 @@ static void print_hash(HashTable *ht, int indent, zend_bool is_object TSRMLS_DC)
|
||||
if (is_object) {
|
||||
char *prop_name, *class_name;
|
||||
|
||||
zend_unmangle_property_name(string_key, &class_name, &prop_name);
|
||||
zend_unmangle_property_name_ex(string_key, str_len, &class_name, &prop_name);
|
||||
ZEND_PUTS(prop_name);
|
||||
if (class_name) {
|
||||
if (class_name[0]=='*') {
|
||||
@@ -486,6 +491,13 @@ static void executor_globals_ctor(zend_executor_globals *executor_globals TSRMLS
|
||||
static void executor_globals_dtor(zend_executor_globals *executor_globals TSRMLS_DC)
|
||||
{
|
||||
zend_ini_shutdown(TSRMLS_C);
|
||||
if (&executor_globals->persistent_list != global_persistent_list) {
|
||||
zend_destroy_rsrc_list(&executor_globals->persistent_list TSRMLS_CC);
|
||||
}
|
||||
if (executor_globals->zend_constants != GLOBAL_CONSTANTS_TABLE) {
|
||||
zend_hash_destroy(executor_globals->zend_constants);
|
||||
free(executor_globals->zend_constants);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -682,6 +694,7 @@ void zend_post_startup(TSRMLS_D)
|
||||
compiler_globals_ctor(compiler_globals, tsrm_ls);
|
||||
free(EG(zend_constants));
|
||||
executor_globals_ctor(executor_globals, tsrm_ls);
|
||||
global_persistent_list = &EG(persistent_list);
|
||||
zend_new_thread_end_handler(tsrm_thread_id() TSRMLS_CC);
|
||||
}
|
||||
#endif
|
||||
@@ -692,9 +705,7 @@ void zend_shutdown(TSRMLS_D)
|
||||
#ifdef ZEND_WIN32
|
||||
zend_shutdown_timeout_thread();
|
||||
#endif
|
||||
#ifndef ZTS
|
||||
zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
|
||||
#endif
|
||||
zend_hash_graceful_reverse_destroy(&module_registry);
|
||||
|
||||
zend_hash_destroy(GLOBAL_FUNCTION_TABLE);
|
||||
@@ -706,16 +717,17 @@ void zend_shutdown(TSRMLS_D)
|
||||
zend_shutdown_extensions(TSRMLS_C);
|
||||
free(zend_version_info);
|
||||
|
||||
zend_shutdown_constants(TSRMLS_C);
|
||||
free(GLOBAL_FUNCTION_TABLE);
|
||||
free(GLOBAL_CLASS_TABLE);
|
||||
#ifdef ZTS
|
||||
zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
|
||||
|
||||
zend_hash_destroy(GLOBAL_CONSTANTS_TABLE);
|
||||
free(GLOBAL_CONSTANTS_TABLE);
|
||||
|
||||
#ifdef ZTS
|
||||
GLOBAL_FUNCTION_TABLE = NULL;
|
||||
GLOBAL_CLASS_TABLE = NULL;
|
||||
GLOBAL_AUTO_GLOBALS_TABLE = NULL;
|
||||
GLOBAL_CONSTANTS_TABLE = NULL;
|
||||
#endif
|
||||
zend_destroy_rsrc_list_dtors();
|
||||
}
|
||||
@@ -943,13 +955,20 @@ ZEND_API void zend_error(int type, const char *format, ...)
|
||||
ALLOC_INIT_ZVAL(z_error_lineno);
|
||||
ALLOC_INIT_ZVAL(z_context);
|
||||
|
||||
#if defined(va_copy)
|
||||
va_copy(usr_copy, args);
|
||||
#else
|
||||
usr_copy = args;
|
||||
/* va_copy() is __va_copy() in old gcc versions.
|
||||
* According to the autoconf manual, using
|
||||
* memcpy(&dst, &src, sizeof(va_list))
|
||||
* gives maximum portability. */
|
||||
#ifndef va_copy
|
||||
# ifdef __va_copy
|
||||
# define va_copy(dest, src) __va_copy((dest), (src))
|
||||
# else
|
||||
# define va_copy(dest, src) memcpy(&(dest), &(src), sizeof(va_list))
|
||||
# endif
|
||||
#endif
|
||||
va_copy(usr_copy, args);
|
||||
z_error_message->value.str.len = zend_vspprintf(&z_error_message->value.str.val, 0, format, usr_copy);
|
||||
#if defined(va_copy)
|
||||
#ifdef va_copy
|
||||
va_end(usr_copy);
|
||||
#endif
|
||||
z_error_message->type = IS_STRING;
|
||||
@@ -968,8 +987,7 @@ ZEND_API void zend_error(int type, const char *format, ...)
|
||||
|
||||
z_context->value.ht = EG(active_symbol_table);
|
||||
z_context->type = IS_ARRAY;
|
||||
ZVAL_ADDREF(z_context); /* we don't want this one to be freed */
|
||||
z_context->is_ref = 1;
|
||||
zval_copy_ctor(z_context);
|
||||
|
||||
params = (zval ***) emalloc(sizeof(zval **)*5);
|
||||
params[0] = &z_error_type;
|
||||
@@ -982,9 +1000,6 @@ ZEND_API void zend_error(int type, const char *format, ...)
|
||||
EG(user_error_handler) = NULL;
|
||||
|
||||
if (call_user_function_ex(CG(function_table), NULL, orig_user_error_handler, &retval, 5, params, 1, NULL TSRMLS_CC)==SUCCESS) {
|
||||
if (Z_TYPE_P(z_context) != IS_ARRAY || z_context->value.ht != EG(active_symbol_table)) {
|
||||
zend_error(E_ERROR, "User error handler must not modify error context");
|
||||
}
|
||||
if (retval) {
|
||||
if (Z_TYPE_P(retval) == IS_BOOL && Z_LVAL_P(retval) == 0) {
|
||||
zend_error_cb(type, error_filename, error_lineno, format, args);
|
||||
@@ -1008,12 +1023,7 @@ ZEND_API void zend_error(int type, const char *format, ...)
|
||||
zval_ptr_dtor(&z_error_type);
|
||||
zval_ptr_dtor(&z_error_filename);
|
||||
zval_ptr_dtor(&z_error_lineno);
|
||||
if (ZVAL_REFCOUNT(z_context) <= 2) {
|
||||
FREE_ZVAL(z_context);
|
||||
} else {
|
||||
ZVAL_DELREF(z_context);
|
||||
zval_ptr_dtor(&z_context);
|
||||
}
|
||||
zval_ptr_dtor(&z_context);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1025,6 +1035,9 @@ ZEND_API void zend_error(int type, const char *format, ...)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN)
|
||||
void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((alias("zend_error"),noreturn));
|
||||
#endif
|
||||
|
||||
ZEND_API void zend_output_debug_string(zend_bool trigger_break, char *format, ...)
|
||||
{
|
||||
|
||||
+25
-7
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2005 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -22,7 +22,7 @@
|
||||
#ifndef ZEND_H
|
||||
#define ZEND_H
|
||||
|
||||
#define ZEND_VERSION "2.1.0b1"
|
||||
#define ZEND_VERSION "2.1.0"
|
||||
|
||||
#define ZEND_ENGINE_2
|
||||
|
||||
@@ -171,7 +171,7 @@ char *alloca ();
|
||||
# define ZEND_ATTRIBUTE_FORMAT(type, idx, first)
|
||||
#endif
|
||||
|
||||
#if ZEND_GCC_VERSION >= 3001
|
||||
#if ZEND_GCC_VERSION >= 3001 && !defined(__INTEL_COMPILER)
|
||||
# define ZEND_ATTRIBUTE_PTR_FORMAT(type, idx, first) __attribute__ ((format(type, idx, first)))
|
||||
#else
|
||||
# define ZEND_ATTRIBUTE_PTR_FORMAT(type, idx, first)
|
||||
@@ -247,8 +247,16 @@ char *alloca ();
|
||||
#include "zend_ts_hash.h"
|
||||
#include "zend_llist.h"
|
||||
|
||||
#define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval *this_ptr, int return_value_used TSRMLS_DC
|
||||
#define INTERNAL_FUNCTION_PARAM_PASSTHRU ht, return_value, this_ptr, return_value_used TSRMLS_CC
|
||||
#define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used TSRMLS_DC
|
||||
#define INTERNAL_FUNCTION_PARAM_PASSTHRU ht, return_value, return_value_ptr, this_ptr, return_value_used TSRMLS_CC
|
||||
|
||||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN)
|
||||
# define ZEND_VM_ALWAYS_INLINE __attribute__ ((always_inline))
|
||||
void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((noreturn));
|
||||
#else
|
||||
# define ZEND_VM_ALWAYS_INLINE
|
||||
# define zend_error_noreturn zend_error
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
@@ -257,11 +265,18 @@ char *alloca ();
|
||||
typedef struct _zval_struct zval;
|
||||
typedef struct _zend_class_entry zend_class_entry;
|
||||
|
||||
typedef struct _zend_guard {
|
||||
zend_bool in_get;
|
||||
zend_bool in_set;
|
||||
zend_bool in_unset;
|
||||
zend_bool in_isset;
|
||||
zend_bool dummy; /* sizeof(zend_guard) must not be equal to sizeof(void*) */
|
||||
} zend_guard;
|
||||
|
||||
typedef struct _zend_object {
|
||||
zend_class_entry *ce;
|
||||
HashTable *properties;
|
||||
unsigned int in_get:1;
|
||||
unsigned int in_set:1;
|
||||
HashTable *guards; /* protects from __get/__set ... recursion */
|
||||
} zend_object;
|
||||
|
||||
typedef unsigned int zend_object_handle;
|
||||
@@ -321,6 +336,7 @@ struct _zend_class_entry {
|
||||
HashTable function_table;
|
||||
HashTable default_properties;
|
||||
HashTable properties_info;
|
||||
HashTable default_static_members;
|
||||
HashTable *static_members;
|
||||
HashTable constants_table;
|
||||
struct _zend_function_entry *builtin_functions;
|
||||
@@ -330,6 +346,8 @@ struct _zend_class_entry {
|
||||
union _zend_function *clone;
|
||||
union _zend_function *__get;
|
||||
union _zend_function *__set;
|
||||
union _zend_function *__unset;
|
||||
union _zend_function *__isset;
|
||||
union _zend_function *__call;
|
||||
union _zend_function *serialize_func;
|
||||
union _zend_function *unserialize_func;
|
||||
|
||||
+599
-137
File diff suppressed because it is too large.
Load diff
+47
-19
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2005 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -65,7 +65,7 @@ typedef struct _zend_function_entry {
|
||||
zend_arg_info name[] = { \
|
||||
{ NULL, 0, NULL, 0, 0, 0, pass_rest_by_reference, return_reference, required_num_args },
|
||||
#define ZEND_BEGIN_ARG_INFO(name, pass_rest_by_reference) \
|
||||
ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, ZEND_RETURN_REFERENCE_AGNOSTIC, -1)
|
||||
ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, ZEND_RETURN_VALUE, -1)
|
||||
#define ZEND_END_ARG_INFO() };
|
||||
|
||||
/* Name macros */
|
||||
@@ -118,7 +118,7 @@ typedef struct _zend_function_entry {
|
||||
|
||||
#define INIT_CLASS_ENTRY(class_container, class_name, functions) INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, NULL, NULL, NULL)
|
||||
|
||||
#define INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, handle_fcall, handle_propget, handle_propset) \
|
||||
#define INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name, functions, handle_fcall, handle_propget, handle_propset, handle_propunset, handle_propisset) \
|
||||
{ \
|
||||
class_container.name = strdup(class_name); \
|
||||
class_container.name_length = sizeof(class_name) - 1; \
|
||||
@@ -131,6 +131,8 @@ typedef struct _zend_function_entry {
|
||||
class_container.__call = handle_fcall; \
|
||||
class_container.__get = handle_propget; \
|
||||
class_container.__set = handle_propset; \
|
||||
class_container.__unset = handle_propunset; \
|
||||
class_container.__isset = handle_propisset; \
|
||||
class_container.serialize = NULL; \
|
||||
class_container.unserialize = NULL; \
|
||||
class_container.parent = NULL; \
|
||||
@@ -141,6 +143,9 @@ typedef struct _zend_function_entry {
|
||||
class_container.module = NULL; \
|
||||
}
|
||||
|
||||
#define INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, handle_fcall, handle_propget, handle_propset) \
|
||||
INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name, functions, handle_fcall, handle_propget, handle_propset, NULL, NULL)
|
||||
|
||||
int zend_next_free_module(void);
|
||||
|
||||
BEGIN_EXTERN_C()
|
||||
@@ -172,8 +177,11 @@ ZEND_API int zend_parse_method_parameters_ex(int flags, int num_args TSRMLS_DC,
|
||||
|
||||
ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entry *functions, HashTable *function_table, int type TSRMLS_DC);
|
||||
ZEND_API void zend_unregister_functions(zend_function_entry *functions, int count, HashTable *function_table TSRMLS_DC);
|
||||
ZEND_API int zend_register_module(zend_module_entry *module_entry);
|
||||
ZEND_API int zend_register_module_ex(zend_module_entry *module TSRMLS_DC);
|
||||
ZEND_API int zend_startup_module(zend_module_entry *module_entry);
|
||||
ZEND_API zend_module_entry* zend_register_internal_module(zend_module_entry *module_entry TSRMLS_DC);
|
||||
ZEND_API zend_module_entry* zend_register_module_ex(zend_module_entry *module TSRMLS_DC);
|
||||
ZEND_API int zend_startup_module_ex(zend_module_entry *module TSRMLS_DC);
|
||||
ZEND_API int zend_startup_modules(TSRMLS_D);
|
||||
ZEND_API void zend_check_magic_method_implementation(zend_class_entry *ce, zend_function *fptr, int error_type TSRMLS_DC);
|
||||
|
||||
ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *class_entry TSRMLS_DC);
|
||||
@@ -188,7 +196,9 @@ ZEND_API void zend_wrong_param_count(TSRMLS_D);
|
||||
|
||||
#define IS_CALLABLE_CHECK_SYNTAX_ONLY (1<<0)
|
||||
#define IS_CALLABLE_CHECK_NO_ACCESS (1<<1)
|
||||
#define IS_CALLABLE_CHECK_IS_STATIC (1<<2)
|
||||
|
||||
ZEND_API zend_bool zend_is_callable_ex(zval *callable, uint check_flags, char **callable_name, int *callable_name_len, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zval ***zobj_ptr_ptr TSRMLS_DC);
|
||||
ZEND_API zend_bool zend_is_callable(zval *callable, uint check_flags, char **callable_name);
|
||||
ZEND_API zend_bool zend_make_callable(zval *callable, char **callable_name TSRMLS_DC);
|
||||
ZEND_API char *zend_get_module_version(char *module_name);
|
||||
@@ -202,6 +212,13 @@ ZEND_API int zend_declare_property_double(zend_class_entry *ce, char *name, int
|
||||
ZEND_API int zend_declare_property_string(zend_class_entry *ce, char *name, int name_length, char *value, int access_type TSRMLS_DC);
|
||||
ZEND_API int zend_declare_property_stringl(zend_class_entry *ce, char *name, int name_length, char *value, int value_len, int access_type TSRMLS_DC);
|
||||
|
||||
ZEND_API int zend_declare_class_constant(zend_class_entry *ce, char *name, size_t name_length, zval *value TSRMLS_DC);
|
||||
ZEND_API int zend_declare_class_constant_long(zend_class_entry *ce, char *name, size_t name_length, long value TSRMLS_DC);
|
||||
ZEND_API int zend_declare_class_constant_bool(zend_class_entry *ce, char *name, size_t name_length, zend_bool value TSRMLS_DC);
|
||||
ZEND_API int zend_declare_class_constant_double(zend_class_entry *ce, char *name, size_t name_length, double value TSRMLS_DC);
|
||||
ZEND_API int zend_declare_class_constant_stringl(zend_class_entry *ce, char *name, size_t name_length, char *value, size_t value_length TSRMLS_DC);
|
||||
ZEND_API int zend_declare_class_constant_string(zend_class_entry *ce, char *name, size_t name_length, char *value TSRMLS_DC);
|
||||
|
||||
ZEND_API void zend_update_class_constants(zend_class_entry *class_type TSRMLS_DC);
|
||||
ZEND_API void zend_update_property(zend_class_entry *scope, zval *object, char *name, int name_length, zval *value TSRMLS_DC);
|
||||
ZEND_API void zend_update_property_null(zend_class_entry *scope, zval *object, char *name, int name_length TSRMLS_DC);
|
||||
@@ -211,9 +228,20 @@ ZEND_API void zend_update_property_double(zend_class_entry *scope, zval *object,
|
||||
ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object, char *name, int name_length, char *value TSRMLS_DC);
|
||||
ZEND_API void zend_update_property_stringl(zend_class_entry *scope, zval *object, char *name, int name_length, char *value, int value_length TSRMLS_DC);
|
||||
|
||||
ZEND_API int zend_update_static_property(zend_class_entry *scope, char *name, int name_length, zval *value TSRMLS_DC);
|
||||
ZEND_API int zend_update_static_property_null(zend_class_entry *scope, char *name, int name_length TSRMLS_DC);
|
||||
ZEND_API int zend_update_static_property_bool(zend_class_entry *scope, char *name, int name_length, long value TSRMLS_DC);
|
||||
ZEND_API int zend_update_static_property_long(zend_class_entry *scope, char *name, int name_length, long value TSRMLS_DC);
|
||||
ZEND_API int zend_update_static_property_double(zend_class_entry *scope, char *name, int name_length, double value TSRMLS_DC);
|
||||
ZEND_API int zend_update_static_property_string(zend_class_entry *scope, char *name, int name_length, char *value TSRMLS_DC);
|
||||
ZEND_API int zend_update_static_property_stringl(zend_class_entry *scope, char *name, int name_length, char *value, int value_length TSRMLS_DC);
|
||||
|
||||
ZEND_API zval *zend_read_property(zend_class_entry *scope, zval *object, char *name, int name_length, zend_bool silent TSRMLS_DC);
|
||||
|
||||
ZEND_API zval *zend_read_static_property(zend_class_entry *scope, char *name, int name_length, zend_bool silent TSRMLS_DC);
|
||||
|
||||
ZEND_API zend_class_entry *zend_get_class_entry(zval *zobject TSRMLS_DC);
|
||||
ZEND_API int zend_get_object_classname(zval *object, char **class_name, zend_uint *class_name_len TSRMLS_DC);
|
||||
|
||||
#define getThis() (this_ptr)
|
||||
|
||||
@@ -228,8 +256,6 @@ ZEND_API zend_class_entry *zend_get_class_entry(zval *zobject TSRMLS_DC);
|
||||
#define DLEXPORT
|
||||
#endif
|
||||
|
||||
ZEND_API int zend_startup_module(zend_module_entry *module);
|
||||
|
||||
#define array_init(arg) _array_init((arg) ZEND_FILE_LINE_CC)
|
||||
#define object_init(arg) _object_init((arg) ZEND_FILE_LINE_CC TSRMLS_CC)
|
||||
#define object_init_ex(arg, ce) _object_init_ex((arg), (ce) ZEND_FILE_LINE_CC TSRMLS_CC)
|
||||
@@ -268,14 +294,14 @@ ZEND_API int add_assoc_zval_ex(zval *arg, char *key, uint key_len, zval *value);
|
||||
#define add_next_index_unset(__arg) add_next_index_null(__arg)
|
||||
#define add_property_unset(__arg, __key) add_property_null(__arg, __key)
|
||||
|
||||
ZEND_API int add_index_long(zval *arg, uint idx, long n);
|
||||
ZEND_API int add_index_null(zval *arg, uint idx);
|
||||
ZEND_API int add_index_bool(zval *arg, uint idx, int b);
|
||||
ZEND_API int add_index_resource(zval *arg, uint idx, int r);
|
||||
ZEND_API int add_index_double(zval *arg, uint idx, double d);
|
||||
ZEND_API int add_index_string(zval *arg, uint idx, char *str, int duplicate);
|
||||
ZEND_API int add_index_stringl(zval *arg, uint idx, char *str, uint length, int duplicate);
|
||||
ZEND_API int add_index_zval(zval *arg, uint index, zval *value);
|
||||
ZEND_API int add_index_long(zval *arg, ulong idx, long n);
|
||||
ZEND_API int add_index_null(zval *arg, ulong idx);
|
||||
ZEND_API int add_index_bool(zval *arg, ulong idx, int b);
|
||||
ZEND_API int add_index_resource(zval *arg, ulong idx, int r);
|
||||
ZEND_API int add_index_double(zval *arg, ulong idx, double d);
|
||||
ZEND_API int add_index_string(zval *arg, ulong idx, char *str, int duplicate);
|
||||
ZEND_API int add_index_stringl(zval *arg, ulong idx, char *str, uint length, int duplicate);
|
||||
ZEND_API int add_index_zval(zval *arg, ulong index, zval *value);
|
||||
|
||||
ZEND_API int add_next_index_long(zval *arg, long n);
|
||||
ZEND_API int add_next_index_null(zval *arg);
|
||||
@@ -292,10 +318,10 @@ ZEND_API int add_get_assoc_stringl_ex(zval *arg, char *key, uint key_len, char *
|
||||
#define add_get_assoc_string(__arg, __key, __str, __dest, __duplicate) add_get_assoc_string_ex(__arg, __key, strlen(__key)+1, __str, __dest, __duplicate)
|
||||
#define add_get_assoc_stringl(__arg, __key, __str, __length, __dest, __duplicate) add_get_assoc_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __dest, __duplicate)
|
||||
|
||||
ZEND_API int add_get_index_long(zval *arg, uint idx, long l, void **dest);
|
||||
ZEND_API int add_get_index_double(zval *arg, uint idx, double d, void **dest);
|
||||
ZEND_API int add_get_index_string(zval *arg, uint idx, char *str, void **dest, int duplicate);
|
||||
ZEND_API int add_get_index_stringl(zval *arg, uint idx, char *str, uint length, void **dest, int duplicate);
|
||||
ZEND_API int add_get_index_long(zval *arg, ulong idx, long l, void **dest);
|
||||
ZEND_API int add_get_index_double(zval *arg, ulong idx, double d, void **dest);
|
||||
ZEND_API int add_get_index_string(zval *arg, ulong idx, char *str, void **dest, int duplicate);
|
||||
ZEND_API int add_get_index_stringl(zval *arg, ulong idx, char *str, uint length, void **dest, int duplicate);
|
||||
|
||||
ZEND_API int add_property_long_ex(zval *arg, char *key, uint key_len, long l TSRMLS_DC);
|
||||
ZEND_API int add_property_null_ex(zval *arg, char *key, uint key_len TSRMLS_DC);
|
||||
@@ -350,6 +376,8 @@ ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
|
||||
|
||||
ZEND_API int zend_delete_global_variable(char *name, int name_len TSRMLS_DC);
|
||||
|
||||
ZEND_API void zend_reset_all_cv(HashTable *symbol_table TSRMLS_DC);
|
||||
|
||||
#define add_method(arg, key, method) add_assoc_function((arg), (key), (method))
|
||||
|
||||
ZEND_API ZEND_FUNCTION(display_disabled_function);
|
||||
|
||||
Loaded 100 of 1985 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user