mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-12 03:30:50 +00:00
Compare commits
3320
Commits
php-5.0.4
...
php-5.1.0b2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
abf24cfa1f | ||
|
|
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 | ||
|
|
3b1f8e9ad7 | ||
|
|
014a49f608 | ||
|
|
058205b67d | ||
|
|
c7b62187e5 | ||
|
|
46e4c9837d | ||
|
|
4796fc943a | ||
|
|
dc95b1bd32 | ||
|
|
26c3944d9c | ||
|
|
84b96e9b03 | ||
|
|
6efa17c2a1 | ||
|
|
a5135f4528 | ||
|
|
fcff6a079a | ||
|
|
711b4e0043 | ||
|
|
49e7b3da4c | ||
|
|
3ff7178126 | ||
|
|
6cc74b0e39 | ||
|
|
41421c7d7a | ||
|
|
5c16028eb5 | ||
|
|
be76bd5278 | ||
|
|
648522ab98 | ||
|
|
2cb52151ac | ||
|
|
b2f7dd2f66 | ||
|
|
b83a2603b3 | ||
|
|
59a46c34fa | ||
|
|
3341b5dedd | ||
|
|
fc92678b05 | ||
|
|
a4874a5533 | ||
|
|
e0b0ae9ce7 | ||
|
|
f3ebf7dd91 | ||
|
|
4c0970bec6 | ||
|
|
992a187eb1 | ||
|
|
92c5fb8368 | ||
|
|
0c6368d44b | ||
|
|
1f33f5cb96 | ||
|
|
72c6d5cbaf | ||
|
|
cf5a6f81e3 | ||
|
|
87df726f05 | ||
|
|
d873ecb29c | ||
|
|
9cf513dfea | ||
|
|
03389f8206 | ||
|
|
415ec46927 | ||
|
|
55cdb7c043 | ||
|
|
9affa32237 | ||
|
|
a95db2790d | ||
|
|
0a08f62d21 | ||
|
|
d02d270f48 | ||
|
|
0a44789bf3 | ||
|
|
79ca149b75 | ||
|
|
266290176b | ||
|
|
d3f1bf4c35 | ||
|
|
7101cd821a | ||
|
|
58a0ee09c3 | ||
|
|
eaa3d6c5ec | ||
|
|
8e2efc351b | ||
|
|
84392e5e7f | ||
|
|
7e8bd05c89 | ||
|
|
7a3dbcd1c4 | ||
|
|
401902b8a5 | ||
|
|
fac2718edd | ||
|
|
bf94716838 | ||
|
|
4658513d70 | ||
|
|
f07eed91c4 | ||
|
|
055e889bbd | ||
|
|
20d7e52a53 | ||
|
|
5b9bb8db6b | ||
|
|
f9de2a3dbd | ||
|
|
61e9d432d9 | ||
|
|
f1569c199e | ||
|
|
fccdf78ee8 | ||
|
|
e3d8886bcd | ||
|
|
e2e1bf6b0c | ||
|
|
941f16914d | ||
|
|
c6ae4a98be | ||
|
|
91a344a504 | ||
|
|
ce23692663 | ||
|
|
e5d3e07862 | ||
|
|
61054dbcd0 | ||
|
|
cd88e646fd | ||
|
|
acd747d374 | ||
|
|
6b29526617 | ||
|
|
42ada22e0c | ||
|
|
fc8aace243 | ||
|
|
e9d474dc01 | ||
|
|
05cec1dbce | ||
|
|
a13aaa8aef | ||
|
|
c28f59a1d5 | ||
|
|
b227a51201 | ||
|
|
664faf8411 | ||
|
|
2a8107ce69 | ||
|
|
8f6ed7b085 | ||
|
|
5d880ee78c | ||
|
|
d33500ee20 | ||
|
|
09c2da0d07 | ||
|
|
83dff0b68b | ||
|
|
51eebc6096 | ||
|
|
1182dd48e9 | ||
|
|
fd07bc5e6b | ||
|
|
e3cfb42bbd | ||
|
|
89e53d5ab2 | ||
|
|
6b39b374ef | ||
|
|
3d7b0bab28 | ||
|
|
d486da963e | ||
|
|
d3a665248d | ||
|
|
c015c522f3 | ||
|
|
2fa74dab0e | ||
|
|
cb5a9f534a | ||
|
|
56a68b5be1 | ||
|
|
2018d2df32 | ||
|
|
7e450f528c | ||
|
|
ad21bb1baa | ||
|
|
90f4590d87 | ||
|
|
f887ae2e80 | ||
|
|
f58c83135d | ||
|
|
fd396287d0 | ||
|
|
29319a81b8 | ||
|
|
8b134356ef | ||
|
|
b41a7ad18a | ||
|
|
9383e1b858 | ||
|
|
28446a4e45 | ||
|
|
f28249f779 | ||
|
|
fc8ae455df | ||
|
|
84fef05939 | ||
|
|
dac8f964f2 | ||
|
|
80eb74e4fe | ||
|
|
156a908997 | ||
|
|
747074f988 | ||
|
|
8defc849cc | ||
|
|
b185ee0315 | ||
|
|
4f9a2bed42 | ||
|
|
125f153dd8 | ||
|
|
b28b401c78 | ||
|
|
ae35d25940 | ||
|
|
f41bf6123b | ||
|
|
9b57f5ff36 | ||
|
|
43ba3897c2 | ||
|
|
abfc90fb60 | ||
|
|
5fee97ca33 | ||
|
|
4094bf77c5 | ||
|
|
59fb0f2e8b | ||
|
|
a20383ba06 | ||
|
|
d12196e575 | ||
|
|
522159468c | ||
|
|
d1f653bd08 | ||
|
|
fce59d9dae | ||
|
|
af14bbe455 | ||
|
|
10f21b3bca | ||
|
|
c24900dfa4 | ||
|
|
afaabbe5f7 | ||
|
|
23a7bc0203 | ||
|
|
4918b67ac5 | ||
|
|
ce1dfefd26 | ||
|
|
b43240dfcf | ||
|
|
b7644c85e5 | ||
|
|
4e72f8a298 | ||
|
|
743c5bb15b | ||
|
|
b74a5eac59 | ||
|
|
9ef2ea19e5 | ||
|
|
ab94914a4b | ||
|
|
cbee2d697b | ||
|
|
3d2944863c | ||
|
|
9b3929a7e9 | ||
|
|
d2018ef2c0 | ||
|
|
1a72341328 | ||
|
|
3453cf642a | ||
|
|
457d556f66 | ||
|
|
fddaa54410 | ||
|
|
ff525e55df | ||
|
|
1add2cc70e | ||
|
|
47294288fe | ||
|
|
266f2fbf13 | ||
|
|
d2371d58cd | ||
|
|
79742f81a2 | ||
|
|
309025e8c1 | ||
|
|
396affc81e | ||
|
|
e2999b154f | ||
|
|
158605a267 | ||
|
|
2ac0540323 | ||
|
|
88157ad284 | ||
|
|
041b37b2b9 | ||
|
|
e4c6d7708e | ||
|
|
7b442413d7 | ||
|
|
d367b7b913 | ||
|
|
d4db964aed | ||
|
|
b841969760 | ||
|
|
2f044696a6 | ||
|
|
201fbc48e6 | ||
|
|
ef111b8364 | ||
|
|
22c5e8a6ea | ||
|
|
26d7b7fbc0 | ||
|
|
1417cbaf30 | ||
|
|
25108c37ca | ||
|
|
17c7d35208 | ||
|
|
76c05604a6 | ||
|
|
a186549ec0 | ||
|
|
6ba1dd9cbc | ||
|
|
a8a305966c | ||
|
|
4688093cdc | ||
|
|
c1ef105535 | ||
|
|
0eb7282f98 | ||
|
|
230681b0b3 | ||
|
|
3e416f738c | ||
|
|
d459f26b62 | ||
|
|
022461d976 | ||
|
|
4ce95ef1ea | ||
|
|
66fbe9e73c | ||
|
|
8f5ecf6da8 | ||
|
|
5f6d5e4fb3 | ||
|
|
e56660a1ad | ||
|
|
091bff3570 | ||
|
|
b45fb630d9 | ||
|
|
cccdec3577 | ||
|
|
e117b6bad2 | ||
|
|
6e9e5b099c | ||
|
|
99415eacbb | ||
|
|
fa0e534f83 | ||
|
|
92c8c09da5 | ||
|
|
3af3379a27 | ||
|
|
ba7123fc9b | ||
|
|
94666dcfb6 | ||
|
|
e04666ae20 | ||
|
|
b03b79c985 | ||
|
|
389b1abc16 | ||
|
|
53ee348165 | ||
|
|
57aa3b984b | ||
|
|
746b89df16 | ||
|
|
2ebda52b24 | ||
|
|
bb6f4dfc7d | ||
|
|
5cd3bd2ea7 | ||
|
|
def27b9959 | ||
|
|
35f8741111 | ||
|
|
c281eb38ae | ||
|
|
9af73f68ef | ||
|
|
d5bb03b11a | ||
|
|
89316046c9 | ||
|
|
e8cd91adee | ||
|
|
51fe495ea1 | ||
|
|
626d781afd | ||
|
|
416ea7638d | ||
|
|
5d8394879b | ||
|
|
1c7d86ad2a | ||
|
|
4f778ca31d | ||
|
|
d72cd1d130 | ||
|
|
d8f91dc44c | ||
|
|
49e1484da8 | ||
|
|
45d2c2f1fd | ||
|
|
0e459321bf | ||
|
|
66a821a763 | ||
|
|
c1e480d46e | ||
|
|
a5c37f37b6 | ||
|
|
cee979d5a9 | ||
|
|
cfa90afcc7 | ||
|
|
8056035197 | ||
|
|
6568dea9ef | ||
|
|
5815b03511 | ||
|
|
bd2e99ee50 | ||
|
|
1f604371b0 | ||
|
|
be3a9ccdf3 | ||
|
|
4cabeaf1c7 | ||
|
|
867e619154 | ||
|
|
9187fc4fc0 | ||
|
|
fcf14f1795 | ||
|
|
38a7ef5fe6 | ||
|
|
0c268fa0f7 | ||
|
|
2d4dcd5c35 | ||
|
|
e0b3a79e1e | ||
|
|
84bdf9b0a0 | ||
|
|
f12b14078e | ||
|
|
924b4c016d | ||
|
|
760b955dd1 | ||
|
|
bd996f23f2 | ||
|
|
61ba13bf72 | ||
|
|
05c3801193 | ||
|
|
8e97019a69 | ||
|
|
b4464a2d6a | ||
|
|
d5e0b8a628 | ||
|
|
8d00609794 | ||
|
|
db1a5ab243 | ||
|
|
02d0f72596 | ||
|
|
4b87d8360e | ||
|
|
30c554a0ac | ||
|
|
310dd4a214 | ||
|
|
fef305724b | ||
|
|
f2dd8f028b | ||
|
|
0060548378 | ||
|
|
b654b20ef6 | ||
|
|
882bd85360 | ||
|
|
e3dd556e37 | ||
|
|
b3f5a2dca4 | ||
|
|
f8fd0898b7 | ||
|
|
d24f853464 | ||
|
|
660afcaef4 | ||
|
|
13ba056aff | ||
|
|
daae299653 | ||
|
|
8cd3409b30 | ||
|
|
1fd4adb69e | ||
|
|
1623537998 | ||
|
|
91b3b49f14 | ||
|
|
70da059cc0 | ||
|
|
b7df40a75a | ||
|
|
1ee0293680 | ||
|
|
626253940e | ||
|
|
deacfcefc2 | ||
|
|
9070204b93 | ||
|
|
379394b82c | ||
|
|
37f46251fb | ||
|
|
0a830b33fc | ||
|
|
60c0c8e95c | ||
|
|
3ae10919c4 | ||
|
|
b874c94d81 | ||
|
|
a63f5d1c3f | ||
|
|
d34e9a33a5 | ||
|
|
cdb675cbcf | ||
|
|
c4de57e07c | ||
|
|
f92c470827 | ||
|
|
625d5ba4a3 | ||
|
|
e76363aef7 | ||
|
|
31a8c58911 | ||
|
|
79d6f11a4a | ||
|
|
929e3851f2 | ||
|
|
5c99563615 | ||
|
|
1ba54f5fca | ||
|
|
99c72d0b94 | ||
|
|
4dc7c06b2a | ||
|
|
1ef8064753 | ||
|
|
7b34bb2be7 | ||
|
|
abf7b57160 | ||
|
|
b2d28102a8 | ||
|
|
5e4d91582a | ||
|
|
37d16df05c | ||
|
|
95629a63df | ||
|
|
6d2fd215e9 | ||
|
|
bdbce01588 | ||
|
|
d6d9b15ef7 | ||
|
|
177ea26dc1 | ||
|
|
287864a611 | ||
|
|
b3a8a50581 | ||
|
|
ed35225721 | ||
|
|
69326a796e | ||
|
|
51d100a27a | ||
|
|
e49cebe157 | ||
|
|
ec6db3d242 | ||
|
|
81b536f4a6 | ||
|
|
2ad6cacf7e | ||
|
|
1a0579affa | ||
|
|
fa65031982 | ||
|
|
56d543c161 | ||
|
|
138c5457ac | ||
|
|
f44dc4c930 | ||
|
|
7a0b3edbe0 | ||
|
|
2c0959689b | ||
|
|
7a4eb25870 | ||
|
|
6141c5690d | ||
|
|
f0c0f1ca41 | ||
|
|
fb0c19da1c | ||
|
|
fe523b9a9b | ||
|
|
8209835e5a | ||
|
|
90ee88e090 | ||
|
|
b06fb51f89 | ||
|
|
eaf09df585 | ||
|
|
073188c832 | ||
|
|
40b6c60d9d | ||
|
|
d7682085c6 | ||
|
|
2c9bf19823 | ||
|
|
e8f715af59 | ||
|
|
ab3f962b8b | ||
|
|
b85f0897a2 | ||
|
|
bf85fd4f2b | ||
|
|
edd4860674 | ||
|
|
217e89b124 | ||
|
|
e640960186 | ||
|
|
e57408a098 | ||
|
|
8b7a03c889 | ||
|
|
8db238b075 | ||
|
|
72b5173ac3 | ||
|
|
5ae4d8e701 | ||
|
|
921c39f496 | ||
|
|
3dcd8c26ee | ||
|
|
96bc29839b | ||
|
|
8ba7d5dc53 | ||
|
|
56fb07e147 | ||
|
|
c1748aa483 | ||
|
|
8abc1d3b9c | ||
|
|
9966587aaf | ||
|
|
06a9f28b17 | ||
|
|
8c2cda1251 | ||
|
|
b0d5236605 | ||
|
|
5ca4b8383e | ||
|
|
03bdd1a5d4 | ||
|
|
1ed5c14fe2 | ||
|
|
085f2a6980 | ||
|
|
4625889764 | ||
|
|
099a7eb6b8 | ||
|
|
3be50385ab | ||
|
|
56b3cac365 | ||
|
|
6d978a62f1 | ||
|
|
396acbf64c | ||
|
|
3b3ce2b610 | ||
|
|
c81db6bc56 | ||
|
|
abb07db4c6 | ||
|
|
5d4230a7e7 | ||
|
|
39bcbfc306 | ||
|
|
aba79c268c | ||
|
|
f6b12b351e | ||
|
|
71adb81e96 | ||
|
|
28e68301dc | ||
|
|
d30a9ee96d | ||
|
|
04b5f20be5 | ||
|
|
a9a319b078 | ||
|
|
1098d9bccb | ||
|
|
5f600cdf57 | ||
|
|
694f7a9e90 | ||
|
|
4f15b20b92 | ||
|
|
6e0da82528 | ||
|
|
daf6b8303e | ||
|
|
8281f41f3e | ||
|
|
87fc464c6b | ||
|
|
87a70f10a7 | ||
|
|
0783e0a358 | ||
|
|
669fd595fe | ||
|
|
335742c2ef | ||
|
|
53e3b0fcb8 | ||
|
|
d0f85d3e27 | ||
|
|
03593f89fb | ||
|
|
92965de4ab | ||
|
|
a1c24b238a | ||
|
|
b86bab9735 | ||
|
|
f150ee9ab5 | ||
|
|
35b38598cc | ||
|
|
cbe6261882 | ||
|
|
9a020fce63 | ||
|
|
c78ec1615a | ||
|
|
11a91f04b2 | ||
|
|
c3da4c9102 | ||
|
|
320dd75443 | ||
|
|
409c3fd4a6 | ||
|
|
20e67fd175 | ||
|
|
e5a1216c94 | ||
|
|
0eb271add6 | ||
|
|
815aff1caf | ||
|
|
e642d180f6 | ||
|
|
3080d49ed4 | ||
|
|
965b70c0bd | ||
|
|
6bbd46b186 | ||
|
|
7c5f5697ce | ||
|
|
755b027e8c | ||
|
|
ca7a649300 | ||
|
|
7dd430ff28 | ||
|
|
ace93a1de9 | ||
|
|
f2d086127c | ||
|
|
8b8940ba84 | ||
|
|
287a31e053 | ||
|
|
9af93dbb41 | ||
|
|
4c3fdcaa4e | ||
|
|
62a1f82e4a | ||
|
|
e6a70fd0d3 | ||
|
|
714080f10f | ||
|
|
e0c4f9b9be | ||
|
|
bd06b244a7 | ||
|
|
1c4ca6a32e | ||
|
|
c1b2990d0e | ||
|
|
4eccd5df70 | ||
|
|
e836164570 | ||
|
|
2bcae57b31 | ||
|
|
9c1960c398 | ||
|
|
649a8b18ef | ||
|
|
9d2de24ab5 | ||
|
|
d8b50c8175 | ||
|
|
7288226dba | ||
|
|
c4a7ee45ad | ||
|
|
f2ae989262 | ||
|
|
67a226d910 | ||
|
|
b8ac8eeca6 | ||
|
|
acbeba2a50 | ||
|
|
569138e0c0 | ||
|
|
5778fccbbb | ||
|
|
2652762dcd | ||
|
|
eef94ff4bb | ||
|
|
2a3c71b833 | ||
|
|
155b90db20 | ||
|
|
0e57528666 | ||
|
|
cb0c9ac022 | ||
|
|
7013788711 | ||
|
|
e211d4e3ae | ||
|
|
aee0f87ccd | ||
|
|
334d756ffa | ||
|
|
4033ad1dd2 | ||
|
|
195f69f0c7 | ||
|
|
ea6d23b8c0 | ||
|
|
ba22efa25c | ||
|
|
4e04b5b5fb | ||
|
|
21cae3966c | ||
|
|
0810696e50 | ||
|
|
c17b18689c | ||
|
|
d28acc8452 | ||
|
|
43a5cee728 | ||
|
|
7aad424332 | ||
|
|
79b9084eef | ||
|
|
6de75a77c6 | ||
|
|
87c931695f | ||
|
|
a1127a736b | ||
|
|
36064e120e | ||
|
|
bb8988109d | ||
|
|
d5d9c6b8f3 | ||
|
|
65c6833d66 | ||
|
|
f838f8e37d | ||
|
|
083795cbbf | ||
|
|
b79838dab8 | ||
|
|
58f441e2f7 | ||
|
|
11c59f6d8f | ||
|
|
3963ba649d | ||
|
|
4162bd8b21 | ||
|
|
e6614e451d | ||
|
|
d0f4028194 | ||
|
|
802c8e83c9 | ||
|
|
b154e82d24 | ||
|
|
e5697cc0ad | ||
|
|
5efe7cf99a | ||
|
|
82819f3061 | ||
|
|
5b21e48557 | ||
|
|
4fbddd03d7 | ||
|
|
91b587f884 | ||
|
|
9cde55f8ed | ||
|
|
c4e788b03c | ||
|
|
6ead36dcf4 | ||
|
|
519f381fca | ||
|
|
172f3af8ed | ||
|
|
4f3b12b3fd | ||
|
|
e23f62fc4f | ||
|
|
378776dc33 | ||
|
|
e546162f2c | ||
|
|
e87127af69 | ||
|
|
dac4eb1c70 | ||
|
|
fc51ec9e12 | ||
|
|
2c511712f7 | ||
|
|
cba30657d9 | ||
|
|
36d13eb7c9 | ||
|
|
ecf95a1e66 | ||
|
|
7bf2fe5296 | ||
|
|
d5847b9cf7 | ||
|
|
a13b29add7 | ||
|
|
5ddf66e004 | ||
|
|
ce73b66466 | ||
|
|
68798e50ee | ||
|
|
81837f718b | ||
|
|
2a83dbdf1c | ||
|
|
e9224d0bd1 | ||
|
|
452b4cdba1 | ||
|
|
37887f1bd0 | ||
|
|
37eee73274 | ||
|
|
0c6cd5f5f7 | ||
|
|
8dcbeae90d | ||
|
|
d9f5f1ee08 | ||
|
|
628b8cae7d | ||
|
|
ce36c5f3b1 | ||
|
|
5fe1be8b5e | ||
|
|
d7f848d069 | ||
|
|
8509f06056 | ||
|
|
338bdf1587 | ||
|
|
28ffae8ad0 | ||
|
|
6f539ae99e | ||
|
|
de3a7cecc9 | ||
|
|
dc8823b565 | ||
|
|
6e58f898d5 | ||
|
|
ac53cdfb2f | ||
|
|
ab5072df2a | ||
|
|
7af1dfa8cb | ||
|
|
5313e98b72 | ||
|
|
2fae7f1e71 | ||
|
|
d100328de8 | ||
|
|
c4dbeca169 | ||
|
|
4f615d3cff | ||
|
|
53e5eb8032 | ||
|
|
32182b190a | ||
|
|
adb3d0197e | ||
|
|
9c3919c3a3 | ||
|
|
40cc0b7724 | ||
|
|
698d301c1c | ||
|
|
5921e6c039 | ||
|
|
34785cf602 | ||
|
|
5355bdc788 | ||
|
|
d57f08147d | ||
|
|
f3ee713a42 | ||
|
|
aea6208e9e | ||
|
|
ce36ef5787 | ||
|
|
355eefe5f9 | ||
|
|
9356d7fc64 | ||
|
|
d976e3d165 | ||
|
|
b14271dbfa | ||
|
|
779f5c5c19 | ||
|
|
cd47b3c542 | ||
|
|
e2e53b6511 | ||
|
|
a85e6ea0d4 | ||
|
|
7adac251e3 | ||
|
|
1b3b55a858 | ||
|
|
4ad9f76523 | ||
|
|
733aa2e949 | ||
|
|
1d60050312 | ||
|
|
a7ae41bf89 | ||
|
|
997690b132 | ||
|
|
e7a2efe053 | ||
|
|
f6ecb58448 | ||
|
|
e89235fa17 | ||
|
|
33677ddb95 | ||
|
|
6f13b138a7 | ||
|
|
cb8d20760c | ||
|
|
7e7775a328 | ||
|
|
2f8d672bfc | ||
|
|
58d45bfe2e | ||
|
|
d77945ef78 | ||
|
|
d9aea604b3 | ||
|
|
0b0fc93a55 | ||
|
|
51852db0df | ||
|
|
760439567a | ||
|
|
2887f89075 | ||
|
|
28b13f50e6 | ||
|
|
95f860d025 | ||
|
|
8235a70ef9 | ||
|
|
4558cdade6 | ||
|
|
f2a3b12445 | ||
|
|
25dd01d428 | ||
|
|
3ac5ec3b7e | ||
|
|
b30fd67736 | ||
|
|
f20c5ce7e1 | ||
|
|
3fb36bf08e | ||
|
|
ca10457a58 | ||
|
|
1d25fc5c7b | ||
|
|
55c25c7275 | ||
|
|
1c4eb9b684 | ||
|
|
b2858fb449 | ||
|
|
c67da24e31 | ||
|
|
0ee465d2a0 | ||
|
|
4ff40069af | ||
|
|
fc883fd477 | ||
|
|
48f4e4bb87 | ||
|
|
9f21d8e72c | ||
|
|
bf3286cd6c | ||
|
|
c45a0c918f | ||
|
|
b543778fed | ||
|
|
f1b024668f | ||
|
|
62f305e5a7 | ||
|
|
7f4e28d2bd | ||
|
|
d17ccbdeee | ||
|
|
1d5691e2cc | ||
|
|
7adb2b0c0b | ||
|
|
d383735978 | ||
|
|
530917b463 | ||
|
|
a119050ebb | ||
|
|
1f3419a4db | ||
|
|
3eb4162122 | ||
|
|
3a947f256a | ||
|
|
d5b2c5e286 | ||
|
|
6974b5ecce | ||
|
|
2d45bbb9cf | ||
|
|
5aa95520cd | ||
|
|
11e0ab6a93 | ||
|
|
e499a1c296 | ||
|
|
29ede46872 | ||
|
|
1a356bc40e | ||
|
|
6071843d4c | ||
|
|
ec841c8e12 | ||
|
|
caeeebebc1 | ||
|
|
d78d3ac210 | ||
|
|
9752cbde12 | ||
|
|
a3f2a3aab5 | ||
|
|
8dff99116d | ||
|
|
d8824f2d5c | ||
|
|
6d46acfc70 | ||
|
|
4e10995140 | ||
|
|
039bd86987 | ||
|
|
e923407cc5 | ||
|
|
c8ce18c155 | ||
|
|
f95651e338 | ||
|
|
e707137ed3 | ||
|
|
35f051b502 | ||
|
|
2e0ddb39bc | ||
|
|
a8b29a2e8f | ||
|
|
24eb2bfabc | ||
|
|
da53094765 | ||
|
|
fcba5e099c | ||
|
|
d203f88665 | ||
|
|
2a256d5114 | ||
|
|
4e3b8c61dd | ||
|
|
69cad0226d | ||
|
|
bba731e66b | ||
|
|
030ebaaa45 | ||
|
|
8817f64457 | ||
|
|
e8bd3b9b4f | ||
|
|
3f16ad98c9 | ||
|
|
bfd0e28e5c | ||
|
|
f370582500 | ||
|
|
d27be11233 | ||
|
|
2906d6570c | ||
|
|
0a65a3d505 | ||
|
|
b6554f5ad7 | ||
|
|
76e07faf87 | ||
|
|
2cba0ab304 | ||
|
|
3b39b2237f | ||
|
|
8f14211e13 | ||
|
|
992c28db75 | ||
|
|
2283e471f8 | ||
|
|
3e6fce84bb | ||
|
|
e31bc5a643 | ||
|
|
15ed825d6e | ||
|
|
4ecbf1792b | ||
|
|
63ed4a1996 | ||
|
|
9b1c9891fc | ||
|
|
8865ae43c2 | ||
|
|
35cfbee1ae | ||
|
|
a3e46ecde5 | ||
|
|
542901d705 | ||
|
|
a075b651be | ||
|
|
77910ec63f | ||
|
|
9ba5535993 | ||
|
|
7af2c5e44b | ||
|
|
dce82da87d | ||
|
|
73a6a31053 | ||
|
|
fedbd2145a | ||
|
|
5d0281d060 | ||
|
|
e2b87e6230 | ||
|
|
b30d8beebf | ||
|
|
3b7f8ef5a1 | ||
|
|
041524feee | ||
|
|
756c5784c1 | ||
|
|
1a3677ea27 | ||
|
|
9bf6a7f229 | ||
|
|
c590531c07 | ||
|
|
0ac2c94ffa | ||
|
|
6895ef99c0 | ||
|
|
06a96fdfe5 | ||
|
|
a66e14645c | ||
|
|
c9108bba25 | ||
|
|
29b4277e2d | ||
|
|
d7a7913476 | ||
|
|
978f50c046 | ||
|
|
9c3164e487 | ||
|
|
713622d363 | ||
|
|
18f4a3f9ff | ||
|
|
4d46234912 | ||
|
|
721d34bebc | ||
|
|
1b42ccfbff | ||
|
|
6a6eaf2b72 | ||
|
|
6735e8c2a7 | ||
|
|
fec4937052 | ||
|
|
cf020f1334 | ||
|
|
5f7f88949b | ||
|
|
7b3813ea11 | ||
|
|
32c2e664a6 | ||
|
|
e38141478a | ||
|
|
f27fb2d715 | ||
|
|
d23781e08d | ||
|
|
17264461f9 | ||
|
|
360fbc09b7 | ||
|
|
7b2bee1d5b | ||
|
|
cd3de28357 | ||
|
|
3dd44c3018 | ||
|
|
e4570cdbd2 | ||
|
|
28ec3abf87 | ||
|
|
c30f4ab6ec | ||
|
|
1168c30635 | ||
|
|
43fc6b2254 | ||
|
|
e9dbeabd38 | ||
|
|
fd03f4f056 | ||
|
|
23b3d1ca24 | ||
|
|
a98460beac | ||
|
|
bbe98a88f3 | ||
|
|
1524d4890f | ||
|
|
ebb8d72d88 | ||
|
|
d2731eb575 | ||
|
|
6a74f0a1b0 | ||
|
|
8197b6b678 | ||
|
|
646bb71503 | ||
|
|
1f06bb94c6 | ||
|
|
fed3058fba | ||
|
|
00832b763f | ||
|
|
9c2c04b580 | ||
|
|
04d44c8a5c | ||
|
|
e8895d86b3 | ||
|
|
37d1a4f9d3 | ||
|
|
2d521a73c8 | ||
|
|
42b9b26e45 | ||
|
|
e5f7f63d36 | ||
|
|
eb253ab571 | ||
|
|
effa111c5e | ||
|
|
d247e074a7 | ||
|
|
e6ae6fc62d | ||
|
|
5d190e6b5e | ||
|
|
7de1d279cc | ||
|
|
9d5b3e55e3 | ||
|
|
35b0b8de99 | ||
|
|
06667585b5 | ||
|
|
5ab7264189 | ||
|
|
6090964157 | ||
|
|
03aa52bae6 | ||
|
|
8c38ac19bf | ||
|
|
abb724a6b3 | ||
|
|
a879957d43 | ||
|
|
005b2d77bf | ||
|
|
3c0411c496 | ||
|
|
1dbc47c43f | ||
|
|
6e6a1f0e69 | ||
|
|
5a4c0afe31 | ||
|
|
7b6ec9178f | ||
|
|
5718cb15a3 | ||
|
|
81629076f8 | ||
|
|
3795a90741 | ||
|
|
6437bc056d | ||
|
|
bde0661ef6 | ||
|
|
7c4cd04229 | ||
|
|
dd64e6dede | ||
|
|
5bd7be94a4 | ||
|
|
dd54f36d49 | ||
|
|
c6e39471de | ||
|
|
c3957fe1e8 | ||
|
|
96cd8a9ce6 | ||
|
|
d8db1c2cc5 | ||
|
|
565e832edf | ||
|
|
83c13d22e9 | ||
|
|
5880260c78 | ||
|
|
6f668d4978 | ||
|
|
f9de3fd02b | ||
|
|
6dc04d98f2 | ||
|
|
f56e5c045c | ||
|
|
53823a7d7f | ||
|
|
f15c24d44c | ||
|
|
07fd652824 | ||
|
|
1236cfa38a | ||
|
|
cc39b51d2d | ||
|
|
c449002566 | ||
|
|
9e939133d2 | ||
|
|
070147105f | ||
|
|
016a39195e | ||
|
|
f3a5d430fc | ||
|
|
6c73805c45 | ||
|
|
73aec110ce | ||
|
|
5248f59d1a | ||
|
|
d88b4c734f | ||
|
|
cbcd4271d2 | ||
|
|
5985098b98 | ||
|
|
c7ec6d0ce1 | ||
|
|
9619c3b811 | ||
|
|
52dd9f028e | ||
|
|
b4a961a234 | ||
|
|
5a94bb642f | ||
|
|
4e390892b7 | ||
|
|
5727828651 | ||
|
|
45212809b5 | ||
|
|
299a17ba37 | ||
|
|
b924ef8796 | ||
|
|
1d85c3fe80 | ||
|
|
faae6ac159 | ||
|
|
04a08c757a | ||
|
|
df56c39bda | ||
|
|
4172ec995c | ||
|
|
ff80321587 | ||
|
|
e6034763ca | ||
|
|
8462621bd7 | ||
|
|
cdb042f632 | ||
|
|
92af2b6194 | ||
|
|
1b93629fb8 | ||
|
|
b31c44d0fd | ||
|
|
1b5d558f91 | ||
|
|
38a9516a8a | ||
|
|
7473600dba | ||
|
|
0a93d54c53 | ||
|
|
3796738681 | ||
|
|
bef3202d9e | ||
|
|
e65d57535f | ||
|
|
72276d013a | ||
|
|
e4599c6944 | ||
|
|
affc9bb69b | ||
|
|
d0d268c405 | ||
|
|
bd13b72164 | ||
|
|
22fcd1aac7 | ||
|
|
34c432de7e | ||
|
|
3e2dd57c0a | ||
|
|
0844446176 | ||
|
|
21ff96859e | ||
|
|
a826ded3cc | ||
|
|
e162e80d31 | ||
|
|
584abff629 | ||
|
|
5984f7f3e1 | ||
|
|
56235c6cc8 | ||
|
|
16d67ab9f5 | ||
|
|
a2413c32ce | ||
|
|
95b67c9763 | ||
|
|
f7ebff804d | ||
|
|
591fb2d97c | ||
|
|
de1d8b91f0 | ||
|
|
4b4975f1f8 | ||
|
|
27c43d5991 | ||
|
|
d49ecd51c1 | ||
|
|
d06dec1ac0 | ||
|
|
f0a3e5be17 | ||
|
|
b79e8759fc | ||
|
|
ef17168fd1 | ||
|
|
3efc383a07 | ||
|
|
088972feee | ||
|
|
da2cb43507 | ||
|
|
b06d0ef758 | ||
|
|
e90582a990 | ||
|
|
ddde4497b2 | ||
|
|
d0bb8f5f12 | ||
|
|
0e9e0f62fc | ||
|
|
e17ad42e38 | ||
|
|
0dbe348d1d | ||
|
|
83dfcbf3f6 | ||
|
|
570976d236 | ||
|
|
7c1d94a702 | ||
|
|
360381583d | ||
|
|
7ab5b4ff42 | ||
|
|
7b64727519 | ||
|
|
bbccc37f84 | ||
|
|
efb3529b7f | ||
|
|
9c08e3ccae | ||
|
|
6200cdba7c | ||
|
|
1a67f846d6 | ||
|
|
757da1eed5 | ||
|
|
9b8725a967 | ||
|
|
6bd8257607 | ||
|
|
cf6711abfa | ||
|
|
97655f8a3b | ||
|
|
85ebbd28a0 | ||
|
|
975ff6f5d5 | ||
|
|
4ae4b63f44 | ||
|
|
6f00c1b73b | ||
|
|
118b7b567a | ||
|
|
0c9610fc9d | ||
|
|
12e60c9c1e | ||
|
|
1d54f897ca | ||
|
|
37e2436b6f | ||
|
|
7bbbfa3f15 | ||
|
|
b25b123467 | ||
|
|
3960865e8e | ||
|
|
40bf907541 | ||
|
|
7fbc91acce | ||
|
|
84e560435e | ||
|
|
89f320755d | ||
|
|
16f0329a52 | ||
|
|
f3970b8076 | ||
|
|
0d1e43711a | ||
|
|
ef64180c90 | ||
|
|
86ac9559be | ||
|
|
5830e46a84 | ||
|
|
96d7eebce8 | ||
|
|
6d6e939f9b | ||
|
|
c8687cdb79 | ||
|
|
0344652b38 | ||
|
|
ede98577e2 | ||
|
|
1d3c79a8a6 | ||
|
|
8a3cc406be | ||
|
|
48a6151051 | ||
|
|
81c161d0a7 | ||
|
|
5e33c04e95 | ||
|
|
fc825e2071 | ||
|
|
eff0d65240 | ||
|
|
e4ce3e36ef | ||
|
|
7fc626f89b | ||
|
|
5fe241ff64 | ||
|
|
f8fc9a3256 | ||
|
|
d42656b033 | ||
|
|
a942bcd669 | ||
|
|
4c883c79bb | ||
|
|
ba5479a099 | ||
|
|
e891278f1d | ||
|
|
eafd1c4678 | ||
|
|
f76f510185 | ||
|
|
5ce920f189 | ||
|
|
dc4501cf99 | ||
|
|
12f1993f8e | ||
|
|
49d1349b9a | ||
|
|
d9145daa61 | ||
|
|
7cca51e97e | ||
|
|
baf717472e | ||
|
|
09a8f38e39 | ||
|
|
c2eed8e950 | ||
|
|
a50157121d | ||
|
|
30ee47c1d8 | ||
|
|
e628f2d9fa | ||
|
|
7d7ca3b713 | ||
|
|
c90305cb2e | ||
|
|
4d5599f6e0 | ||
|
|
bd5e6e6232 | ||
|
|
37ab4fe1b2 | ||
|
|
0246835860 | ||
|
|
5cb7104630 | ||
|
|
f33adafab7 | ||
|
|
0b3ed59fb6 | ||
|
|
71b9b512cc | ||
|
|
865c23e947 | ||
|
|
584f64ed62 | ||
|
|
033a45903c | ||
|
|
14abc19a76 | ||
|
|
6dac68f669 | ||
|
|
67fd1f2654 | ||
|
|
9001280387 | ||
|
|
76c5d53993 | ||
|
|
c61608ef35 | ||
|
|
0b7435f590 | ||
|
|
143d62a179 | ||
|
|
3f320607ab | ||
|
|
87528d9138 | ||
|
|
f28e72b06a | ||
|
|
a4521139da | ||
|
|
8eab7ab62e | ||
|
|
6ce9bcc31e | ||
|
|
ddd62f2b07 | ||
|
|
eb330a95f6 | ||
|
|
d072f6de54 | ||
|
|
cfecb1face | ||
|
|
e2f1b375a2 | ||
|
|
b7476a5bd6 | ||
|
|
bc1c0c2e12 | ||
|
|
99f832a206 | ||
|
|
ee49617830 | ||
|
|
4901a8e2b8 | ||
|
|
401f813383 | ||
|
|
742b0ab676 | ||
|
|
c145e5a7e3 | ||
|
|
4832e83a1d | ||
|
|
f58e2006d5 | ||
|
|
fdc3fce335 | ||
|
|
f7d2317ce7 | ||
|
|
8de753f09e | ||
|
|
fef7cb4e29 | ||
|
|
6b18b88b2c | ||
|
|
d0a76e992b | ||
|
|
03a4a8c11d | ||
|
|
893e9c0498 | ||
|
|
a586cecf35 | ||
|
|
c4bc32ff7b | ||
|
|
c087f07233 | ||
|
|
f7e8fcb8e0 | ||
|
|
86994c3357 | ||
|
|
0367674517 | ||
|
|
8324d21955 | ||
|
|
3f57b46f67 | ||
|
|
dd7d41e938 | ||
|
|
0ec872a153 | ||
|
|
04f2f981e0 | ||
|
|
81770f3c39 | ||
|
|
fa5070b39c | ||
|
|
beb7151936 | ||
|
|
8725ed75cd | ||
|
|
d3fcc41be7 | ||
|
|
4c4ec3c5db | ||
|
|
409a94ffea | ||
|
|
634a5ec6f8 | ||
|
|
49a383ef4f | ||
|
|
00c6078ff1 | ||
|
|
ae5649598d | ||
|
|
58f61a16ee | ||
|
|
cbe40ddd2d | ||
|
|
2c5b2fc105 | ||
|
|
31239f2130 | ||
|
|
09fee0bf21 | ||
|
|
b4ad599df2 | ||
|
|
31f5f8f907 | ||
|
|
8be87fbab0 | ||
|
|
b38f21b99c | ||
|
|
f6bf9e67a8 | ||
|
|
ec2babc448 | ||
|
|
4e66bbdfb7 | ||
|
|
a247bf01ba | ||
|
|
b8a6661c81 | ||
|
|
74dba52933 | ||
|
|
bf3ec794f1 | ||
|
|
9ffeb12c4c | ||
|
|
28dbc778d8 | ||
|
|
9d0e081c56 | ||
|
|
d907a500bd | ||
|
|
4707b43193 | ||
|
|
2e2bfb83c4 | ||
|
|
5ecdba358c | ||
|
|
147dab1b57 | ||
|
|
896efd3a13 | ||
|
|
5b1af1c1ed | ||
|
|
dec1c86ab6 | ||
|
|
a3085602d0 | ||
|
|
e2974d755d | ||
|
|
89d75d5c9c | ||
|
|
72dc2d1025 | ||
|
|
34805e8d39 | ||
|
|
ac63e8c2c1 | ||
|
|
9a3c0eca4b | ||
|
|
74b722f14c | ||
|
|
2a6da0f24c | ||
|
|
129a8a7607 | ||
|
|
a6b93ee6a0 | ||
|
|
ec93388662 | ||
|
|
19c1535ae5 | ||
|
|
8919a7ae08 | ||
|
|
f3f8792b9b | ||
|
|
de9206a9e9 | ||
|
|
f4cdd366e1 | ||
|
|
8140f095c6 | ||
|
|
5caddd66ba | ||
|
|
f982890a58 | ||
|
|
30f870f957 | ||
|
|
b89fda667f | ||
|
|
fac3e54ad9 | ||
|
|
b786b93b7a | ||
|
|
03c03f5890 | ||
|
|
3f5e714d7b | ||
|
|
06aede5b5d | ||
|
|
8aaafb1ae9 | ||
|
|
f21ab2f60f | ||
|
|
bd0d48f7a5 | ||
|
|
5ffe5a485d | ||
|
|
0ef1f50383 | ||
|
|
b9b03a7feb | ||
|
|
d2627b5107 | ||
|
|
30d9fd6bba | ||
|
|
6966023564 | ||
|
|
db3fdce304 | ||
|
|
5b98a09219 | ||
|
|
630955304a | ||
|
|
73ef0fd315 | ||
|
|
d25d507bec | ||
|
|
fc7bbdddbd | ||
|
|
f04b1e97bb | ||
|
|
775cfd708e | ||
|
|
a5806375b5 | ||
|
|
e0c445d9b1 | ||
|
|
d02a2df3f0 | ||
|
|
3f1738f96d | ||
|
|
72c1baa9d8 | ||
|
|
5f1c3f4a7e | ||
|
|
3cb441df9a | ||
|
|
40d180a87d | ||
|
|
effe989d91 | ||
|
|
77cf78caa1 | ||
|
|
994006abd4 | ||
|
|
d235a2bf4a | ||
|
|
cb9658feef | ||
|
|
3c743e3a98 | ||
|
|
d97da3e222 | ||
|
|
237cd7e511 | ||
|
|
f180478aad | ||
|
|
2926bed9f2 | ||
|
|
3096f1edac | ||
|
|
93e13aff05 | ||
|
|
18985accc4 | ||
|
|
20f709f339 | ||
|
|
8eb3b715d1 | ||
|
|
0802829ad4 | ||
|
|
d00a304f0e | ||
|
|
295f8d918f | ||
|
|
b19d28907e | ||
|
|
4fd1d7e85a | ||
|
|
c7b931d80d | ||
|
|
498cce1f80 | ||
|
|
42599f8191 | ||
|
|
ab8f1f316b | ||
|
|
74b1cee57f | ||
|
|
0ef339df92 | ||
|
|
ec684f72f8 | ||
|
|
ffa8233ed9 | ||
|
|
3093ceb3da | ||
|
|
0d7845384f | ||
|
|
38dfd6886d | ||
|
|
46eb3e977c | ||
|
|
bafbe90392 | ||
|
|
01c0d589ef | ||
|
|
91b48c2a89 | ||
|
|
e8901dc170 | ||
|
|
787cf59dee | ||
|
|
e32ae40fbf | ||
|
|
ba980b12ad | ||
|
|
3b4d482055 | ||
|
|
459313c26d | ||
|
|
bf427d4a0d | ||
|
|
d7d7ca62d4 | ||
|
|
3e204f3e07 | ||
|
|
8bd83a53ac | ||
|
|
f43386764f | ||
|
|
8d73dc7bfc | ||
|
|
df3c2b5808 | ||
|
|
5a9e110bf9 | ||
|
|
fd39b78b39 | ||
|
|
5f3dd68ac5 | ||
|
|
7eaece85a8 | ||
|
|
a796dc2b81 | ||
|
|
5b5e012bc2 | ||
|
|
8913ddc295 | ||
|
|
b7cf6f4539 | ||
|
|
f67803801e | ||
|
|
a455c7abcb | ||
|
|
5a48f0ec38 | ||
|
|
fc2276c955 | ||
|
|
f607beb486 | ||
|
|
3e5b42a291 | ||
|
|
1aab604198 | ||
|
|
776144866c | ||
|
|
37e2d03763 | ||
|
|
94c286f2ef | ||
|
|
26677dd2a2 | ||
|
|
d56ce00b85 | ||
|
|
567fd3159d | ||
|
|
3239a56526 | ||
|
|
dcf89ff197 | ||
|
|
5a2620349e | ||
|
|
883ee83478 | ||
|
|
44ab1ef86c | ||
|
|
07a8ea220f | ||
|
|
57d2c2bb83 | ||
|
|
8f2cfb9d4e | ||
|
|
96e8cca9bc | ||
|
|
6045a3a5e1 | ||
|
|
b788dc9d2a | ||
|
|
a452a445cf | ||
|
|
422e2b639e | ||
|
|
474fcab623 | ||
|
|
1fee3962b0 | ||
|
|
41674da59f | ||
|
|
e6a5ebbdab | ||
|
|
89f1128cf4 | ||
|
|
539b81e03a | ||
|
|
253cd12753 | ||
|
|
dc4c0cfac1 | ||
|
|
cdbe7b7afa | ||
|
|
9653864fbd | ||
|
|
86708673fb | ||
|
|
ff1687731d | ||
|
|
b1157ff8d9 | ||
|
|
e46e7309f8 | ||
|
|
3f0f701639 | ||
|
|
81ef9ee5ee | ||
|
|
6af3197b90 | ||
|
|
c17d3dbbb7 | ||
|
|
c88da2bd92 | ||
|
|
82ccc25113 | ||
|
|
02c35975c0 | ||
|
|
a7e4f84c5d | ||
|
|
27b13ba47c | ||
|
|
f2eb0acfcf | ||
|
|
4f4cb65300 | ||
|
|
5f243d7af7 | ||
|
|
67a2998335 | ||
|
|
9296eb0fd2 | ||
|
|
ede312933c | ||
|
|
640bc001e5 | ||
|
|
ed9e8c7c81 | ||
|
|
55f53a5a96 | ||
|
|
4585c15cb0 | ||
|
|
0b9addb57b | ||
|
|
80af3ac83d | ||
|
|
e9b635b6e7 | ||
|
|
3f9dc8814e | ||
|
|
7215b2b8fb | ||
|
|
d388e4dc16 | ||
|
|
f4ea74d828 | ||
|
|
43d1785ea1 | ||
|
|
7956ca0211 | ||
|
|
8ff4a1002c | ||
|
|
2c306869c5 | ||
|
|
3f5055efab | ||
|
|
67a965a7e0 | ||
|
|
1eb0693385 | ||
|
|
731b04dd54 | ||
|
|
7ee1fdb657 | ||
|
|
b6b3659224 | ||
|
|
4a133ae725 | ||
|
|
70e0849416 | ||
|
|
84a6e90b7d | ||
|
|
a66b053ac9 | ||
|
|
3ab88a4718 | ||
|
|
ff8055fc5c | ||
|
|
6c1c64c2e7 | ||
|
|
47e1961561 | ||
|
|
7d4bf3ccd9 | ||
|
|
ff23184893 | ||
|
|
3c1e2e15b8 | ||
|
|
d20e2cf0fc | ||
|
|
28f0397803 | ||
|
|
0992be8577 | ||
|
|
6ff3368e1b | ||
|
|
14819d0f14 | ||
|
|
06cf185298 | ||
|
|
a57b6bad69 | ||
|
|
a92ae61cb8 | ||
|
|
cd0435b15a | ||
|
|
21705a45bf | ||
|
|
f04134aee0 | ||
|
|
ef2b59f772 | ||
|
|
3ca8ad73a4 | ||
|
|
f57b8d6dc5 | ||
|
|
f860c70362 | ||
|
|
746d5490cf | ||
|
|
aedea8539c | ||
|
|
d308d6d462 | ||
|
|
e3a5c9f1d7 | ||
|
|
0a9e940ab7 | ||
|
|
c7ebef660a | ||
|
|
7281cd8082 | ||
|
|
1f98a966c5 | ||
|
|
fc20765c5e | ||
|
|
e087455493 | ||
|
|
427c5e0e4f | ||
|
|
0be93c95c9 | ||
|
|
b6828f5949 | ||
|
|
81999fdeba | ||
|
|
f2d2da300f | ||
|
|
47d1c2ad65 | ||
|
|
078b77619a | ||
|
|
0da6a84edf | ||
|
|
2a32b478f9 | ||
|
|
5edd570b94 | ||
|
|
fc51fd11b6 | ||
|
|
ab9821d8c3 | ||
|
|
1051e7076f | ||
|
|
0aa82c3c83 | ||
|
|
bee7f3d0ac | ||
|
|
08f683a645 | ||
|
|
4d80aaf47a | ||
|
|
b0ca477655 | ||
|
|
4dc3b75569 | ||
|
|
68de0d75b0 | ||
|
|
175bf7e9a3 | ||
|
|
486370dc7c | ||
|
|
5d4fb518ae | ||
|
|
c6761bfe11 | ||
|
|
5904d59ffd | ||
|
|
9b394af973 | ||
|
|
e5a906dcb9 | ||
|
|
1a35bcfcbc | ||
|
|
f485fc1a83 | ||
|
|
751712628a | ||
|
|
30deea4d30 | ||
|
|
6159f69023 | ||
|
|
9e31b10531 | ||
|
|
002545fffb | ||
|
|
33347d3264 | ||
|
|
a29f5391db | ||
|
|
91eab3e5bc | ||
|
|
59db0751fc | ||
|
|
a29e968e1e | ||
|
|
1f06eb1c5c | ||
|
|
ccd242665b | ||
|
|
bb9ba8e36e | ||
|
|
2c6b600a90 | ||
|
|
378817d367 | ||
|
|
5b78e4c025 | ||
|
|
94982058b6 | ||
|
|
4967138514 | ||
|
|
162b91136c | ||
|
|
f257e10d48 | ||
|
|
5764d6f41b | ||
|
|
877a2bd690 | ||
|
|
69cbb7f958 | ||
|
|
e9f5fb53f3 | ||
|
|
042f9081a8 | ||
|
|
3b857ea987 | ||
|
|
d2ae18d76e | ||
|
|
4b0d9e2319 | ||
|
|
ee0e2d0ea3 | ||
|
|
cd6d5fb18f | ||
|
|
4909775f04 | ||
|
|
2196c4335b | ||
|
|
1b3dd5db8b | ||
|
|
94d5261f73 | ||
|
|
ad60999858 | ||
|
|
08592b38da | ||
|
|
1cdde9e3ed | ||
|
|
211206b2e4 | ||
|
|
f6aa8f5d90 | ||
|
|
902ca8c1cf | ||
|
|
d57a169500 | ||
|
|
dbaa3bfdfa | ||
|
|
c28a0b9fcb | ||
|
|
44cec3d456 | ||
|
|
201ec3dc02 | ||
|
|
3047ced496 | ||
|
|
229ea4bbfc | ||
|
|
b9a951aa1a | ||
|
|
5a2cb4154a | ||
|
|
5f026d026a | ||
|
|
352fc43ec9 | ||
|
|
5304374fc5 | ||
|
|
3fb1c65a41 | ||
|
|
2e8b9c005b | ||
|
|
2f9662d156 | ||
|
|
e5fe40eac9 | ||
|
|
891745776e | ||
|
|
55fd7ac601 | ||
|
|
bc27a2af7a | ||
|
|
bf7cb1179a | ||
|
|
d8ad6ff49b | ||
|
|
3baf795c17 | ||
|
|
aa6cb1055b | ||
|
|
9c530d79e7 | ||
|
|
c91218ae8a | ||
|
|
625e06f454 | ||
|
|
a8552cb2f9 | ||
|
|
fc96c7f7fa | ||
|
|
2d13dd0ef0 | ||
|
|
d1fc7ad4d9 | ||
|
|
96610aee08 | ||
|
|
066d1b4d53 | ||
|
|
dbcf51b5a8 | ||
|
|
ac018c38a8 | ||
|
|
149d9e8407 | ||
|
|
ae5958570b | ||
|
|
29380a8e54 | ||
|
|
501000f129 | ||
|
|
36e3ea8cb2 | ||
|
|
504afcfc5a | ||
|
|
2bd3536041 | ||
|
|
af162668e5 | ||
|
|
7279fe8ab0 | ||
|
|
61981912f8 | ||
|
|
17537ac500 | ||
|
|
668740aada | ||
|
|
d134fb2a8d | ||
|
|
0569078901 | ||
|
|
1069cefada | ||
|
|
917648a232 | ||
|
|
c3eae192dc | ||
|
|
22ff90f7ba | ||
|
|
d87c5ec288 | ||
|
|
3130ed3066 | ||
|
|
ccf0a6a557 | ||
|
|
f400f0e665 | ||
|
|
e3ba31e899 | ||
|
|
ec98e744be | ||
|
|
474a65e277 | ||
|
|
c56419ed78 | ||
|
|
ca4dc0361c | ||
|
|
9ba84360e3 | ||
|
|
b2126a848a | ||
|
|
257dfcdde7 | ||
|
|
5eb673d1cb | ||
|
|
ca250d16dc | ||
|
|
6a4d498af4 | ||
|
|
57fa001979 | ||
|
|
2a595d116e | ||
|
|
e47835b90e | ||
|
|
ba9e818d57 | ||
|
|
accdde8c19 | ||
|
|
0d9b0606b9 | ||
|
|
bf77a39349 | ||
|
|
64e8c3105c | ||
|
|
74821473e2 | ||
|
|
15e754201f | ||
|
|
95cc208464 | ||
|
|
662cd8262e | ||
|
|
ef6f0f00a6 | ||
|
|
9321218742 | ||
|
|
71b9c41a6b | ||
|
|
d88c2b18d4 | ||
|
|
625b79c3ba | ||
|
|
0242ae498e | ||
|
|
b61a63d008 | ||
|
|
951eb23e9a | ||
|
|
1a962e9d98 | ||
|
|
443dcdbb60 | ||
|
|
779edcb01d | ||
|
|
5879c5cf21 | ||
|
|
996b464e30 | ||
|
|
996c9d85d7 | ||
|
|
fda27b4465 | ||
|
|
fe0e3b39f8 | ||
|
|
77ee4950dd | ||
|
|
91962aafad | ||
|
|
4d0f0d308f | ||
|
|
e55938b6a8 | ||
|
|
11339ee42e | ||
|
|
ebd3f9673d | ||
|
|
75b4e2c832 | ||
|
|
c919fac568 | ||
|
|
0741be6f3c | ||
|
|
51ba2cdce9 | ||
|
|
439c5f4f33 | ||
|
|
7b241027fa | ||
|
|
3925337a55 | ||
|
|
3c31410074 | ||
|
|
d38eed95ea | ||
|
|
83e6e40438 | ||
|
|
fd4fe1c8d3 | ||
|
|
24a834dfa4 | ||
|
|
8c97b9dc73 | ||
|
|
1088e28dfa | ||
|
|
13cd138683 | ||
|
|
bcbca0e397 | ||
|
|
d179e6aa40 | ||
|
|
38775706eb | ||
|
|
0bb81ce1d6 | ||
|
|
fea1b5b3a0 | ||
|
|
5e8cd3a2da | ||
|
|
950632519b | ||
|
|
6e8d3e9023 | ||
|
|
4a77ca046a | ||
|
|
112eb3b35d | ||
|
|
c73882617e | ||
|
|
0236e31313 | ||
|
|
32aaa6a7be | ||
|
|
999c63d9d7 | ||
|
|
c61ce71a01 | ||
|
|
d5d127c3ad | ||
|
|
f7326d6279 | ||
|
|
3ff7f46fd4 | ||
|
|
968bd31c92 | ||
|
|
75725c57a5 | ||
|
|
a13734d2f7 | ||
|
|
42155f6028 | ||
|
|
6ffd569410 | ||
|
|
7148919940 | ||
|
|
969860b570 | ||
|
|
9d9e4379af | ||
|
|
5cabd2f12b | ||
|
|
faba10853f | ||
|
|
f1e34911a9 | ||
|
|
f18aa85252 | ||
|
|
7b27263e16 | ||
|
|
4a5294788e | ||
|
|
51ca0e7bbb | ||
|
|
c85a9abc4c | ||
|
|
9ab8deb33c | ||
|
|
8c22d51070 | ||
|
|
27b1a27faf | ||
|
|
1c2b14b92f | ||
|
|
c404bdb9f8 | ||
|
|
af854a8409 | ||
|
|
601140cbe9 | ||
|
|
25ab28c48f | ||
|
|
0576cdc942 | ||
|
|
2d8e73b963 | ||
|
|
82193adc09 | ||
|
|
14e54cdc1e | ||
|
|
ccca7df1ea | ||
|
|
838ab371d9 | ||
|
|
91f68f0130 | ||
|
|
25fd4c3bc2 | ||
|
|
71695f8159 | ||
|
|
b570ad759b | ||
|
|
e1737ca88a | ||
|
|
06dbcb22a1 | ||
|
|
36e6841ef5 | ||
|
|
3c36e73b95 | ||
|
|
3cf4eae4aa | ||
|
|
5206e9c9cf | ||
|
|
be86e1696e | ||
|
|
2f55df7d10 | ||
|
|
7ec2fe9dcd | ||
|
|
76d91f2a3d | ||
|
|
5a559e9a57 | ||
|
|
9e55579cb0 | ||
|
|
62121a1840 | ||
|
|
66a24ad4f5 | ||
|
|
ebaf95b13a | ||
|
|
618b7c267c | ||
|
|
60f5e66aa9 | ||
|
|
d8aa131ca0 | ||
|
|
8839b8b3ec | ||
|
|
902c2b43cb | ||
|
|
e58a8671a2 | ||
|
|
5264cfb853 | ||
|
|
af1f60e601 | ||
|
|
1d5c13bdad | ||
|
|
bad986232b | ||
|
|
a01e3435de | ||
|
|
afcd94f22d | ||
|
|
8838c0f860 | ||
|
|
eba6a36290 | ||
|
|
f8a540d105 | ||
|
|
ecb9f8668d | ||
|
|
581265f4d1 | ||
|
|
5e1b127864 | ||
|
|
0162d0093d | ||
|
|
e5b6b0dbee | ||
|
|
7a137a5f84 | ||
|
|
8ebcbfdf1b | ||
|
|
bc55e7f3e2 | ||
|
|
53af3dc4f2 | ||
|
|
dede3c59fe | ||
|
|
88640832be | ||
|
|
6ddbfa0733 | ||
|
|
1c0479f3f9 | ||
|
|
26f97a911b | ||
|
|
dcd3d84ddb | ||
|
|
08fa032b80 | ||
|
|
d0427feee4 | ||
|
|
84a8849a3a | ||
|
|
4f3e113e38 | ||
|
|
844cc09cd1 | ||
|
|
a343fc848d | ||
|
|
93e4213bfe | ||
|
|
c35353ea20 | ||
|
|
9812f55289 | ||
|
|
a830b0fc6b | ||
|
|
dd2f5ed142 | ||
|
|
6a9579bd7e | ||
|
|
5aa42a202a | ||
|
|
56025c6a1a | ||
|
|
1312fe469e | ||
|
|
e21e1c65e3 | ||
|
|
84aa902015 | ||
|
|
9fe37737f9 | ||
|
|
968d2ef830 | ||
|
|
2c65e09a4b | ||
|
|
480a3b08d5 | ||
|
|
aaf344e642 | ||
|
|
76906e0443 | ||
|
|
39b7569614 | ||
|
|
52e00b8f03 | ||
|
|
ed25ab62f5 | ||
|
|
e8300c82a0 | ||
|
|
c5b7fe878c | ||
|
|
9feb47d70e | ||
|
|
6faa433d58 | ||
|
|
e28d2c8032 | ||
|
|
a39d50c95f | ||
|
|
769d399be5 | ||
|
|
ffd35bb63d | ||
|
|
a536e31fb1 | ||
|
|
20be664666 | ||
|
|
57463e1509 | ||
|
|
91ea475f4d | ||
|
|
434d068994 | ||
|
|
af8bb16ec1 | ||
|
|
544d61873d | ||
|
|
406e85a8d8 | ||
|
|
9b36089838 | ||
|
|
c245e1f0f7 | ||
|
|
c78db34489 | ||
|
|
736ff0319a | ||
|
|
4b4cde0702 | ||
|
|
e296197362 | ||
|
|
84fe72612e | ||
|
|
023c1bccb3 | ||
|
|
1e6454a67b | ||
|
|
64e40c2271 | ||
|
|
63fbc27466 | ||
|
|
57a0c3e159 | ||
|
|
0503943150 | ||
|
|
197711bb7d | ||
|
|
bed68d8828 | ||
|
|
ea6ea21939 | ||
|
|
5c98efddae | ||
|
|
30445fb661 | ||
|
|
25917d5885 | ||
|
|
14821bb8cf | ||
|
|
008d859df9 | ||
|
|
01b426c452 | ||
|
|
d56b42bec4 | ||
|
|
a9d98544de | ||
|
|
d911f19862 | ||
|
|
505fbb1966 | ||
|
|
5089dc049a | ||
|
|
8b35436cb1 | ||
|
|
9839614829 | ||
|
|
37ea5fbeb5 | ||
|
|
7c152b6a8e | ||
|
|
37d820b03f | ||
|
|
e82eb93cf2 | ||
|
|
8d10b52ddf | ||
|
|
acbdbe1e65 | ||
|
|
8288c451c0 | ||
|
|
da7001a6c3 | ||
|
|
095a6f1eb3 | ||
|
|
3a751f37c6 | ||
|
|
b234f1e415 | ||
|
|
dc73af8351 | ||
|
|
44e77380fb | ||
|
|
ca98805935 | ||
|
|
f3d39ff406 | ||
|
|
b1ddbcbef9 | ||
|
|
78306883e2 | ||
|
|
135fee7f10 | ||
|
|
f8787a67ed | ||
|
|
2c25b9d866 | ||
|
|
58c6ed3583 | ||
|
|
0e9866bfd6 | ||
|
|
0bea91bbcb | ||
|
|
4908642c8c | ||
|
|
330746480e | ||
|
|
68ca0ed6d8 | ||
|
|
14058c83e6 | ||
|
|
9de934c210 | ||
|
|
72d02269a9 | ||
|
|
0d6b05eb8d | ||
|
|
10eb5a1098 | ||
|
|
ce0884c287 | ||
|
|
d056f96a2f | ||
|
|
f17311c9dd | ||
|
|
ef0de01b62 | ||
|
|
10cba41a70 | ||
|
|
0db373883f | ||
|
|
6fa37163f2 | ||
|
|
222e5f9cbc | ||
|
|
d3ab27f7cc | ||
|
|
be616317c7 | ||
|
|
c77bd71315 | ||
|
|
4d5c40cd9a | ||
|
|
81664bd2db | ||
|
|
7552fe23ff | ||
|
|
b2fe675636 | ||
|
|
459b4f85d3 | ||
|
|
dd842e4bf4 | ||
|
|
076bc75c01 | ||
|
|
f9d3469e4f | ||
|
|
c13ec603b8 | ||
|
|
e5786084e1 | ||
|
|
9b77de63ed | ||
|
|
87ddc9d06b | ||
|
|
20a5a1d61c | ||
|
|
ee18958f98 | ||
|
|
357b0c34b6 | ||
|
|
166ca20bed | ||
|
|
cb6605c1a5 | ||
|
|
376d5f6910 | ||
|
|
a3335dba69 | ||
|
|
b298098307 | ||
|
|
c55b4ab516 | ||
|
|
0e8b1d6864 | ||
|
|
2a3ca10a61 | ||
|
|
6074423330 | ||
|
|
32d86482cc | ||
|
|
40b9c63da1 | ||
|
|
71ea389f74 | ||
|
|
2b407ef934 | ||
|
|
6e84232e62 | ||
|
|
a96507c1ec | ||
|
|
9a8114e388 | ||
|
|
4a76003201 | ||
|
|
0f44e8a722 | ||
|
|
4494f0892b | ||
|
|
41f1e96817 | ||
|
|
4589cef5e1 | ||
|
|
931810629c | ||
|
|
a139dbf9cc | ||
|
|
37d3ea836e | ||
|
|
68d73f8cf9 | ||
|
|
d7072f8a9d | ||
|
|
c644b2a5a1 | ||
|
|
6ffb0dcaf2 | ||
|
|
2da8b014af | ||
|
|
54e954f852 | ||
|
|
fc9d60b66a | ||
|
|
4db9db0cc7 | ||
|
|
6b49e2d9e7 | ||
|
|
0854cad7a2 | ||
|
|
5516915115 | ||
|
|
344d2210c2 | ||
|
|
01d6db92fc | ||
|
|
8045f834d4 | ||
|
|
79687e9b7d | ||
|
|
1875caf1ab | ||
|
|
901e4f78ec | ||
|
|
9ea10c5cec | ||
|
|
688baca5a5 | ||
|
|
5eeb444b8b | ||
|
|
5ec0e49497 | ||
|
|
c71c8e7604 | ||
|
|
f16db40af2 | ||
|
|
683515596b | ||
|
|
aca657eca2 | ||
|
|
0dddd923c7 | ||
|
|
500d0e3bd2 | ||
|
|
0b4c108bd7 | ||
|
|
05adbd51b4 | ||
|
|
7a3d9addb8 | ||
|
|
f5c452989d | ||
|
|
e6c282a766 | ||
|
|
02d6b65c67 | ||
|
|
70da739031 | ||
|
|
fe1a87d02d | ||
|
|
0f12bfece7 | ||
|
|
4486666209 | ||
|
|
6e0d8dd06f | ||
|
|
1c9200da92 | ||
|
|
10696169b2 | ||
|
|
792032c6bb | ||
|
|
f243fccfd4 | ||
|
|
a6ce3e17e4 | ||
|
|
c4bc5b7f33 | ||
|
|
a2177b2e8e | ||
|
|
85f9f047cf | ||
|
|
9fa1ee360b | ||
|
|
52ffca0b27 | ||
|
|
33cd288edc | ||
|
|
ea7b61dfe5 | ||
|
|
6bbb254ecc | ||
|
|
6a64418809 | ||
|
|
8450fae834 | ||
|
|
88ce94a3c2 | ||
|
|
fc64a7ae57 | ||
|
|
126e524635 | ||
|
|
8747e6e1b4 | ||
|
|
1f75a34f76 | ||
|
|
c1e5e2c74c | ||
|
|
b1db6ed28d | ||
|
|
4cf9d27072 | ||
|
|
a3943d9be5 | ||
|
|
5ac375a40d | ||
|
|
8596934a39 | ||
|
|
69eec3f3b9 | ||
|
|
57eddbd7d0 | ||
|
|
f47d6bc193 | ||
|
|
a7bc501d90 | ||
|
|
4bef3dde2d | ||
|
|
00a1b5d546 | ||
|
|
585833ab7e | ||
|
|
5abd0518dd | ||
|
|
8f7f00178f | ||
|
|
12c2113b3e | ||
|
|
ed64463bdb | ||
|
|
742f8c2502 | ||
|
|
3f79dfbb04 | ||
|
|
70c51c4ee6 | ||
|
|
6528b1b0b4 | ||
|
|
0460f73db2 | ||
|
|
57fa54af2d | ||
|
|
e8a505bd3d | ||
|
|
7f12445175 | ||
|
|
c2913c977a | ||
|
|
5acd33001a | ||
|
|
69b2401099 | ||
|
|
73186934d8 | ||
|
|
6b1f070907 | ||
|
|
f64c4f4569 | ||
|
|
dc63cb7feb | ||
|
|
7be33a225e | ||
|
|
beaff87d50 | ||
|
|
03af7c8abc | ||
|
|
698c0361d6 | ||
|
|
4b80deed8e | ||
|
|
4da21882fd | ||
|
|
2971f422da | ||
|
|
823d48bd37 | ||
|
|
c2ef1ad438 | ||
|
|
683f6c879c | ||
|
|
b44785e958 | ||
|
|
63ee853b74 | ||
|
|
ea22bf6063 | ||
|
|
8c7bd30a7b | ||
|
|
c8b2f43005 | ||
|
|
843807c647 | ||
|
|
4deaf7e243 | ||
|
|
ffb2cf7a94 | ||
|
|
f91088459b | ||
|
|
e986a1f47e | ||
|
|
c2e70dbe9e | ||
|
|
e1f3beaa13 | ||
|
|
d0f606f11d | ||
|
|
38d8e20f68 | ||
|
|
78edc7e65a | ||
|
|
d3d757d95a | ||
|
|
63f659637f | ||
|
|
b19e666946 | ||
|
|
287dc7a32b | ||
|
|
4ab69902dc | ||
|
|
ea07d448a5 | ||
|
|
b6823b673e | ||
|
|
c9f552923a | ||
|
|
774a978ea9 | ||
|
|
b8056095c6 | ||
|
|
61bf7a23ce | ||
|
|
20fce0ba3e | ||
|
|
0a42a1f422 | ||
|
|
4157e50c00 | ||
|
|
bc3f6c94d4 | ||
|
|
fdaa130f3a | ||
|
|
5c50f0bb30 | ||
|
|
7152b3811e | ||
|
|
ec83570232 | ||
|
|
6a05ad04d9 | ||
|
|
a903822561 | ||
|
|
95467a3a25 | ||
|
|
235e6c0afe | ||
|
|
13c2cbb515 | ||
|
|
4394c6f441 | ||
|
|
6386777fe3 | ||
|
|
b462fc8bd2 | ||
|
|
3f835d67ba | ||
|
|
77c0395968 | ||
|
|
1c23efeff4 | ||
|
|
4f8973fcdc | ||
|
|
33c24b5436 | ||
|
|
16c6679125 | ||
|
|
ce742b08b0 | ||
|
|
eb0c45d572 | ||
|
|
2689533db9 | ||
|
|
5d2b6c784e | ||
|
|
7800086169 | ||
|
|
e4fa4fcdd9 | ||
|
|
89fac1e1e2 | ||
|
|
cc17322c14 | ||
|
|
b20a007aa0 | ||
|
|
860754f0f9 | ||
|
|
3f0c2347ff | ||
|
|
c0edc48a08 | ||
|
|
b952c194f6 | ||
|
|
6d7cac7731 | ||
|
|
419bbffeef | ||
|
|
7263c220dd | ||
|
|
d91a531d2e | ||
|
|
eafd2ef88e | ||
|
|
d213b67cdf | ||
|
|
28cc55be0a | ||
|
|
d10b86f8f4 | ||
|
|
c96a1e0ddf | ||
|
|
a0975f8dcf | ||
|
|
7d7aa0f99d | ||
|
|
b68803c08e | ||
|
|
8208e517f8 | ||
|
|
4e942cb07f | ||
|
|
01b996b98b | ||
|
|
e6f64862c1 | ||
|
|
5484568c5c | ||
|
|
ad76be844b | ||
|
|
5dbe3f6f4f | ||
|
|
e76824c91f | ||
|
|
1266735cd0 | ||
|
|
01f31dcccb | ||
|
|
3996f37651 | ||
|
|
49f88bc05a | ||
|
|
7b547a393a | ||
|
|
4366854783 | ||
|
|
ab6faef7ee | ||
|
|
c861ce463d | ||
|
|
a22fa4d109 | ||
|
|
ca3c82bbb5 | ||
|
|
0582a631fe | ||
|
|
8dc461f854 | ||
|
|
5b18b931d0 | ||
|
|
e32da28bd5 | ||
|
|
d0cbaa911f | ||
|
|
35540fdee6 | ||
|
|
6883a3f09c | ||
|
|
48b118968f | ||
|
|
2980ab0cdc | ||
|
|
9baa92c596 | ||
|
|
f9c2324cd0 | ||
|
|
11ae876f34 | ||
|
|
9e9c193e1b | ||
|
|
7c83c4e418 | ||
|
|
f0f08ec32b | ||
|
|
cd39bb55f6 | ||
|
|
cb72e23c14 | ||
|
|
4cea708b21 | ||
|
|
b36a4c57ca | ||
|
|
4026a3ce7e | ||
|
|
3d297bf881 | ||
|
|
28076f78ed | ||
|
|
25554b8118 | ||
|
|
6d27573ec2 | ||
|
|
9751d9afaa | ||
|
|
224d2479b3 | ||
|
|
9ff0d0818e | ||
|
|
b6b8bf0010 | ||
|
|
9a18fb197d | ||
|
|
30dd61abb7 | ||
|
|
e99526eb7e | ||
|
|
2844354634 | ||
|
|
ccc6462cc5 | ||
|
|
ed5638bf77 | ||
|
|
ecac37514c | ||
|
|
1a319ae1ac | ||
|
|
b08147d46a | ||
|
|
6076a4a66c | ||
|
|
1094a0d243 | ||
|
|
b1bb6f1735 | ||
|
|
4c5d71917e | ||
|
|
a1c85ca6f2 | ||
|
|
5b074c048d | ||
|
|
ec4b6f713d | ||
|
|
9c14e2235c | ||
|
|
ec36f7dc69 | ||
|
|
1039fdebb1 | ||
|
|
eaad3a9f7b | ||
|
|
8bc100cdae | ||
|
|
349c134061 | ||
|
|
5f949d21c2 | ||
|
|
46745e31ed | ||
|
|
b6f9b5c693 | ||
|
|
ebca90f075 | ||
|
|
463204f9b3 | ||
|
|
0e46666591 | ||
|
|
1907f0ab8b | ||
|
|
dbc0bb7514 | ||
|
|
c02b2d2d45 | ||
|
|
9fb623c312 | ||
|
|
6d98fc38b5 | ||
|
|
e0e157e6de | ||
|
|
9379801c9a | ||
|
|
c51e49147e | ||
|
|
adbca0b92e | ||
|
|
808d9b035f | ||
|
|
2ec1f4d16a | ||
|
|
5796326d5a | ||
|
|
75ab06e855 | ||
|
|
07db7765a1 | ||
|
|
520097b065 | ||
|
|
4ab537fc61 | ||
|
|
98f9906c59 | ||
|
|
5ece0ecdfb | ||
|
|
9b9ae8ee70 | ||
|
|
6d23aae34e | ||
|
|
ce022d2723 | ||
|
|
a6ded1178e | ||
|
|
3630c4d1e0 | ||
|
|
0e138423d4 | ||
|
|
b38b068302 | ||
|
|
7c3eaef39d | ||
|
|
a07c080ce8 | ||
|
|
82cd4789a7 | ||
|
|
139933fe59 | ||
|
|
107da542ae | ||
|
|
c6fad655a0 | ||
|
|
f7585a2cb3 | ||
|
|
496031df78 | ||
|
|
a7cd9768d1 | ||
|
|
39b25e4f3d | ||
|
|
d9dd604ae7 | ||
|
|
737568997b | ||
|
|
8a1f6b537a | ||
|
|
224201e635 | ||
|
|
f3b74fe9ac | ||
|
|
8f32b61acb | ||
|
|
2e1f2f8852 | ||
|
|
2a588879ef | ||
|
|
94f8379545 | ||
|
|
83a6b8c762 | ||
|
|
b87d8cdfd0 | ||
|
|
1e0212ef8e | ||
|
|
2496f4f882 | ||
|
|
bd8aba8c8d | ||
|
|
ee31c94bc7 | ||
|
|
867517fa5d | ||
|
|
54ff6af758 | ||
|
|
32ff83e4da | ||
|
|
d9f08cb7ce | ||
|
|
e9003696bd | ||
|
|
6bb5705619 | ||
|
|
22519a360a | ||
|
|
df4911561b | ||
|
|
62ce05fb49 | ||
|
|
94a372b992 | ||
|
|
a9a5dbd9b8 | ||
|
|
ccc7c3b48e | ||
|
|
c224f6fba2 | ||
|
|
b1c6c89d97 | ||
|
|
d98a44d483 | ||
|
|
a04722b1b0 | ||
|
|
372a69fded | ||
|
|
4893e3c505 | ||
|
|
11363296be | ||
|
|
816bcd3aff | ||
|
|
4916f58540 | ||
|
|
0314fa1c3b | ||
|
|
89b2866758 | ||
|
|
e1e29cefc4 | ||
|
|
d79407f4fd | ||
|
|
71d9afee0c | ||
|
|
61364b5bb1 | ||
|
|
48fe8cf7bc | ||
|
|
fae64ba40c | ||
|
|
2b80314c3f | ||
|
|
acc517cd5c | ||
|
|
95ff205e6c | ||
|
|
f85a11f280 | ||
|
|
d29cc93a6f | ||
|
|
db2c5275a1 | ||
|
|
49ac2e74f2 | ||
|
|
a62b69b9c5 | ||
|
|
613db6ee30 | ||
|
|
68faef668b | ||
|
|
08cc69dbf4 | ||
|
|
4c8bca469f | ||
|
|
9c0f5e8887 | ||
|
|
5dbb0aaa24 | ||
|
|
d563495a24 | ||
|
|
e370219e2a | ||
|
|
d33eb14569 | ||
|
|
57e0902c59 | ||
|
|
f41c40f63e | ||
|
|
fb543df1a8 | ||
|
|
d589e61204 | ||
|
|
be4778b87e | ||
|
|
a59551d771 | ||
|
|
bb5ce07f8c | ||
|
|
e52d178674 | ||
|
|
8992aa0bcf | ||
|
|
44468214b5 | ||
|
|
c2f8c1a79b | ||
|
|
20f63ecb7a | ||
|
|
0f858fc744 | ||
|
|
1d04952b1d | ||
|
|
9c5661f05d | ||
|
|
d61a7f1207 | ||
|
|
500690f235 | ||
|
|
31165806f8 | ||
|
|
118d5a7d5b | ||
|
|
cb16f5e815 | ||
|
|
890afc455c | ||
|
|
808243230b | ||
|
|
92a641e5e7 | ||
|
|
4b76d82fe3 | ||
|
|
28ced40c63 | ||
|
|
75c2a2e527 | ||
|
|
d2b5b62af5 | ||
|
|
34e4dae95c | ||
|
|
9c754364a6 | ||
|
|
5675c50dc2 | ||
|
|
adfebe8c6f | ||
|
|
47dec40bd5 | ||
|
|
59651c4e58 | ||
|
|
dbf2c8abd5 | ||
|
|
e612284ea4 | ||
|
|
ae78d7d4bf | ||
|
|
9a9815a123 | ||
|
|
fcbd8c4f99 | ||
|
|
63b288c464 | ||
|
|
2685ca935f | ||
|
|
557cda47a0 | ||
|
|
ee39ec7d0a | ||
|
|
2469701b87 | ||
|
|
9fb0e11de5 | ||
|
|
b5c1040240 | ||
|
|
e16f0c6996 | ||
|
|
6a15a50d35 | ||
|
|
93da44811e | ||
|
|
494d665955 | ||
|
|
8091bfb84c | ||
|
|
9a92e31cdd | ||
|
|
4a3f24e0e0 | ||
|
|
5f9d72c431 | ||
|
|
e1dfbfc695 | ||
|
|
533e39ecf7 | ||
|
|
3b7e24cab2 | ||
|
|
36a9455a48 | ||
|
|
c18e248e60 | ||
|
|
b0c2af58f7 | ||
|
|
2ce7bcd742 | ||
|
|
4dbf6a530d | ||
|
|
07ed0872fb | ||
|
|
bd40510b62 | ||
|
|
623f564abc | ||
|
|
cae8eeba8d | ||
|
|
638b0515b3 | ||
|
|
fe1909b591 | ||
|
|
db47e478c5 | ||
|
|
8e3a8b1e8e | ||
|
|
b557bdb665 | ||
|
|
b8863135a2 | ||
|
|
5b95dc5faf | ||
|
|
8ee7205c78 | ||
|
|
e0196d11a4 | ||
|
|
846666109b | ||
|
|
b9470609ad | ||
|
|
9626e9859a | ||
|
|
b87f16bfbe | ||
|
|
de3a8ea3e1 | ||
|
|
081dac3026 | ||
|
|
a872cb0d8d | ||
|
|
90012aa3cc | ||
|
|
6166a4a49d | ||
|
|
41b87ab486 | ||
|
|
e1a941b486 | ||
|
|
d64c25ce2e | ||
|
|
4b10a2562a | ||
|
|
9d7cba9db0 | ||
|
|
260fb777e2 | ||
|
|
0e6d7d652e | ||
|
|
861bad634a | ||
|
|
c5a9a5a284 | ||
|
|
9dcce367e0 | ||
|
|
e2ba10a727 | ||
|
|
4fd5931e70 | ||
|
|
8bf02ee681 | ||
|
|
7c4760d421 | ||
|
|
5a54f79283 | ||
|
|
b67ca452c3 | ||
|
|
208a97a221 | ||
|
|
85cae78988 | ||
|
|
b86cdbbddb | ||
|
|
11e64bafbc | ||
|
|
939a0f136e | ||
|
|
321cd10977 | ||
|
|
dbd717591a | ||
|
|
64baaf8f7f | ||
|
|
aa35b11afe | ||
|
|
72558f2673 | ||
|
|
4d5fd77412 | ||
|
|
23344ea427 | ||
|
|
657e5d0fbc | ||
|
|
a4dff681c8 | ||
|
|
47a4a96d23 | ||
|
|
a904c1dabc | ||
|
|
ceacc834fb | ||
|
|
c8cc96e6fe | ||
|
|
35b00ffdab | ||
|
|
dc8078b191 | ||
|
|
6a16f3eb1d | ||
|
|
bb928e70a7 | ||
|
|
12a678ca6a | ||
|
|
0a4127a610 | ||
|
|
506c2e2e5b | ||
|
|
852170d740 | ||
|
|
bbebe4bc3f | ||
|
|
0802b1286d | ||
|
|
aeac86458c | ||
|
|
7fc2e6ca5b | ||
|
|
1f364c1ee1 | ||
|
|
516a19f1ec | ||
|
|
07f84de680 | ||
|
|
f4be622502 | ||
|
|
4727b2dd11 | ||
|
|
e86edc5f1b | ||
|
|
e50a6fde11 | ||
|
|
b20d2ba86c | ||
|
|
1fc379a76c | ||
|
|
fd92acac4f | ||
|
|
7889c7b97e | ||
|
|
7f7ce47553 | ||
|
|
4b947b0525 | ||
|
|
54aa881075 | ||
|
|
086e951387 | ||
|
|
0818faee7f | ||
|
|
14fac3dd02 | ||
|
|
14e547516c | ||
|
|
abd42847b1 | ||
|
|
f799da0a21 | ||
|
|
1ef6c7add1 | ||
|
|
ed6025327c | ||
|
|
c5e2e02b0a | ||
|
|
2559c94740 | ||
|
|
f4f84ac9ab | ||
|
|
d2f6707429 | ||
|
|
8c8fba0841 | ||
|
|
e865bc2bc5 | ||
|
|
d608f1a0e0 | ||
|
|
5bf2be3461 | ||
|
|
6021286c5d | ||
|
|
3b2879b3c1 | ||
|
|
c94cc82ebb | ||
|
|
5573922f0f | ||
|
|
f2c7379ca7 | ||
|
|
30ff6d2836 | ||
|
|
d5eb399b5e | ||
|
|
c3dbe168fb | ||
|
|
82dfe6f07e | ||
|
|
7d18ca4c93 | ||
|
|
b52ab41ca7 | ||
|
|
d06579e714 | ||
|
|
51ffc01776 | ||
|
|
3e382a7d06 | ||
|
|
cce41cb736 | ||
|
|
2390ca71f1 | ||
|
|
0c40e2a06e | ||
|
|
a4c387508e | ||
|
|
0f9b3de234 | ||
|
|
04f75f2357 | ||
|
|
5c04e39383 | ||
|
|
f8a4d8a4d5 | ||
|
|
b7182e85c7 | ||
|
|
7cb4e769ff | ||
|
|
7f9f359105 | ||
|
|
53fa8699fc | ||
|
|
3a5822585e | ||
|
|
b0b4b6eff2 | ||
|
|
f26d0f234f | ||
|
|
9bffcfb407 | ||
|
|
a86095fe07 | ||
|
|
b3d9c5bea6 | ||
|
|
e38fe93975 | ||
|
|
2ffbbb1588 | ||
|
|
f71644b480 | ||
|
|
1546a578ec | ||
|
|
1a7051f913 | ||
|
|
5832635b68 | ||
|
|
f0c9f998d3 | ||
|
|
f9aef18c86 | ||
|
|
1aa7fda66b | ||
|
|
c118443546 | ||
|
|
4f247de89b | ||
|
|
bd99d77bf6 | ||
|
|
756ee85bec | ||
|
|
315e58f2f6 | ||
|
|
b140c80396 | ||
|
|
a980f7babe | ||
|
|
7ab517bcbf | ||
|
|
df06803187 | ||
|
|
2476198086 | ||
|
|
6349f46e38 | ||
|
|
940c5b393d | ||
|
|
7dced12c32 | ||
|
|
b0ffa2497b | ||
|
|
d8cd7e848d | ||
|
|
1594170f85 | ||
|
|
ee40e4dc90 | ||
|
|
ca6558a406 | ||
|
|
1d7a8a9e69 | ||
|
|
f63340acba | ||
|
|
a952a1bf76 | ||
|
|
e35adfe522 | ||
|
|
d9ad917fe7 | ||
|
|
0358d81ecf | ||
|
|
476013cebd | ||
|
|
f916d603ef | ||
|
|
fb6072e10d | ||
|
|
6414c8606a | ||
|
|
0f99c02070 | ||
|
|
3d383e45dc | ||
|
|
3f35c6a6cc | ||
|
|
216853c0db | ||
|
|
01fda447c5 | ||
|
|
5316f7bf25 | ||
|
|
11bcaedfc8 | ||
|
|
db507dd153 | ||
|
|
bb77132391 | ||
|
|
dc2d342b24 | ||
|
|
4b395a168b | ||
|
|
3d29cd72d5 | ||
|
|
47e4f575c2 | ||
|
|
6eafaed7e8 | ||
|
|
5f630e1935 | ||
|
|
d4c7c87afb | ||
|
|
1e3aa55b1e | ||
|
|
6762c9f0e0 | ||
|
|
4bd7b33e1b | ||
|
|
2f5985335b | ||
|
|
3d85a5d876 | ||
|
|
b4a5314dc3 | ||
|
|
1507a660b1 | ||
|
|
1a4bfd6561 | ||
|
|
ee43ab18b0 | ||
|
|
93be400da9 | ||
|
|
142e92bb70 | ||
|
|
ccbeace1ff | ||
|
|
0ea23249da | ||
|
|
fcd702efe4 | ||
|
|
9d28fc6643 | ||
|
|
854b3ebdc3 | ||
|
|
c7cd1d708f | ||
|
|
464ebb7843 | ||
|
|
aa247a3276 | ||
|
|
1619178f5e | ||
|
|
e109ab5492 | ||
|
|
0ec6eb7aad | ||
|
|
35e78f43a1 | ||
|
|
d748f8ecf2 | ||
|
|
c9d32d9b71 | ||
|
|
5efcdba2d0 | ||
|
|
379bb867cb | ||
|
|
5dbf49e314 | ||
|
|
06a4be43a3 | ||
|
|
b38de145ac | ||
|
|
a93f75ce6b | ||
|
|
0903dcdcf7 | ||
|
|
7387db4366 | ||
|
|
474c53348c | ||
|
|
745beb2deb | ||
|
|
2f40d61bed | ||
|
|
7133858532 | ||
|
|
1ac9923c63 | ||
|
|
0a74684b3a | ||
|
|
13f3e07ff2 | ||
|
|
a898c2dd28 | ||
|
|
93753e19b1 | ||
|
|
ec42c1432c | ||
|
|
8f1a327edb | ||
|
|
f890909ac4 | ||
|
|
aa8da8daf1 | ||
|
|
e39f3f3f48 | ||
|
|
72b2d1c9ee | ||
|
|
3e2b49ab5b | ||
|
|
b907755e3c | ||
|
|
81c8d3132b | ||
|
|
454b9659c5 | ||
|
|
183126535c | ||
|
|
ab2dead053 | ||
|
|
31902806a8 | ||
|
|
3fec3a916b | ||
|
|
0e68cf3cdb | ||
|
|
c48f96a790 | ||
|
|
b76deb94a3 | ||
|
|
f775ea0ae3 | ||
|
|
8d587ce308 | ||
|
|
5ab692da02 | ||
|
|
84f248761f | ||
|
|
52ee529ef4 | ||
|
|
479af1e75d | ||
|
|
549ec65eee | ||
|
|
32788092da | ||
|
|
09d305c1ff | ||
|
|
5da74deab9 | ||
|
|
e12ea3c30d | ||
|
|
e510e26aa6 | ||
|
|
9291a7fa98 | ||
|
|
920b706142 | ||
|
|
04fe8184f8 | ||
|
|
16c1f0ae74 | ||
|
|
8e09f92917 | ||
|
|
4bcd155285 | ||
|
|
01af2c3f73 | ||
|
|
4a03738225 | ||
|
|
67fc0f2bfe | ||
|
|
23ecf60129 | ||
|
|
32a0465214 | ||
|
|
cc7ef25e4a | ||
|
|
e0ec7c981e | ||
|
|
32e478b9fc | ||
|
|
5177691e4a | ||
|
|
881c2f05f5 | ||
|
|
abe47301c1 | ||
|
|
ace462334e | ||
|
|
42bc4cd0ca | ||
|
|
1f08a96f5a | ||
|
|
69a91aae8e | ||
|
|
e7a6eca69d | ||
|
|
486b426947 | ||
|
|
eb0cd48d60 | ||
|
|
f17aa81edc | ||
|
|
d5bac133ee | ||
|
|
d6501f756a | ||
|
|
3cdd2bcb01 | ||
|
|
617de19912 | ||
|
|
429b37d750 | ||
|
|
64f3120598 | ||
|
|
10dd36d959 | ||
|
|
0c1a436917 | ||
|
|
cc45f504d4 | ||
|
|
b35e507884 | ||
|
|
293ab565b5 | ||
|
|
80a4042a5c | ||
|
|
16f30e1951 | ||
|
|
7d57757a8a | ||
|
|
6692794433 | ||
|
|
78ecac2569 | ||
|
|
146cb29054 | ||
|
|
bc90ecb7e2 | ||
|
|
c4b57bc16b | ||
|
|
595268403a | ||
|
|
00760e1343 | ||
|
|
24437ccb75 | ||
|
|
0ec80db02a | ||
|
|
2416481fd1 | ||
|
|
ac5b702b91 | ||
|
|
b82a18c8da | ||
|
|
aeab5f8723 | ||
|
|
8799fed634 | ||
|
|
f82ed13625 | ||
|
|
1fc2b79172 | ||
|
|
626caf0292 | ||
|
|
72040f7f2a | ||
|
|
b42c14f07e | ||
|
|
53ed3475ce | ||
|
|
a4df842974 | ||
|
|
7937f0a229 | ||
|
|
2e49a2d960 | ||
|
|
c0b62ca36d | ||
|
|
e13eb1d6c0 | ||
|
|
97b796d0aa | ||
|
|
c914bff745 | ||
|
|
9b0489ac47 | ||
|
|
13163ad5e4 | ||
|
|
d2e85c5c9a | ||
|
|
b855337d39 | ||
|
|
b04db9d9e0 | ||
|
|
921cdf4fb9 | ||
|
|
bfe9871c83 | ||
|
|
b66e7aec62 | ||
|
|
5af07c3c8b | ||
|
|
8eb7503078 | ||
|
|
b0b1a57fc4 | ||
|
|
8478f5e38e | ||
|
|
ff40ceab56 | ||
|
|
4fe1927183 | ||
|
|
480f4e3565 | ||
|
|
3009a073b0 | ||
|
|
81a5af36a1 | ||
|
|
b027850ba4 | ||
|
|
24961c73ac | ||
|
|
d9252aa1ea | ||
|
|
62fbbd1494 | ||
|
|
e62484fa09 | ||
|
|
31a17d9044 | ||
|
|
3da64fa20a | ||
|
|
74fe4ec0cb | ||
|
|
4af4cf0914 | ||
|
|
4017713fc2 | ||
|
|
9ce9605723 | ||
|
|
eb5e0d6d12 | ||
|
|
ceb551024a | ||
|
|
f40608230b | ||
|
|
797303d23a | ||
|
|
34d10931e2 | ||
|
|
6fa469f367 | ||
|
|
0d4869f24b | ||
|
|
d0cfb7d3fd | ||
|
|
dfe23e34d9 | ||
|
|
980424a834 | ||
|
|
43d9ade92b | ||
|
|
2f161ab79d | ||
|
|
db7af4d8f0 | ||
|
|
ff4e970fb1 | ||
|
|
99e290f882 | ||
|
|
9085689d6f | ||
|
|
3755c03291 | ||
|
|
2a2d49b947 | ||
|
|
1775e980ea | ||
|
|
16d79b79d6 | ||
|
|
7a149080d8 | ||
|
|
6ccbb6b51b | ||
|
|
daa52df47a | ||
|
|
d098a077e4 | ||
|
|
d8efe626b5 | ||
|
|
5fc85f6c61 | ||
|
|
5e1f396849 | ||
|
|
37a66d6d3b | ||
|
|
36a76f403a | ||
|
|
da136e6106 | ||
|
|
c68f4bde30 | ||
|
|
7795da58e6 | ||
|
|
2a63e78eed | ||
|
|
7438337fdd | ||
|
|
6784176b9c | ||
|
|
ffc2278d6e | ||
|
|
34550382d8 | ||
|
|
41c4fd66d9 | ||
|
|
9cd4320b65 | ||
|
|
17c77a54bf | ||
|
|
0f860d8f34 | ||
|
|
12752a4044 | ||
|
|
29fec3febc | ||
|
|
dd12885897 | ||
|
|
61bbeabdfa | ||
|
|
8564352f59 | ||
|
|
06ade1ab1c | ||
|
|
6200c9a5a1 | ||
|
|
e7d698c7d8 | ||
|
|
e2568f0a4f | ||
|
|
0e2100ca58 | ||
|
|
49b1208120 | ||
|
|
4bae5cb4d0 | ||
|
|
b3a32e6d21 | ||
|
|
3e201ac281 | ||
|
|
ed5dcbff9b | ||
|
|
955b43ba12 | ||
|
|
58cb0d77a0 | ||
|
|
663e46eee5 | ||
|
|
0bc0ccce2b | ||
|
|
f8181ba7b5 | ||
|
|
f93560ddc9 | ||
|
|
ab52308356 | ||
|
|
0a72ea8d70 | ||
|
|
751f67d5d1 | ||
|
|
8e5d8e6679 | ||
|
|
8b30b8da98 | ||
|
|
db07396fe8 | ||
|
|
3d438cc06a | ||
|
|
ec4f64344c | ||
|
|
6bd3c36a53 | ||
|
|
8aed222d93 | ||
|
|
96ab56e146 | ||
|
|
bb8167cda3 | ||
|
|
7bfb397338 | ||
|
|
621795ef4b | ||
|
|
be24e2455c | ||
|
|
8e56b3b6a6 | ||
|
|
b16ae3b73a | ||
|
|
7d2302830f | ||
|
|
f6206c5050 | ||
|
|
ea4dbef1b7 | ||
|
|
f20f992ddd | ||
|
|
2e286e7374 | ||
|
|
532a79aa52 | ||
|
|
8eb8850c90 | ||
|
|
d179ac771c | ||
|
|
da5ff5d9f1 | ||
|
|
ccb99d0a1e | ||
|
|
9ed4b04f6a | ||
|
|
92c4a37a6a | ||
|
|
aa25757136 | ||
|
|
a85bff9796 | ||
|
|
7e53511ec8 | ||
|
|
882a4c4d2c | ||
|
|
dd5652e4c1 | ||
|
|
963200c74c | ||
|
|
4c4d9102e8 | ||
|
|
85a9b2283f | ||
|
|
85a36e2bc3 | ||
|
|
2f5990a5c4 | ||
|
|
338e3357ae | ||
|
|
efea880e6f | ||
|
|
91af7f394f | ||
|
|
945f7d68b9 | ||
|
|
9632e324b6 | ||
|
|
895b4a2825 | ||
|
|
d7422e3821 | ||
|
|
eb3900b77a | ||
|
|
bb6422a83f | ||
|
|
ef3e8fa852 | ||
|
|
d265cdffbf | ||
|
|
4d3894178d | ||
|
|
6ad651afbe | ||
|
|
69a4d841a9 | ||
|
|
57f3b2504e | ||
|
|
72000ecda9 | ||
|
|
94c4feef12 | ||
|
|
aab4ad1a8e | ||
|
|
dbc1cb5e92 | ||
|
|
00b9ace829 | ||
|
|
62ed6a0f2b | ||
|
|
197d65770a | ||
|
|
4369785d6d | ||
|
|
1cd7013517 | ||
|
|
819127b74b | ||
|
|
579575e430 | ||
|
|
0d3884fed1 | ||
|
|
fd6d9cbeac | ||
|
|
8b4929818f | ||
|
|
fdb578219b | ||
|
|
322ed7d092 | ||
|
|
142ac728dd | ||
|
|
a1cf684b55 | ||
|
|
8867010b22 | ||
|
|
a50166004d | ||
|
|
02fa5aa0dc | ||
|
|
d39cca1530 | ||
|
|
513c93b9ae | ||
|
|
4f68f3774c | ||
|
|
22f796e55f | ||
|
|
0eaa26fc31 | ||
|
|
9996b5f731 | ||
|
|
1901b9d90e | ||
|
|
1e708a5aeb | ||
|
|
d402f6fab3 | ||
|
|
505144b844 | ||
|
|
1d1d20ced2 | ||
|
|
fdb29f9fa5 | ||
|
|
b799e6cbaf | ||
|
|
2f4ca9a2d4 | ||
|
|
52d6a64efa | ||
|
|
48335493eb | ||
|
|
eeb4e150e7 | ||
|
|
ec3aac1e86 | ||
|
|
dae2423d11 | ||
|
|
7280d303f4 | ||
|
|
ee8a0fc8f8 | ||
|
|
ec4f576cb3 | ||
|
|
b1d43bac61 | ||
|
|
dcd10fb714 | ||
|
|
08c344c293 | ||
|
|
690b45afaa | ||
|
|
5960786cc6 | ||
|
|
74259c9124 | ||
|
|
518145133f | ||
|
|
855f3591a6 | ||
|
|
0384e2ae27 | ||
|
|
dedab09c32 | ||
|
|
0835c34572 | ||
|
|
6078001f12 | ||
|
|
b8ed424ed3 | ||
|
|
fe73e4d851 | ||
|
|
ace6ff598c | ||
|
|
616d49aaf6 | ||
|
|
c8572b0bba | ||
|
|
b96ebb376f | ||
|
|
7ec9245c74 | ||
|
|
ea5d8fcf1d | ||
|
|
69aa60a947 | ||
|
|
99cae17cd0 | ||
|
|
709c5bd2d5 | ||
|
|
d800816f94 | ||
|
|
b8b1b35904 | ||
|
|
1d913a9c0b | ||
|
|
965783b7c1 | ||
|
|
f30355a7df | ||
|
|
87187da066 | ||
|
|
381d3f8e62 | ||
|
|
f95c1df583 | ||
|
|
53d0c7a753 | ||
|
|
bbd6dec20c | ||
|
|
0bfb0fad92 | ||
|
|
5ed8e63591 | ||
|
|
ce65982ec1 | ||
|
|
e762b69ccb | ||
|
|
ce84626a7f | ||
|
|
efbfaec0a3 | ||
|
|
b7a8297bc1 | ||
|
|
88b9c69cb2 | ||
|
|
4c5fd67f7c | ||
|
|
51501e8de0 | ||
|
|
4ca88997f7 | ||
|
|
8eacea8b48 | ||
|
|
6ffc1c291a | ||
|
|
05bf7d9c65 | ||
|
|
51b7d3a1c0 | ||
|
|
c84bd49fb5 | ||
|
|
d6dd2c26fa | ||
|
|
7035a224b5 | ||
|
|
dd5538566e | ||
|
|
e398e6b7d6 | ||
|
|
20db6b2dcb | ||
|
|
b5547442e5 | ||
|
|
5a81efa31f | ||
|
|
3849411fa2 | ||
|
|
823e4029f7 | ||
|
|
420a8cd50a | ||
|
|
998f5221b5 | ||
|
|
67e3288a5d | ||
|
|
9b09af54d9 | ||
|
|
a36e7b0ab1 | ||
|
|
57ba9b8ccf | ||
|
|
2f97097e0f | ||
|
|
edb7c7d4f5 | ||
|
|
4319872812 | ||
|
|
5d7d4a55aa | ||
|
|
ca28e37be1 | ||
|
|
e156ed7433 | ||
|
|
5950725144 | ||
|
|
ba75dd7877 | ||
|
|
f97066dc17 | ||
|
|
308081cd11 | ||
|
|
5e1a0f4c0c | ||
|
|
77319b779a | ||
|
|
35fec42377 | ||
|
|
5520636b17 | ||
|
|
f60dc4699f | ||
|
|
fe5c131a0d | ||
|
|
ad503c814b | ||
|
|
97360bacd5 | ||
|
|
48b766d500 | ||
|
|
b3da1422bb | ||
|
|
d3cf46ca1d | ||
|
|
4d360ead0c | ||
|
|
b9310261d7 | ||
|
|
041d23d7b6 | ||
|
|
60fc9c050a | ||
|
|
be00addf85 | ||
|
|
44a9c3188e | ||
|
|
d16571328f | ||
|
|
ce8331f9a5 | ||
|
|
295ae448b1 | ||
|
|
1c6f49006b | ||
|
|
8840250fa0 | ||
|
|
e45270dd2f | ||
|
|
7ccbed42c8 | ||
|
|
206c05dc47 | ||
|
|
1593aa0e5e | ||
|
|
e511b57e2a | ||
|
|
f370d0290f | ||
|
|
98dd7282be | ||
|
|
e99c375606 | ||
|
|
566230a01b | ||
|
|
e5cb1fa4e4 | ||
|
|
8ff9528138 | ||
|
|
6639ab8469 | ||
|
|
5b58b9af6b | ||
|
|
0bf1525bc8 | ||
|
|
1dda0f263a | ||
|
|
0286913937 | ||
|
|
993f70c1d2 | ||
|
|
de25255b6d | ||
|
|
5310de975c | ||
|
|
fb9b63de23 | ||
|
|
61d60153b2 | ||
|
|
bf8a6a07d8 | ||
|
|
3bca709fbc | ||
|
|
364c2fe5a2 | ||
|
|
af77fdb9bf | ||
|
|
e8f10e2694 | ||
|
|
be022a813f | ||
|
|
318be175a4 | ||
|
|
786ffab310 | ||
|
|
3166314d89 | ||
|
|
4894978500 | ||
|
|
883e096ce6 | ||
|
|
74de8bdb02 | ||
|
|
a13424db00 | ||
|
|
60b6ac053e | ||
|
|
cad60c3760 | ||
|
|
426443cc18 | ||
|
|
fa6079ea25 | ||
|
|
de46ba2ea5 | ||
|
|
bcdab8f7e6 | ||
|
|
b21a7357fc | ||
|
|
db855e2c74 | ||
|
|
32613f510c | ||
|
|
51505045e6 | ||
|
|
51fc7b8ea5 | ||
|
|
b4faef2fe3 | ||
|
|
636eb109ad | ||
|
|
96209e6cad | ||
|
|
92df5e9af9 | ||
|
|
2454194424 | ||
|
|
7374258dc1 | ||
|
|
f268ada2f3 | ||
|
|
93b21c6ed4 | ||
|
|
264fd866a1 | ||
|
|
79187b1360 | ||
|
|
8c4b687769 | ||
|
|
37b8c079d6 | ||
|
|
592b17d4d1 | ||
|
|
75f4ec8879 | ||
|
|
f3d6620f00 | ||
|
|
b86a6d448a | ||
|
|
d1341b1c15 | ||
|
|
b48af415cd | ||
|
|
d0ce6368b1 | ||
|
|
b7b1440330 | ||
|
|
ee656c4b32 | ||
|
|
15e14aeca5 | ||
|
|
5a10841059 | ||
|
|
22bbf75b5f | ||
|
|
e63a7d893b | ||
|
|
a60a6c5209 | ||
|
|
b1c45f61ad | ||
|
|
91e6402230 | ||
|
|
90e4fd0a0a | ||
|
|
5c412842d9 | ||
|
|
3944483cac | ||
|
|
99e343d250 | ||
|
|
58f9ed3a8e | ||
|
|
84e6f8f075 | ||
|
|
40defd5f2c | ||
|
|
b6da3465bc | ||
|
|
5caeacc9c3 | ||
|
|
161b37ffbc | ||
|
|
46baa28aaf | ||
|
|
e7b73ddce7 | ||
|
|
a0a046ca09 | ||
|
|
ae2d914580 | ||
|
|
8ff8c8cc49 | ||
|
|
c4508c377e | ||
|
|
7bfc91c3a9 | ||
|
|
546b9b97ca | ||
|
|
4d39a171ee | ||
|
|
f765acea59 | ||
|
|
cc39d06e4e | ||
|
|
addc7161b9 | ||
|
|
c0fd859688 | ||
|
|
2acc314e6f | ||
|
|
93cdab8b96 | ||
|
|
bfbd57905e | ||
|
|
bb099765a3 | ||
|
|
99639f79b6 | ||
|
|
a27afba6ff | ||
|
|
e7aeb7a4c8 | ||
|
|
70268f05ef | ||
|
|
84b90d6803 | ||
|
|
2803965525 | ||
|
|
ef9e7e5d9e | ||
|
|
cd7dafab7c | ||
|
|
a0ff48dbd3 | ||
|
|
30cad86a8d | ||
|
|
d38f944d1c | ||
|
|
07979b3ce4 | ||
|
|
78306b2d1d | ||
|
|
57d57237cf | ||
|
|
dc7cb19993 | ||
|
|
1e6c12c919 | ||
|
|
5f0433db83 | ||
|
|
5890197024 | ||
|
|
26cb5355e0 | ||
|
|
d746343928 | ||
|
|
dc2552a3ac | ||
|
|
d898a7418b | ||
|
|
f93193ccff | ||
|
|
2a90ba3642 | ||
|
|
2bf08d7d7d | ||
|
|
8085f48575 | ||
|
|
2c9d87c2f6 | ||
|
|
d45d690164 | ||
|
|
c8c9add3be | ||
|
|
83472de48e | ||
|
|
47e7fef08e | ||
|
|
d4ad4ac370 | ||
|
|
d0be029908 | ||
|
|
ae7285d658 | ||
|
|
05a3fabacb | ||
|
|
71078de71a | ||
|
|
a701436da6 | ||
|
|
79279dce97 | ||
|
|
62cd02c5a7 | ||
|
|
d7c839d54f | ||
|
|
138ef9a43e | ||
|
|
18896d510d | ||
|
|
60a2ea476b | ||
|
|
6b8544ace5 | ||
|
|
bef5858483 | ||
|
|
972940509f | ||
|
|
381adeadff | ||
|
|
5ec7c94a95 | ||
|
|
8a582fa707 | ||
|
|
7941b599fc | ||
|
|
a75203a278 | ||
|
|
dcf007c6da | ||
|
|
d96e7a170c | ||
|
|
37acb31c1a | ||
|
|
8c844fdde3 | ||
|
|
5865b3680a | ||
|
|
7b1d95adba | ||
|
|
ff531cca4d | ||
|
|
274dbb1b75 | ||
|
|
4da80ed1de | ||
|
|
dafda8936b | ||
|
|
cde7423cde | ||
|
|
c7f22e5aca | ||
|
|
739696d2d7 | ||
|
|
65ae35729d | ||
|
|
45ddc6a5cd | ||
|
|
f1072c2ae9 | ||
|
|
445daac3ab | ||
|
|
637c424d64 | ||
|
|
b1667b579b | ||
|
|
b1326c1c24 | ||
|
|
171d01dfcf | ||
|
|
7d80f82e70 | ||
|
|
5f888422d9 | ||
|
|
3d9eeb4538 | ||
|
|
9a19f065af | ||
|
|
89989f4e62 | ||
|
|
0b40c1d82b | ||
|
|
7557b388de | ||
|
|
8059173ad3 | ||
|
|
d5923d9121 | ||
|
|
d6bfe18b20 | ||
|
|
23475d4147 | ||
|
|
af900cb1d0 | ||
|
|
7d788aeba4 | ||
|
|
20eac88e58 | ||
|
|
a783891e76 | ||
|
|
aa74430ee0 | ||
|
|
4897bbe125 | ||
|
|
fe50278d0a | ||
|
|
e9549a4f9c | ||
|
|
47bf193c53 | ||
|
|
ac87800760 | ||
|
|
3e327b6e21 | ||
|
|
530d41732d | ||
|
|
20534bc445 | ||
|
|
03e298ec47 | ||
|
|
f5ddb60764 | ||
|
|
69a5253284 | ||
|
|
46455027fc | ||
|
|
c7b7791029 | ||
|
|
485f862b35 | ||
|
|
e64af9a898 | ||
|
|
dede51adf6 | ||
|
|
7223a1bc88 | ||
|
|
806245e185 | ||
|
|
03c19c2b8f | ||
|
|
fd83c1ea41 | ||
|
|
86efab2cc4 | ||
|
|
aae7a83df4 | ||
|
|
7e914380c9 | ||
|
|
f5cf052225 | ||
|
|
ba55871325 | ||
|
|
0936bfa42c | ||
|
|
a1c33af793 | ||
|
|
0b244def73 | ||
|
|
a497e9bf75 | ||
|
|
6bd845e365 | ||
|
|
0cd2da0309 | ||
|
|
40bf10319b | ||
|
|
2b9c90efd3 | ||
|
|
b9638a4a50 | ||
|
|
6b0cc4b54d | ||
|
|
e67ad79599 | ||
|
|
d77a3f92e6 | ||
|
|
b0f344e493 | ||
|
|
93f795bb9e | ||
|
|
49e31e4b0f | ||
|
|
d1b29ad4c2 | ||
|
|
8c6ab178e4 | ||
|
|
5ff2111a59 | ||
|
|
67c42a4a9b | ||
|
|
70d78cf7dd | ||
|
|
b5a926f78d | ||
|
|
da3d9f8e25 | ||
|
|
e58e6efd4d | ||
|
|
170c92dfbe | ||
|
|
950f950ecd | ||
|
|
bb23e0d7cc | ||
|
|
17adf438a2 | ||
|
|
34b00ca22a | ||
|
|
2682bbd2b0 | ||
|
|
96c002e07c | ||
|
|
f064a2c8b9 | ||
|
|
6789bcfed2 | ||
|
|
4162f81c88 | ||
|
|
728b849529 | ||
|
|
d42361630f | ||
|
|
1c2a22025d | ||
|
|
5e5d2640fb | ||
|
|
08fa8849b2 | ||
|
|
7b292e2fba | ||
|
|
dee534efba | ||
|
|
e5ed53b00a | ||
|
|
f502f56613 | ||
|
|
ee93ed0aaa | ||
|
|
a03447092d | ||
|
|
633ce3039f | ||
|
|
182e93ab6e | ||
|
|
23d202bd36 | ||
|
|
fbfd50bd1f | ||
|
|
e87fe59e96 | ||
|
|
e25a206e87 | ||
|
|
514dfbfbed | ||
|
|
f89486a3a0 | ||
|
|
446cc107b8 | ||
|
|
c210c68add | ||
|
|
3e026f08ae | ||
|
|
180306cf88 | ||
|
|
8a153add90 | ||
|
|
7601484612 | ||
|
|
7bdc6d4bf4 | ||
|
|
31757a6aa8 | ||
|
|
f92797f4e0 | ||
|
|
fc7197322c | ||
|
|
f3f7b6242d | ||
|
|
6b2e7f941a | ||
|
|
0d085b253f | ||
|
|
15b6714595 | ||
|
|
1f57188741 | ||
|
|
d889a123db | ||
|
|
fb3c30574e | ||
|
|
045d395d4a | ||
|
|
32e125e2b8 | ||
|
|
5ff410efdf | ||
|
|
fae637021d | ||
|
|
46bc2c5ae2 | ||
|
|
d84702836a | ||
|
|
96fc48b606 | ||
|
|
86b0967775 | ||
|
|
e000da960b | ||
|
|
f17aba3062 | ||
|
|
71b7a54377 | ||
|
|
8a8b20877c | ||
|
|
e0f33c589f | ||
|
|
e35bc2e2b4 | ||
|
|
0d002664fb | ||
|
|
967c72865f | ||
|
|
cbd5396cbb | ||
|
|
56f8195fe5 | ||
|
|
599ae4b1b5 | ||
|
|
83d2cbd36e | ||
|
|
fa958958c3 | ||
|
|
8840191d91 | ||
|
|
1ea073fb7a | ||
|
|
8860787ad9 | ||
|
|
5c17925a7c | ||
|
|
a7f36a5825 | ||
|
|
a5b697826b | ||
|
|
42ade33fa6 | ||
|
|
8925d6573e | ||
|
|
d19914a2aa | ||
|
|
ed682e570a | ||
|
|
22b70fcb31 | ||
|
|
96f5c697dd | ||
|
|
29ba20eea0 | ||
|
|
07a17df386 | ||
|
|
a0191f0505 | ||
|
|
af9c0b84cd | ||
|
|
9f50e40643 | ||
|
|
2af6d0e1ab | ||
|
|
15ef63b39a | ||
|
|
394a0aea16 | ||
|
|
b63393dea0 | ||
|
|
5289adbe99 | ||
|
|
d40e78ad6f | ||
|
|
d725f3af91 | ||
|
|
d1106bb4dc | ||
|
|
5c0cd5c47e | ||
|
|
53697aeb0d | ||
|
|
86d46f7cc1 | ||
|
|
381a3b234f | ||
|
|
6dd2613d7b | ||
|
|
10d903343f | ||
|
|
eb2e53be99 | ||
|
|
ce6717965e | ||
|
|
7722837517 | ||
|
|
1cdf7e66f4 | ||
|
|
32bdaae133 |
No files matched your search
Binary file not shown.
+120
-49
@@ -26,11 +26,6 @@ Status legend
|
||||
|
||||
== Server APIs ==
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: activescript
|
||||
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
|
||||
MAINTENANCE: Odd Fixes
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: aolserver
|
||||
MAINTENANCE: Unknown
|
||||
@@ -41,14 +36,19 @@ PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: apache2handler / apache2filter
|
||||
EXTENSION: apache_hooks
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: apache2filter
|
||||
PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: apache_hooks
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
EXTENSION: apache2handler
|
||||
PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: caudium
|
||||
MAINTENANCE: Unknown
|
||||
@@ -63,6 +63,16 @@ MAINTENANCE: Marcus Boerger <helly@php.net>, Edin Kadribasic <edink@php.
|
||||
STATUS: Working
|
||||
SINCE: 4.3.0
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: continuity
|
||||
PRIMARY MAINTAINER: Alex Leigh <aleigh@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: date
|
||||
PRIMARY MAINTAINER: Derick Rethans <derick@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: embed
|
||||
PRIMARY MAINTAINER: Edin Kadribasic <edink@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -129,12 +139,8 @@ STATUS: Working
|
||||
SINCE: 4.0.6
|
||||
COMMENT: DB abstraction for odbc, mysql, pgsql, mssql, fbsql and more, see documentation
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: filepro
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: hwapi
|
||||
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
|
||||
EXTENSION: fbsql
|
||||
PRIMARY MAINTAINER: Frank M. Kromann <fmk@swwwing.com>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
@@ -175,6 +181,26 @@ MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
SINCE: 5.0
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: oci8
|
||||
PRIMARY MAINTAINER: Antony Dovgal <tony2001@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: odbc
|
||||
PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
COMMENT: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: oracle
|
||||
MAINTENANCE: Orphaned
|
||||
STATUS: Working
|
||||
COMMENT: Using the new OCI8 driver is encouraged where possible.
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ovrimos
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pgsql
|
||||
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Yasuo Ohgaki <yohgaki@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -196,22 +222,6 @@ EXTENSION: sybase_ct
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: oci8
|
||||
PRIMARY MAINTAINER: Antony Dovgal <tony2001@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: odbc
|
||||
PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
COMMENT: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: oracle
|
||||
MAINTENANCE: Orphaned
|
||||
STATUS: Working
|
||||
COMMENT: Using the new OCI8 driver is encouraged where possible.
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
== XML extensions ==
|
||||
@@ -220,15 +230,20 @@ COMMENT: Using the new OCI8 driver is encouraged where possible.
|
||||
EXTENSION: dom
|
||||
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>, Marcus Boerger <helly@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
STATUS: Working
|
||||
SINCE: 5.0
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: simplexml
|
||||
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
STATUS: Working
|
||||
SINCE: 5.0
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: soap
|
||||
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@zend.com>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: wddx
|
||||
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -247,7 +262,7 @@ STATUS: Experimental
|
||||
EXTENSION: xsl
|
||||
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
STATUS: Working
|
||||
SINCE: 5.0
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
@@ -265,11 +280,6 @@ MAINTENANCE: Odd Fixes
|
||||
STATUS: Working
|
||||
SINCE: 4.0.3
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: dio
|
||||
MAINTENANCE: Orphaned
|
||||
STATUS: Working
|
||||
SINCE: 4.0.6
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: calendar
|
||||
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
|
||||
MAINTENANCE: Odd Fixes
|
||||
@@ -303,11 +313,20 @@ MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
SINCE: 4.2
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: fam
|
||||
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: fdf
|
||||
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: filepro
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ftp
|
||||
PRIMARY MAINTAINER: Stefan Esser (sesser@php.net)
|
||||
MAINTENANCE: Maintained
|
||||
@@ -327,6 +346,11 @@ MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
SINCE: 4.0.4
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: hwapi
|
||||
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: iconv
|
||||
PRIMARY MAINTAINER: Moriyoshi Koizumi <moriyoshi@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -337,6 +361,11 @@ PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org>
|
||||
MAINTENANCE: Odd Fixes
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ircg
|
||||
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ldap
|
||||
PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -352,33 +381,63 @@ PRIMARY MAINTAINER: Derick Rethans <derick@derickrethans.nl>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mcve
|
||||
PRIMARY MAINTAINER: Unknown
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mhash
|
||||
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mime_magic
|
||||
PRIMARY MAINTAINER: Unknown
|
||||
MAINTENANCE: Deprecated
|
||||
STATUS: Experimental
|
||||
COMMENT: Use PECL's fileinfo extension instead
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ming
|
||||
PRIMARY MAINTAINER: Frank M. Kromann
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mnogosearch
|
||||
PRIMARY MAINTAINER: Sergey Kartashoff <gluke@mail.ru>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: mono
|
||||
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: msession
|
||||
PRIMARY MAINTAINER Mark L. Woodward mlwmohawk@mohawksoft.com
|
||||
PRIMARY MAINTAINER Mark L. Woodward <mlwmohawk@mohawksoft.com>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working/Experimental
|
||||
COMMENT: Tested on Linux, should work on other UNIX platforms. Backend server code can compile under Windows.
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: ncurses
|
||||
PRIMARY MAINTAINER Ilia Alshanetsky <iliaa@php.net>, Wez Furlong <wez@php.net>, Hartmut Holzgraefe <hholzgra@php.net>, Georg Richter <georg@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: openssl
|
||||
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
SINCE: 4.0.4
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pcntl
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Experimental
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pcre
|
||||
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pdf
|
||||
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: pfpro
|
||||
PRIMARY MAINTAINER: David Croft <david@infotrek.co.uk>
|
||||
MAINTENANCE: Maintained
|
||||
@@ -427,6 +486,12 @@ MAINTENANCE: Maintained
|
||||
STATUS: Experimental
|
||||
SINCE: 4.0.2
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: spl
|
||||
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Working
|
||||
SINCE: 5.0.0
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: sysvmsg
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
@@ -439,16 +504,22 @@ EXTENSION: sysvshm
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Working
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: tidy
|
||||
PRIMARY MAINTAINER: John Coggeshall <john@php.net>, Ilia Alshanetsky <iliaa@php.net>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: tokenizer
|
||||
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: yaz
|
||||
PRIMARY MAINTAINER: Adam Dickmeiss <adam@indexdata.dk>
|
||||
MAINTENANCE: Maintained
|
||||
STATUS: Unknown
|
||||
SINCE: 4.0.1
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: yp
|
||||
MAINTENANCE: Unknown
|
||||
STATUS: Unknown
|
||||
-------------------------------------------------------------------------------
|
||||
EXTENSION: zlib
|
||||
PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de>
|
||||
MAINTENANCE: Maintained
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--------------------------------------------------------------------
|
||||
The PHP License, Version 3.0
|
||||
Copyright (c) 1999 - 2003 The PHP Group. All rights reserved.
|
||||
Copyright (c) 1999 - 2005 The PHP Group. All rights reserved.
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
||||
+4
-2
@@ -5,6 +5,8 @@ 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
|
||||
@@ -55,7 +57,7 @@ test:
|
||||
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
|
||||
@@ -69,7 +71,7 @@ clean:
|
||||
|
||||
distclean: clean
|
||||
rm -f config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h php5.spec sapi/apache/libphp5.module buildmk.stamp
|
||||
egrep define'.*include/php' configure|sed 's/.*>//'|xargs rm -f
|
||||
$(EGREP) define'.*include/php' $(top_srcdir)/configure | $(SED) 's/.*>//'|xargs rm -f
|
||||
find . -name Makefile | xargs rm -f
|
||||
|
||||
.PHONY: all clean install distclean test
|
||||
|
||||
+28
-28
@@ -29,7 +29,14 @@ Having said that, here are the organizational rules:
|
||||
5. If you don't know how to do something, ask first!
|
||||
|
||||
6. Test your changes before committing them. We mean it. Really.
|
||||
|
||||
|
||||
Currently we have the following branches in use:
|
||||
HEAD Will become PHP 5.1. This CVS branch is for active development.
|
||||
PHP_5_0 Is used to release the PHP 5.0.x series. Only minor feature
|
||||
enhancements may go in here, but please keep that as infrequent as
|
||||
possible.
|
||||
PHP_4_3 Is used to release the PHP 4.3.x series. Only bugfixes are permitted
|
||||
on this branch.
|
||||
|
||||
The next few rules are more of a technical nature.
|
||||
|
||||
@@ -37,8 +44,11 @@ The next few rules are more of a technical nature.
|
||||
messages every day. Woe be to those who attempt to mess with it.
|
||||
|
||||
2. All news updates intended for public viewing, such as new features,
|
||||
bug fixes, improvements, etc., should go into the NEWS file. Also see
|
||||
the note below about automatically updating NEWS in your commit message.
|
||||
bug fixes, improvements, etc., should go into the NEWS file.
|
||||
|
||||
NB! Lines, starting with @ will go automagically into NEWS file, but
|
||||
this is NOT recommended, though. Please, add news entries directly to
|
||||
NEWS file and don't forget to keep them adjusted and sorted.
|
||||
|
||||
3. Do not commit multiple file and dump all messages in one commit. If you
|
||||
modified several unrelated files, commit each group separately and
|
||||
@@ -58,37 +68,29 @@ The next few rules are more of a technical nature.
|
||||
|
||||
The format of the commit messages is pretty simple.
|
||||
|
||||
Use a - to start a new item in your commit message.
|
||||
|
||||
If a line begins with #, it is taken to be a comment and will not appear
|
||||
in the ChangeLog. If the line begins with @, it will be redirected to the
|
||||
NEWS file. Everything else goes into the ChangeLog.
|
||||
in the ChangeLog. Everything else goes into the ChangeLog.
|
||||
|
||||
It is important to note that if your comment or news logline spans multiple
|
||||
lines, you have to put # or @ at the beginning of _every_ such line. Every
|
||||
entry in NEWS has to have a name after it, so if you did it with someone's
|
||||
help, put both your names there. Your name WILL NOT be automatically put
|
||||
at the end of the NEWS entry - so, please provide it yourself.
|
||||
lines, you have to put # at the beginning of _every_ such line.
|
||||
|
||||
Example. Say you modified two files, datetime.c and string.c. In datetime.c
|
||||
you added a new format option for date() function, and in string.c you fixed
|
||||
a memory leak in php_trim(). Don't commit both of these at once. Commit them
|
||||
Example. Say you modified two files, datetime.c and string.c. In datetime.c you
|
||||
added a new format option for the date() function, and in string.c you fixed a
|
||||
memory leak in php_trim(). Don't commit both of these at once. Commit them
|
||||
separately and try to make sure your commit messages look something like the
|
||||
following.
|
||||
|
||||
For datetime.c:
|
||||
|
||||
(PHP date) Added new 'K' format modifier for printing out number of
|
||||
days until New Year's Eve.
|
||||
@- Added new 'K' format modifier that will output the number of days
|
||||
@ until New Year's Eve. (Bob)
|
||||
- Added new 'K' format modifier to date() for printing out number of days until
|
||||
New Year's Eve.
|
||||
|
||||
For string.c:
|
||||
(php_trim) Fixed a memory leak resulting from improper use of zval_dtor().
|
||||
# Man, that thing was leaking all over the place!
|
||||
@- Fixed memory leak in trim(). (Bob)
|
||||
- Fixed a memory leak in php_trim() resulting from improper use of zval_dtor().
|
||||
#- Man, that thing was leaking all over the place!
|
||||
|
||||
The lines above marked with @ will go into NEWS file automagically, and the
|
||||
# lines will be omitted from the ChangeLog. Alternatively, you might want
|
||||
to modify NEWS file directly and not use the @ lines.
|
||||
The # lines will be omitted from the ChangeLog automagically.
|
||||
|
||||
If you fix some bugs, you should note the bug ID numbers in your
|
||||
commit message. Bug ID should be prefixed by "#" for easier access to
|
||||
@@ -96,13 +98,11 @@ bug report when developers are browsing CVS via. LXR or Bonsai.
|
||||
|
||||
Example:
|
||||
|
||||
Fixed pgsql notice handler double free crash bug. Bug #14016
|
||||
@ Fixed pgsql notice handler double free crash bug. Bug #14016
|
||||
Fixed bug #14016 (pgsql notice handler double free crash bug.)
|
||||
|
||||
If you don't see your messages in ChangeLog and NEWS right away, don't worry!
|
||||
If you don't see your messages in ChangeLog right away, don't worry!
|
||||
These files are updated once a day, so your stuff will not show up until
|
||||
somewhat later. Don't go adding stuff to NEWS by hand if you already put @
|
||||
lines in the commit message.
|
||||
somewhat later.
|
||||
|
||||
You can use LXR (http://lxr.php.net/) and Bonsai (http://bonsai.php.net/)
|
||||
to look at PHP CVS repository in various ways.
|
||||
|
||||
@@ -77,20 +77,24 @@
|
||||
|
||||
9. get_class() starting PHP 5 returns the name of the class as it was
|
||||
declared which may lead to problems in older scripts that rely on
|
||||
the previous behaviour - the class name is lowercased.
|
||||
the previous behaviour - the class name is lowercased. Expect the
|
||||
same behaviour from get_parent_class() when applicable.
|
||||
Example :
|
||||
<?php
|
||||
class FooBar {
|
||||
}
|
||||
class ExtFooBar extends FooBar{}
|
||||
$a = new FooBar();
|
||||
var_dump(get_class($a));
|
||||
var_dump(get_class($a), get_parent_class($a));
|
||||
?>
|
||||
|
||||
Output (PHP 4):
|
||||
string(6) "foobar"
|
||||
string(9) "extfoobar"
|
||||
|
||||
Output (PHP 5):
|
||||
string(6) "FooBar"
|
||||
string(9) "ExtFooBar"
|
||||
----------------------------------------------------------------------
|
||||
Example code that will break :
|
||||
//....
|
||||
@@ -101,7 +105,51 @@
|
||||
//...
|
||||
}
|
||||
//...
|
||||
Possible solution is to search for get_class() in all your scripts and
|
||||
use strtolower().
|
||||
Possible solution is to search for get_class() and get_parent_class() in
|
||||
all your scripts and use strtolower().
|
||||
|
||||
10. get_class_methods() returns the names of the methods of a class as they
|
||||
declared. In PHP4 the names are all lowercased.
|
||||
Example code :
|
||||
<?php
|
||||
class Foo{
|
||||
function doFoo(){}
|
||||
function hasFoo(){}
|
||||
}
|
||||
var_dump(get_class_methods("Foo"));
|
||||
?>
|
||||
Output (PHP4):
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(5) "dofoo"
|
||||
[1]=>
|
||||
string(6) "hasfoo"
|
||||
}
|
||||
Output (PHP5):
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(5) "doFoo"
|
||||
[1]=>
|
||||
string(6) "hasFoo"
|
||||
}
|
||||
|
||||
11. Assignment $this is impossible. Starting PHP 5.0.0 $this has special
|
||||
meaning in class methods and is recognized by the PHP parser. The latter
|
||||
will generate a parse error when assignment to $this is found
|
||||
Example code :
|
||||
<?php
|
||||
class Foo {
|
||||
function assignNew($obj) {
|
||||
$this = $obj;
|
||||
}
|
||||
}
|
||||
$a = new Foo();
|
||||
$b = new Foo();
|
||||
$a->assignNew($b);
|
||||
echo "I was executed\n";
|
||||
?>
|
||||
Output (PHP 4):
|
||||
I was executed
|
||||
Output (PHP 5):
|
||||
PHP Fatal error: Cannot re-assign $this in /tmp/this_ex.php on line 4
|
||||
|
||||
|
||||
@@ -7,9 +7,6 @@ Zend
|
||||
dimensional arrays.
|
||||
* Look at replacing c-lib call tolower().
|
||||
* Make hash API functions work with HASH_OF() to save time.
|
||||
* Add configure test to determine if dlsym() requires underscore and set
|
||||
DLSYM_NEEDS_UNDERSCORE accordingly. Perl and zsh have it in configure,
|
||||
for example. (DONE?)
|
||||
* Native large number support (probably with GNU GMP)
|
||||
* Const'ify APIs. Right now, many functions leave parameters untouched,
|
||||
but don't declare those as const. This makes interaction with other
|
||||
|
||||
@@ -1,16 +1,9 @@
|
||||
Zend Engine
|
||||
-----------
|
||||
- Look at making zend_constant value member be a zval* instead of zval. (Andi)
|
||||
- Add the patch for referring to existing .ini vars in .ini files. (Andrei)
|
||||
- Implement inheritance rules for type hints. (Marcus)
|
||||
- Implement true/false/NULL as keywords (apply the patch). (Andi, Marcus)
|
||||
- Implement typehinting for arrays (apply the patch). (Andi, Marcus)
|
||||
- Find a keyword for the if-set-or operator (apply the patch). (Marcus, all)
|
||||
- Fix ZTS destruction (apply the patch). (Marcus)
|
||||
|
||||
Build System
|
||||
------------
|
||||
- Implement load order of built-in extensions (apply the patch). (Wez)
|
||||
|
||||
Standard Library
|
||||
----------------
|
||||
|
||||
+82
-59
@@ -34,9 +34,7 @@ typedef struct {
|
||||
size_t size;
|
||||
ts_allocate_ctor ctor;
|
||||
ts_allocate_dtor dtor;
|
||||
#ifdef MBO_0
|
||||
int done;
|
||||
#endif
|
||||
} tsrm_resource_type;
|
||||
|
||||
|
||||
@@ -94,12 +92,28 @@ static FILE *tsrm_error_file;
|
||||
#if defined(PTHREADS)
|
||||
/* Thread local storage */
|
||||
static pthread_key_t tls_key;
|
||||
# define tsrm_tls_set(what) pthread_setspecific(tls_key, (void*)(what))
|
||||
# define tsrm_tls_get() pthread_getspecific(tls_key)
|
||||
|
||||
#elif defined(TSRM_ST)
|
||||
static int tls_key;
|
||||
# define tsrm_tls_set(what) st_thread_setspecific(tls_key, (void*)(what))
|
||||
# define tsrm_tls_get() st_thread_getspecific(tls_key)
|
||||
|
||||
#elif defined(TSRM_WIN32)
|
||||
static DWORD tls_key;
|
||||
# define tsrm_tls_set(what) TlsSetValue(tls_key, (void*)(what))
|
||||
# define tsrm_tls_get() TlsGetValue(tls_key)
|
||||
|
||||
#elif defined(BETHREADS)
|
||||
static int32 tls_key;
|
||||
# define tsrm_tls_set(what) tls_set(tls_key, (void*)(what))
|
||||
# define tsrm_tls_get() (tsrm_tls_entry*)tls_get(tls_key)
|
||||
|
||||
#else
|
||||
# define tsrm_tls_set(what)
|
||||
# define tsrm_tls_get() NULL
|
||||
# warning tsrm_set_interpreter_context is probably broken on this platform
|
||||
#endif
|
||||
|
||||
/* Startup TSRM (call once for the entire process) */
|
||||
@@ -162,11 +176,9 @@ TSRM_API void tsrm_shutdown(void)
|
||||
next_p = p->next;
|
||||
for (j=0; j<p->count; j++) {
|
||||
if (p->storage[j]) {
|
||||
#ifdef MBO_0
|
||||
if (resource_types_table && !resource_types_table[j].done && resource_types_table[j].dtor) {
|
||||
resource_types_table[j].dtor(p->storage[j], &p->storage);
|
||||
}
|
||||
#endif
|
||||
free(p->storage[j]);
|
||||
}
|
||||
}
|
||||
@@ -226,9 +238,7 @@ TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate
|
||||
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].size = size;
|
||||
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].ctor = ctor;
|
||||
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].dtor = dtor;
|
||||
#ifdef MBO_0
|
||||
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].done = 0;
|
||||
#endif
|
||||
|
||||
/* enlarge the arrays for the already active threads */
|
||||
for (i=0; i<tsrm_tls_table_size; i++) {
|
||||
@@ -268,26 +278,16 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_
|
||||
(*thread_resources_ptr)->thread_id = thread_id;
|
||||
(*thread_resources_ptr)->next = NULL;
|
||||
|
||||
#if defined(PTHREADS)
|
||||
/* Set thread local storage to this new thread resources structure */
|
||||
pthread_setspecific(tls_key, (void *) *thread_resources_ptr);
|
||||
#elif defined(TSRM_ST)
|
||||
st_thread_setspecific(tls_key, (void *) *thread_resources_ptr);
|
||||
#elif defined(TSRM_WIN32)
|
||||
TlsSetValue(tls_key, (void *) *thread_resources_ptr);
|
||||
#elif defined(BETHREADS)
|
||||
tls_set(tls_key, (void*) *thread_resources_ptr);
|
||||
#endif
|
||||
tsrm_tls_set(*thread_resources_ptr);
|
||||
|
||||
if (tsrm_new_thread_begin_handler) {
|
||||
tsrm_new_thread_begin_handler(thread_id, &((*thread_resources_ptr)->storage));
|
||||
}
|
||||
for (i=0; i<id_count; i++) {
|
||||
#if MBO_0
|
||||
if (resource_types_table[i].done) {
|
||||
(*thread_resources_ptr)->storage[i] = NULL;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
(*thread_resources_ptr)->storage[i] = (void *) malloc(resource_types_table[i].size);
|
||||
if (resource_types_table[i].ctor) {
|
||||
@@ -296,11 +296,11 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_
|
||||
}
|
||||
}
|
||||
|
||||
tsrm_mutex_unlock(tsmm_mutex);
|
||||
|
||||
if (tsrm_new_thread_end_handler) {
|
||||
tsrm_new_thread_end_handler(thread_id, &((*thread_resources_ptr)->storage));
|
||||
}
|
||||
|
||||
tsrm_mutex_unlock(tsmm_mutex);
|
||||
}
|
||||
|
||||
|
||||
@@ -321,22 +321,13 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
|
||||
if(tsrm_tls_table) {
|
||||
#endif
|
||||
if (!th_id) {
|
||||
#if defined(PTHREADS)
|
||||
/* Fast path for looking up the resources for the current
|
||||
* thread. Its used by just about every call to
|
||||
* ts_resource_ex(). This avoids the need for a mutex lock
|
||||
* and our hashtable lookup.
|
||||
*/
|
||||
thread_resources = pthread_getspecific(tls_key);
|
||||
#elif defined(TSRM_ST)
|
||||
thread_resources = st_thread_getspecific(tls_key);
|
||||
#elif defined(TSRM_WIN32)
|
||||
thread_resources = TlsGetValue(tls_key);
|
||||
#elif defined(BETHREADS)
|
||||
thread_resources = (tsrm_tls_entry*)tls_get(tls_key);
|
||||
#else
|
||||
thread_resources = NULL;
|
||||
#endif
|
||||
thread_resources = tsrm_tls_get();
|
||||
|
||||
if (thread_resources) {
|
||||
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Fetching resource id %d for current thread %d", id, (long) thread_resources->thread_id));
|
||||
/* Read a specific resource from the thread's resources.
|
||||
@@ -387,6 +378,66 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
|
||||
#endif
|
||||
}
|
||||
|
||||
/* frees an interpreter context. You are responsible for making sure that
|
||||
* it is not linked into the TSRM hash, and not marked as the current interpreter */
|
||||
void tsrm_free_interpreter_context(void *context)
|
||||
{
|
||||
tsrm_tls_entry *next, *thread_resources = (tsrm_tls_entry*)context;
|
||||
int i;
|
||||
|
||||
while (thread_resources) {
|
||||
next = thread_resources->next;
|
||||
|
||||
for (i=0; i<thread_resources->count; i++) {
|
||||
if (resource_types_table[i].dtor) {
|
||||
resource_types_table[i].dtor(thread_resources->storage[i], &thread_resources->storage);
|
||||
}
|
||||
}
|
||||
for (i=0; i<thread_resources->count; i++) {
|
||||
free(thread_resources->storage[i]);
|
||||
}
|
||||
free(thread_resources->storage);
|
||||
free(thread_resources);
|
||||
thread_resources = next;
|
||||
}
|
||||
}
|
||||
|
||||
void *tsrm_set_interpreter_context(void *new_ctx)
|
||||
{
|
||||
tsrm_tls_entry *current;
|
||||
|
||||
current = tsrm_tls_get();
|
||||
|
||||
/* TODO: unlink current from the global linked list, and replace it
|
||||
* it with the new context, protected by mutex where/if appropriate */
|
||||
|
||||
/* Set thread local storage to this new thread resources structure */
|
||||
tsrm_tls_set(new_ctx);
|
||||
|
||||
/* return old context, so caller can restore it when they're done */
|
||||
return current;
|
||||
}
|
||||
|
||||
|
||||
/* allocates a new interpreter context */
|
||||
void *tsrm_new_interpreter_context(void)
|
||||
{
|
||||
tsrm_tls_entry *new_ctx, *current;
|
||||
THREAD_T thread_id;
|
||||
|
||||
thread_id = tsrm_thread_id();
|
||||
tsrm_mutex_lock(tsmm_mutex);
|
||||
|
||||
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
|
||||
* of the new one */
|
||||
return tsrm_set_interpreter_context(current);
|
||||
}
|
||||
|
||||
|
||||
/* frees all resources allocated for the current thread */
|
||||
void ts_free_thread(void)
|
||||
@@ -417,11 +468,7 @@ void ts_free_thread(void)
|
||||
} else {
|
||||
tsrm_tls_table[hash_value] = thread_resources->next;
|
||||
}
|
||||
#if defined(PTHREADS)
|
||||
pthread_setspecific(tls_key, 0);
|
||||
#elif defined(TSRM_WIN32)
|
||||
TlsSetValue(tls_key, 0);
|
||||
#endif
|
||||
tsrm_tls_set(0);
|
||||
free(thread_resources);
|
||||
break;
|
||||
}
|
||||
@@ -437,7 +484,6 @@ void ts_free_thread(void)
|
||||
/* deallocates all occurrences of a given id */
|
||||
void ts_free_id(ts_rsrc_id id)
|
||||
{
|
||||
#ifdef MBO_0
|
||||
int i;
|
||||
int j = TSRM_UNSHUFFLE_RSRC_ID(id);
|
||||
|
||||
@@ -466,7 +512,6 @@ void ts_free_id(ts_rsrc_id id)
|
||||
tsrm_mutex_unlock(tsmm_mutex);
|
||||
|
||||
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Successfully freed resource id %d", id));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -481,13 +526,6 @@ TSRM_API THREAD_T tsrm_thread_id(void)
|
||||
{
|
||||
#ifdef TSRM_WIN32
|
||||
return GetCurrentThreadId();
|
||||
#elif defined(NETWARE)
|
||||
/* There seems to be some problem with the LibC call: NXThreadGetId().
|
||||
* Due to this, the PHPMyAdmin application is abending in PHP calls.
|
||||
* Used the call, kCurrentThread instead and it works fine.
|
||||
*/
|
||||
/* return NXThreadGetId(); */
|
||||
return kCurrentThread();
|
||||
#elif defined(GNUPTH)
|
||||
return pth_self();
|
||||
#elif defined(PTHREADS)
|
||||
@@ -508,24 +546,9 @@ TSRM_API THREAD_T tsrm_thread_id(void)
|
||||
TSRM_API MUTEX_T tsrm_mutex_alloc(void)
|
||||
{
|
||||
MUTEX_T mutexp;
|
||||
#ifdef NETWARE
|
||||
#ifndef USE_MPK
|
||||
/* To use the Recursive Mutex Locking of LibC */
|
||||
long flags = NX_MUTEX_RECURSIVE;
|
||||
NXHierarchy_t order = 0;
|
||||
NX_LOCK_INFO_ALLOC (lockInfo, "PHP-TSRM", 0);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef TSRM_WIN32
|
||||
mutexp = malloc(sizeof(CRITICAL_SECTION));
|
||||
InitializeCriticalSection(mutexp);
|
||||
#elif defined(NETWARE)
|
||||
#ifdef USE_MPK
|
||||
mutexp = kMutexAlloc((BYTE*)"PHP-TSRM");
|
||||
#else
|
||||
mutexp = NXMutexAlloc(flags, order, &lockInfo);
|
||||
#endif
|
||||
#elif defined(GNUPTH)
|
||||
mutexp = (MUTEX_T) malloc(sizeof(*mutexp));
|
||||
pth_mutex_init(mutexp);
|
||||
|
||||
+8
-16
@@ -14,8 +14,8 @@
|
||||
#define TSRM_H
|
||||
|
||||
/* #ifndef WIN32 */
|
||||
#if !defined(WIN32) && !defined(NETWARE)
|
||||
# include "tsrm_config.h"
|
||||
#ifndef WIN32
|
||||
# include <tsrm_config.h>
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
@@ -42,13 +42,6 @@
|
||||
# endif
|
||||
# include <windows.h>
|
||||
# include <shellapi.h>
|
||||
#elif defined(NETWARE)
|
||||
# include <nks/thread.h>
|
||||
#ifdef USE_MPK
|
||||
# include <mpklib4php.h>
|
||||
#else
|
||||
# include <nks/synch.h>
|
||||
#endif
|
||||
#elif defined(GNUPTH)
|
||||
# include <pth.h>
|
||||
#elif defined(PTHREADS)
|
||||
@@ -66,13 +59,6 @@ typedef int ts_rsrc_id;
|
||||
#ifdef TSRM_WIN32
|
||||
# define THREAD_T DWORD
|
||||
# define MUTEX_T CRITICAL_SECTION *
|
||||
#elif defined(NETWARE)
|
||||
# define THREAD_T NXThreadId_t
|
||||
#ifdef USE_MPK
|
||||
# define MUTEX_T MUTEX
|
||||
#else
|
||||
# define MUTEX_T NXMutex_t *
|
||||
#endif
|
||||
#elif defined(GNUPTH)
|
||||
# define THREAD_T pth_t
|
||||
# define MUTEX_T pth_mutex_t *
|
||||
@@ -146,6 +132,12 @@ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp);
|
||||
TSRM_API void *tsrm_set_new_thread_begin_handler(tsrm_thread_begin_func_t new_thread_begin_handler);
|
||||
TSRM_API void *tsrm_set_new_thread_end_handler(tsrm_thread_end_func_t new_thread_end_handler);
|
||||
|
||||
/* these 3 APIs should only be used by people that fully understand the threading model
|
||||
* used by PHP/Zend and the selected SAPI. */
|
||||
TSRM_API void *tsrm_new_interpreter_context(void);
|
||||
TSRM_API void *tsrm_set_interpreter_context(void *new_ctx);
|
||||
TSRM_API void tsrm_free_interpreter_context(void *context);
|
||||
|
||||
#define TSRM_SHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)+1)
|
||||
#define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)-1)
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
|
||||
AC_DEFUN(AM_SET_LIBTOOL_VARIABLE,[
|
||||
AC_DEFUN([AM_SET_LIBTOOL_VARIABLE],[
|
||||
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
|
||||
])
|
||||
|
||||
+13
-5
@@ -30,7 +30,7 @@ dnl PTHREADS_FLAGS
|
||||
dnl
|
||||
dnl Set some magic defines to achieve POSIX threads conformance
|
||||
dnl
|
||||
AC_DEFUN(PTHREADS_FLAGS,[
|
||||
AC_DEFUN([PTHREADS_FLAGS],[
|
||||
if test -z "$host_alias" && test -n "$host"; then
|
||||
host_alias=$host
|
||||
fi
|
||||
@@ -65,7 +65,7 @@ dnl PTHREADS_CHECK_COMPILE
|
||||
dnl
|
||||
dnl Check whether the current setup can use POSIX threads calls
|
||||
dnl
|
||||
AC_DEFUN(PTHREADS_CHECK_COMPILE, [
|
||||
AC_DEFUN([PTHREADS_CHECK_COMPILE], [
|
||||
AC_TRY_RUN( [
|
||||
#include <pthread.h>
|
||||
#include <stddef.h>
|
||||
@@ -84,7 +84,15 @@ int main() {
|
||||
pthreads_working=yes
|
||||
], [
|
||||
pthreads_working=no
|
||||
], pthreads_working=no ) ] )dnl
|
||||
], [
|
||||
dnl For cross compiling running this test is of no use. NetWare supports pthreads
|
||||
pthreads_working=no
|
||||
case $host_alias in
|
||||
*netware*)
|
||||
pthreads_working=yes
|
||||
esac
|
||||
]
|
||||
) ] )dnl
|
||||
dnl
|
||||
dnl PTHREADS_CHECK()
|
||||
dnl
|
||||
@@ -100,7 +108,7 @@ dnl -pthreads gcc (Solaris)
|
||||
dnl -qthreaded AIX cc V5
|
||||
dnl -threads gcc (HP-UX)
|
||||
dnl
|
||||
AC_DEFUN(PTHREADS_CHECK,[
|
||||
AC_DEFUN([PTHREADS_CHECK],[
|
||||
|
||||
if test "$beos_threads" = "1"; then
|
||||
pthreads_working="yes"
|
||||
@@ -154,7 +162,7 @@ fi
|
||||
])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(PTHREADS_ASSIGN_VARS,[
|
||||
AC_DEFUN([PTHREADS_ASSIGN_VARS],[
|
||||
if test -n "$ac_cv_pthreads_lib"; then
|
||||
LIBS="$LIBS -l$ac_cv_pthreads_lib"
|
||||
fi
|
||||
|
||||
+7
-7
@@ -1,6 +1,6 @@
|
||||
|
||||
dnl TSRM_CHECK_GCC_ARG(ARG, ACTION-IF-FOUND, ACTION-IF-NOT_FOUND)
|
||||
AC_DEFUN(TSRM_CHECK_GCC_ARG,[
|
||||
AC_DEFUN([TSRM_CHECK_GCC_ARG],[
|
||||
gcc_arg_name=[ac_cv_gcc_arg]translit($1,A-Z-,a-z_)
|
||||
AC_CACHE_CHECK([whether $CC supports $1], [ac_cv_gcc_arg]translit($1,A-Z-,a-z_), [
|
||||
echo 'void somefunc() { };' > conftest.c
|
||||
@@ -21,7 +21,7 @@ AC_DEFUN(TSRM_CHECK_GCC_ARG,[
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN(TSRM_BASIC_CHECKS,[
|
||||
AC_DEFUN([TSRM_BASIC_CHECKS],[
|
||||
|
||||
AC_REQUIRE([AC_PROG_CC])dnl
|
||||
dnl AC_REQUIRE([AM_PROG_CC_STDC])dnl
|
||||
@@ -33,7 +33,7 @@ AC_CHECK_HEADERS(stdarg.h)
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN(TSRM_CHECK_PTH,[
|
||||
AC_DEFUN([TSRM_CHECK_PTH],[
|
||||
|
||||
AC_MSG_CHECKING(for GNU Pth)
|
||||
PTH_PREFIX="`$1 --prefix`"
|
||||
@@ -50,7 +50,7 @@ AC_MSG_RESULT(yes - installed in $PTH_PREFIX)
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN(TSRM_CHECK_ST,[
|
||||
AC_DEFUN([TSRM_CHECK_ST],[
|
||||
if test -r "$1/include/st.h"; then
|
||||
CPPFLAGS="$CPPFLAGS -I$1/include"
|
||||
LDFLAGS="$LDFLAGS -L$1/lib"
|
||||
@@ -70,7 +70,7 @@ AC_DEFUN(TSRM_CHECK_ST,[
|
||||
sinclude(threads.m4)
|
||||
sinclude(TSRM/threads.m4)
|
||||
|
||||
AC_DEFUN(TSRM_CHECK_PTHREADS,[
|
||||
AC_DEFUN([TSRM_CHECK_PTHREADS],[
|
||||
|
||||
PTHREADS_CHECK
|
||||
|
||||
@@ -89,14 +89,14 @@ fi
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN(TSRM_THREADS_CHECKS,[
|
||||
AC_DEFUN([TSRM_THREADS_CHECKS],[
|
||||
|
||||
dnl For the thread implementations, we always use --with-*
|
||||
dnl to maintain consistency
|
||||
|
||||
AC_ARG_WITH(tsrm-pth,
|
||||
[ --with-tsrm-pth[=pth-config]
|
||||
Use GNU Pth.],[
|
||||
Use GNU Pth],[
|
||||
TSRM_PTH=$withval
|
||||
],[
|
||||
TSRM_PTH=no
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#ifndef TSRM_CONFIG_NW_H
|
||||
#define TSRM_CONFIG_NW_H
|
||||
|
||||
#define HAVE_UTIME 1
|
||||
|
||||
/* Though we have alloca(), this seems to be causing some problem
|
||||
* with the stack pointer. Hence not using it
|
||||
*/
|
||||
/*#define HAVE_ALLOCA 1*/
|
||||
|
||||
#endif
|
||||
@@ -7,10 +7,8 @@
|
||||
|
||||
#ifdef TSRM_WIN32
|
||||
# include "tsrm_config.w32.h"
|
||||
#elif defined(NETWARE)
|
||||
# include "tsrm_config.nw.h"
|
||||
#else
|
||||
# include "tsrm_config.h"
|
||||
# include <tsrm_config.h>
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
|
||||
|
||||
+206
-64
@@ -27,6 +27,7 @@
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "tsrm_virtual_cwd.h"
|
||||
#include "tsrm_strtok_r.h"
|
||||
@@ -41,11 +42,6 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef NETWARE
|
||||
/*#include "pipe.h"*/
|
||||
#include "tsrm_nw.h"
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_REALPATH
|
||||
#define realpath(x,y) strcpy(y,x)
|
||||
#endif
|
||||
@@ -60,9 +56,9 @@ MUTEX_T cwd_mutex;
|
||||
#endif
|
||||
|
||||
#ifdef ZTS
|
||||
static ts_rsrc_id cwd_globals_id;
|
||||
ts_rsrc_id cwd_globals_id;
|
||||
#else
|
||||
static virtual_cwd_globals cwd_globals;
|
||||
virtual_cwd_globals cwd_globals;
|
||||
#endif
|
||||
|
||||
cwd_state main_cwd_state; /* True global */
|
||||
@@ -142,15 +138,9 @@ static int php_check_dots(const char *element, int n)
|
||||
|
||||
static int php_is_dir_ok(const cwd_state *state)
|
||||
{
|
||||
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
|
||||
struct stat buf;
|
||||
|
||||
if (stat(state->cwd, &buf) == 0 && S_ISDIR(buf.st_mode))
|
||||
#else
|
||||
struct stat_libc buf;
|
||||
|
||||
if (stat(state->cwd, (struct stat*)(&buf)) == 0 && S_ISDIR(buf.st_mode))
|
||||
#endif
|
||||
return (0);
|
||||
|
||||
return (1);
|
||||
@@ -158,15 +148,9 @@ static int php_is_dir_ok(const cwd_state *state)
|
||||
|
||||
static int php_is_file_ok(const cwd_state *state)
|
||||
{
|
||||
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
|
||||
struct stat buf;
|
||||
|
||||
if (stat(state->cwd, &buf) == 0 && S_ISREG(buf.st_mode))
|
||||
#else
|
||||
struct stat_libc buf;
|
||||
|
||||
if (stat(state->cwd, (struct stat*)(&buf)) == 0 && S_ISREG(buf.st_mode))
|
||||
#endif
|
||||
return (0);
|
||||
|
||||
return (1);
|
||||
@@ -175,11 +159,31 @@ static int php_is_file_ok(const cwd_state *state)
|
||||
static void cwd_globals_ctor(virtual_cwd_globals *cwd_globals TSRMLS_DC)
|
||||
{
|
||||
CWD_STATE_COPY(&cwd_globals->cwd, &main_cwd_state);
|
||||
#ifdef REALPATH_CACHE
|
||||
cwd_globals->realpath_cache_size = 0;
|
||||
cwd_globals->realpath_cache_size_limit = REALPATH_CACHE_SIZE;
|
||||
cwd_globals->realpath_cache_ttl = REALPATH_CACHE_TTL;
|
||||
memset(cwd_globals->realpath_cache, 0, sizeof(cwd_globals->realpath_cache));
|
||||
#endif
|
||||
}
|
||||
|
||||
static void cwd_globals_dtor(virtual_cwd_globals *cwd_globals TSRMLS_DC)
|
||||
{
|
||||
CWD_STATE_FREE(&cwd_globals->cwd);
|
||||
#ifdef REALPATH_CACHE
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < sizeof(cwd_globals->realpath_cache)/sizeof(cwd_globals->realpath_cache[0]); i++) {
|
||||
realpath_cache_bucket *p = cwd_globals->realpath_cache[i];
|
||||
while (p != NULL) {
|
||||
realpath_cache_bucket *r = p;
|
||||
p = p->next;
|
||||
free(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static char *tsrm_strndup(const char *s, size_t length)
|
||||
@@ -287,6 +291,65 @@ CWD_API char *virtual_getcwd(char *buf, size_t size TSRMLS_DC)
|
||||
return buf;
|
||||
}
|
||||
|
||||
#ifdef REALPATH_CACHE
|
||||
static inline unsigned long realpath_cache_key(const char *path, int path_len)
|
||||
{
|
||||
register unsigned long h;
|
||||
|
||||
const char *e = path + path_len;
|
||||
for (h = 2166136261U; path < e; ) {
|
||||
h *= 16777619;
|
||||
h ^= *path++;
|
||||
}
|
||||
return h;
|
||||
}
|
||||
|
||||
static inline void realpath_cache_add(const char *path, int path_len, const char *realpath, int realpath_len, time_t t TSRMLS_DC)
|
||||
{
|
||||
long size = sizeof(realpath_cache_bucket) + path_len + 1 + realpath_len + 1;
|
||||
if (CWDG(realpath_cache_size) + size <= CWDG(realpath_cache_size_limit)) {
|
||||
realpath_cache_bucket *bucket = malloc(size);
|
||||
unsigned long n;
|
||||
|
||||
bucket->key = realpath_cache_key(path, path_len);
|
||||
bucket->path = (char*)bucket + sizeof(realpath_cache_bucket);
|
||||
memcpy(bucket->path, path, path_len+1);
|
||||
bucket->path_len = path_len;
|
||||
bucket->realpath = bucket->path + (path_len + 1);
|
||||
memcpy(bucket->realpath, realpath, realpath_len+1);
|
||||
bucket->realpath_len = realpath_len;
|
||||
bucket->expires = t + CWDG(realpath_cache_ttl);
|
||||
n = bucket->key % (sizeof(CWDG(realpath_cache)) / sizeof(CWDG(realpath_cache)[0]));
|
||||
bucket->next = CWDG(realpath_cache)[n];
|
||||
CWDG(realpath_cache)[n] = bucket;
|
||||
CWDG(realpath_cache_size) += size;
|
||||
}
|
||||
}
|
||||
|
||||
static inline realpath_cache_bucket* realpath_cache_find(const char *path, int path_len, time_t t TSRMLS_DC)
|
||||
{
|
||||
unsigned long key = realpath_cache_key(path, path_len);
|
||||
unsigned long n = key % (sizeof(CWDG(realpath_cache)) / sizeof(CWDG(realpath_cache)[0]));
|
||||
realpath_cache_bucket **bucket = &CWDG(realpath_cache)[n];
|
||||
|
||||
while (*bucket != NULL) {
|
||||
if (CWDG(realpath_cache_ttl) && (*bucket)->expires < t) {
|
||||
realpath_cache_bucket *r = *bucket;
|
||||
*bucket = (*bucket)->next;
|
||||
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
|
||||
free(r);
|
||||
} else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
|
||||
memcmp(path, (*bucket)->path, path_len) == 0) {
|
||||
return *bucket;
|
||||
} else {
|
||||
*bucket = (*bucket)->next;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Resolve path relatively to state and put the real path into state */
|
||||
/* returns 0 for ok, 1 for error */
|
||||
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath)
|
||||
@@ -295,7 +358,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
char *ptr, *path_copy;
|
||||
char *tok = NULL;
|
||||
int ptr_length;
|
||||
cwd_state *old_state;
|
||||
cwd_state old_state;
|
||||
int ret = 0;
|
||||
int copy_amount = -1;
|
||||
char *free_path;
|
||||
@@ -305,18 +368,65 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
#else
|
||||
char *new_path;
|
||||
#endif
|
||||
#ifdef REALPATH_CACHE
|
||||
char orig_path[MAXPATHLEN];
|
||||
int orig_path_len;
|
||||
realpath_cache_bucket *bucket;
|
||||
time_t t;
|
||||
TSRMLS_FETCH();
|
||||
#endif
|
||||
|
||||
if (path_length == 0)
|
||||
return (0);
|
||||
if (path_length >= MAXPATHLEN)
|
||||
return (1);
|
||||
|
||||
#ifdef REALPATH_CACHE
|
||||
if (use_realpath && CWDG(realpath_cache_size_limit)) {
|
||||
if (IS_ABSOLUTE_PATH(path, path_length) || (state->cwd_length < 1)) {
|
||||
memcpy(orig_path, path, path_length+1);
|
||||
orig_path_len = path_length;
|
||||
} else {
|
||||
orig_path_len = path_length + state->cwd_length + 1;
|
||||
if (orig_path_len >= MAXPATHLEN) {
|
||||
return 1;
|
||||
}
|
||||
memcpy(orig_path, state->cwd, state->cwd_length);
|
||||
orig_path[state->cwd_length] = DEFAULT_SLASH;
|
||||
memcpy(orig_path + state->cwd_length + 1, path, path_length + 1);
|
||||
}
|
||||
t = CWDG(realpath_cache_ttl)?time(NULL):0;
|
||||
if ((bucket = realpath_cache_find(orig_path, orig_path_len, t TSRMLS_CC)) != NULL) {
|
||||
int len = bucket->realpath_len;
|
||||
|
||||
CWD_STATE_COPY(&old_state, state);
|
||||
state->cwd = (char *) realloc(state->cwd, len+1);
|
||||
memcpy(state->cwd, bucket->realpath, len+1);
|
||||
state->cwd_length = len;
|
||||
if (verify_path && verify_path(state)) {
|
||||
CWD_STATE_FREE(state);
|
||||
*state = old_state;
|
||||
return 1;
|
||||
} else {
|
||||
CWD_STATE_FREE(&old_state);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if !defined(TSRM_WIN32) && !defined(NETWARE)
|
||||
/* cwd_length can be 0 when getcwd() fails.
|
||||
* This can happen under solaris when a dir does not have read permissions
|
||||
* but *does* have execute permissions */
|
||||
if (IS_ABSOLUTE_PATH(path, path_length) || (state->cwd_length < 1)) {
|
||||
if (use_realpath && realpath(path, resolved_path)) {
|
||||
path = resolved_path;
|
||||
path_length = strlen(path);
|
||||
if (use_realpath) {
|
||||
if (realpath(path, resolved_path)) { /* Note: Not threadsafe on older *BSD's */
|
||||
path = resolved_path;
|
||||
path_length = strlen(path);
|
||||
} else {
|
||||
/* disable for now
|
||||
return 1; */
|
||||
}
|
||||
}
|
||||
} else { /* Concat current directory with relative path and then run realpath() on it */
|
||||
char *tmp;
|
||||
@@ -332,9 +442,19 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
memcpy(ptr, path, path_length);
|
||||
ptr += path_length;
|
||||
*ptr = '\0';
|
||||
if (use_realpath && realpath(tmp, resolved_path)) {
|
||||
path = resolved_path;
|
||||
path_length = strlen(path);
|
||||
if (strlen(tmp) >= MAXPATHLEN) {
|
||||
free(tmp);
|
||||
return 1;
|
||||
}
|
||||
if (use_realpath) {
|
||||
if (realpath(tmp, resolved_path)) {
|
||||
path = resolved_path;
|
||||
path_length = strlen(path);
|
||||
} else {
|
||||
/* disable for now
|
||||
free(tmp);
|
||||
return 1; */
|
||||
}
|
||||
}
|
||||
free(tmp);
|
||||
}
|
||||
@@ -364,8 +484,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
#endif
|
||||
free_path = path_copy = tsrm_strndup(path, path_length);
|
||||
|
||||
old_state = (cwd_state *) malloc(sizeof(cwd_state));
|
||||
CWD_STATE_COPY(old_state, state);
|
||||
CWD_STATE_COPY(&old_state, state);
|
||||
#if VIRTUAL_CWD_DEBUG
|
||||
fprintf(stderr,"cwd = %s path = %s\n", state->cwd, path);
|
||||
#endif
|
||||
@@ -385,7 +504,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
memcpy(state->cwd, path_copy, copy_amount);
|
||||
path_copy += copy_amount;
|
||||
} else {
|
||||
memcpy(state->cwd, old_state->cwd, copy_amount);
|
||||
memcpy(state->cwd, old_state.cwd, copy_amount);
|
||||
}
|
||||
}
|
||||
state->cwd[copy_amount] = '\0';
|
||||
@@ -428,8 +547,19 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
state->cwd[state->cwd_length++] = DEFAULT_SLASH;
|
||||
}
|
||||
#elif defined(NETWARE)
|
||||
/* If the token is a volume name, it will have colon at the end -- so, no slash before it */
|
||||
if (ptr[ptr_length-1] != ':') {
|
||||
/*
|
||||
Below code keeps appending to state->cwd a File system seperator
|
||||
cases where this appending should not happen is given below,
|
||||
a) sys: should just be left as it is
|
||||
b) sys:system should just be left as it is,
|
||||
Colon is allowed only in the first token as volume names alone can have the : in their names.
|
||||
Files and Directories cannot have : in their names
|
||||
So the check goes like this,
|
||||
For second token and above simply append the DEFAULT_SLASH to the state->cwd.
|
||||
For first token check for the existence of :
|
||||
if it exists don't append the DEFAULT_SLASH to the state->cwd.
|
||||
*/
|
||||
if(((state->cwd_length == 0) && (strchr(ptr, ':') == NULL)) || (state->cwd_length > 0)) {
|
||||
state->cwd[state->cwd_length++] = DEFAULT_SLASH;
|
||||
}
|
||||
#else
|
||||
@@ -453,24 +583,28 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
|
||||
state->cwd_length = path_length;
|
||||
}
|
||||
|
||||
if (verify_path && verify_path(state)) {
|
||||
CWD_STATE_FREE(state);
|
||||
|
||||
*state = *old_state;
|
||||
|
||||
ret = 1;
|
||||
} else {
|
||||
CWD_STATE_FREE(old_state);
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
free(old_state);
|
||||
#ifdef TSRM_WIN32
|
||||
if (new_path) {
|
||||
free(new_path);
|
||||
}
|
||||
#endif
|
||||
free(free_path);
|
||||
|
||||
#ifdef REALPATH_CACHE
|
||||
if (use_realpath && CWDG(realpath_cache_size_limit)) {
|
||||
realpath_cache_add(orig_path, orig_path_len, state->cwd, state->cwd_length, t TSRMLS_CC);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (verify_path && verify_path(state)) {
|
||||
CWD_STATE_FREE(state);
|
||||
*state = old_state;
|
||||
ret = 1;
|
||||
} else {
|
||||
CWD_STATE_FREE(&old_state);
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
#if VIRTUAL_CWD_DEBUG
|
||||
fprintf (stderr, "virtual_file_ex() = %s\n",state->cwd);
|
||||
#endif
|
||||
@@ -699,7 +833,6 @@ CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC)
|
||||
return retval;
|
||||
}
|
||||
|
||||
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
|
||||
CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC)
|
||||
{
|
||||
cwd_state new_state;
|
||||
@@ -713,23 +846,8 @@ CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC)
|
||||
CWD_STATE_FREE(&new_state);
|
||||
return retval;
|
||||
}
|
||||
#else
|
||||
CWD_API int virtual_stat(const char *path, struct stat_libc *buf TSRMLS_DC)
|
||||
{
|
||||
cwd_state new_state;
|
||||
int retval;
|
||||
|
||||
CWD_STATE_COPY(&new_state, &CWDG(cwd));
|
||||
virtual_file_ex(&new_state, path, NULL, 1);
|
||||
|
||||
retval = stat(new_state.cwd, (struct stat*)buf);
|
||||
|
||||
CWD_STATE_FREE(&new_state);
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(TSRM_WIN32) && !defined(NETWARE)
|
||||
#if !defined(TSRM_WIN32)
|
||||
CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC)
|
||||
{
|
||||
cwd_state new_state;
|
||||
@@ -851,13 +969,24 @@ CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
|
||||
CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
|
||||
{
|
||||
int command_length;
|
||||
int dir_length, extra = 0;
|
||||
char *command_line;
|
||||
char *ptr;
|
||||
char *ptr, *dir;
|
||||
FILE *retval;
|
||||
|
||||
command_length = strlen(command);
|
||||
|
||||
ptr = command_line = (char *) malloc(command_length + sizeof("cd ; ") + CWDG(cwd).cwd_length+1);
|
||||
dir_length = CWDG(cwd).cwd_length;
|
||||
dir = CWDG(cwd).cwd;
|
||||
while (dir_length > 0) {
|
||||
if (*dir == '\'') extra+=3;
|
||||
dir++;
|
||||
dir_length--;
|
||||
}
|
||||
dir_length = CWDG(cwd).cwd_length;
|
||||
dir = CWDG(cwd).cwd;
|
||||
|
||||
ptr = command_line = (char *) malloc(command_length + sizeof("cd '' ; ") + dir_length + extra+1+1);
|
||||
if (!command_line) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -867,8 +996,21 @@ CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
|
||||
if (CWDG(cwd).cwd_length == 0) {
|
||||
*ptr++ = DEFAULT_SLASH;
|
||||
} else {
|
||||
memcpy(ptr, CWDG(cwd).cwd, CWDG(cwd).cwd_length);
|
||||
ptr += CWDG(cwd).cwd_length;
|
||||
*ptr++ = '\'';
|
||||
while (dir_length > 0) {
|
||||
switch (*dir) {
|
||||
case '\'':
|
||||
*ptr++ = '\'';
|
||||
*ptr++ = '\\';
|
||||
*ptr++ = '\'';
|
||||
/* fall-through */
|
||||
default:
|
||||
*ptr++ = *dir;
|
||||
}
|
||||
dir++;
|
||||
dir_length--;
|
||||
}
|
||||
*ptr++ = '\'';
|
||||
}
|
||||
|
||||
*ptr++ = ' ';
|
||||
|
||||
+29
-8
@@ -70,14 +70,15 @@ 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) /* Colon indicates volume name */
|
||||
((strchr(path, ':') != NULL) || ((len >= 1) && ((path[0] == '/') || (path[0] == '\\'))))
|
||||
|
||||
#else
|
||||
#ifdef HAVE_DIRENT_H
|
||||
@@ -141,12 +142,8 @@ CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC);
|
||||
CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...);
|
||||
CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC);
|
||||
CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC);
|
||||
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
|
||||
CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC);
|
||||
#else
|
||||
CWD_API int virtual_stat(const char *path, struct stat_libc *buf TSRMLS_DC);
|
||||
#endif
|
||||
#if !defined(TSRM_WIN32) && !defined(NETWARE)
|
||||
#if !defined(TSRM_WIN32)
|
||||
CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC);
|
||||
#endif
|
||||
CWD_API int virtual_unlink(const char *path TSRMLS_DC);
|
||||
@@ -200,13 +197,37 @@ CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group TSRMLS_
|
||||
|
||||
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath);
|
||||
|
||||
#define REALPATH_CACHE
|
||||
#define REALPATH_CACHE_TTL (2*60) /* 2 minutes */
|
||||
#define REALPATH_CACHE_SIZE 0 /* disabled while php.ini isn't loaded */
|
||||
|
||||
#ifdef REALPATH_CACHE
|
||||
typedef struct _realpath_cache_bucket {
|
||||
unsigned long key;
|
||||
char *path;
|
||||
int path_len;
|
||||
char *realpath;
|
||||
int realpath_len;
|
||||
time_t expires;
|
||||
struct _realpath_cache_bucket *next;
|
||||
} realpath_cache_bucket;
|
||||
#endif
|
||||
|
||||
typedef struct _virtual_cwd_globals {
|
||||
cwd_state cwd;
|
||||
#ifdef REALPATH_CACHE
|
||||
long realpath_cache_size;
|
||||
long realpath_cache_size_limit;
|
||||
long realpath_cache_ttl;
|
||||
realpath_cache_bucket *realpath_cache[1024];
|
||||
#endif
|
||||
} virtual_cwd_globals;
|
||||
|
||||
#ifdef ZTS
|
||||
extern ts_rsrc_id cwd_globals_id;
|
||||
# define CWDG(v) TSRMG(cwd_globals_id, virtual_cwd_globals *, v)
|
||||
#else
|
||||
extern virtual_cwd_globals cwd_globals;
|
||||
# define CWDG(v) (cwd_globals.v)
|
||||
#endif
|
||||
|
||||
@@ -229,7 +250,7 @@ typedef struct _virtual_cwd_globals {
|
||||
#define VCWD_REALPATH(path, real_path) virtual_realpath(path, real_path TSRMLS_CC)
|
||||
#define VCWD_RENAME(oldname, newname) virtual_rename(oldname, newname TSRMLS_CC)
|
||||
#define VCWD_STAT(path, buff) virtual_stat(path, buff TSRMLS_CC)
|
||||
#if !defined(TSRM_WIN32) && !defined(NETWARE)
|
||||
#if !defined(TSRM_WIN32)
|
||||
#define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
|
||||
#endif
|
||||
#define VCWD_UNLINK(path) virtual_unlink(path TSRMLS_CC)
|
||||
|
||||
+3878
-2
File diff suppressed because it is too large.
Load diff
+2
-1
@@ -16,7 +16,8 @@ libZend_la_SOURCES=\
|
||||
zend_ini.c zend_qsort.c zend_objects.c zend_object_handlers.c \
|
||||
zend_objects_API.c zend_ts_hash.c zend_stream.c zend_mm.c \
|
||||
zend_default_classes.c zend_reflection_api.c \
|
||||
zend_iterators.c zend_interfaces.c zend_exceptions.c
|
||||
zend_iterators.c zend_interfaces.c zend_exceptions.c \
|
||||
zend_strtod.c zend_multibyte.c
|
||||
|
||||
libZend_la_LDFLAGS =
|
||||
libZend_la_LIBADD = @ZEND_EXTRA_LIBS@
|
||||
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
Zend/zend_execute.lo: $(srcdir)/zend_vm_execute.h $(srcdir)/zend_vm_opcodes.h
|
||||
@@ -0,0 +1,107 @@
|
||||
ZEND_VM
|
||||
=======
|
||||
|
||||
ZEND_VM architecture allows specializing opcode handlers according to op_type
|
||||
fields and using different execution methods (call threading, switch threading
|
||||
and direct threading). As a result ZE2 got more than 20% speedup on raw PHP
|
||||
code execution (with specialized executor and direct threading execution
|
||||
method). As in most PHP applications raw execution speed isn't the limiting
|
||||
factor but system calls and database callls are, your mileage with this patch
|
||||
will vary.
|
||||
|
||||
Most parts of the old zend_execute.c go into zend_vm_def.h. Here you can
|
||||
find opcode handlers and helpers. The typical opcode handler template looks
|
||||
like this:
|
||||
|
||||
ZEND_VM_HANDLER(<OPCODE-NUMBER>, <OPCODE>, <OP1_TYPES>, <OP2_TYPES>)
|
||||
{
|
||||
<HANDLER'S CODE>
|
||||
}
|
||||
|
||||
<OPCODE-NUMBER> is a opcode number (0, 1, ...)
|
||||
<OPCODE> is an opcode name (ZEN_NOP, ZEND_ADD, :)
|
||||
<OP1_TYPES> & <OP2_TYPES> are masks for allowed operand op_types. Specializer
|
||||
will generate code only for defined combination of types. You can use any
|
||||
combination of the following op_types UNUSED, CONST, VAR, TMP and CV also
|
||||
you can use ANY mask to disable specialization according operand's op_type.
|
||||
<HANDLER'S CODE> is a handler's code itself. For most handlers it stills the
|
||||
same as in old zend_execute.c, but now it uses macros to access opcode operands
|
||||
and some internal executor data.
|
||||
|
||||
You can see the conformity of new macros to old code in the following list:
|
||||
|
||||
EXECUTE_DATA
|
||||
execute_data
|
||||
ZEND_VM_DISPATCH_TO_HANDLER(<OP>)
|
||||
return <OP>_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)
|
||||
ZEND_VM_DISPATCH_TO_HELPER(<NAME>)
|
||||
return <NAME>(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)
|
||||
ZEND_VM_DISPATCH_TO_HELPER_EX(<NAME>,<PARAM>,<VAL>)
|
||||
return <NAME>(<VAL>, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)
|
||||
ZEND_VM_CONTINUE()
|
||||
return 0
|
||||
ZEND_VM_NEXT_OPCODE()
|
||||
NEXT_OPCODE()
|
||||
ZEND_VM_SET_OPCODE(<TARGET>
|
||||
SET_OPCODE(<TARGET>
|
||||
ZEND_VM_INC_OPCODE()
|
||||
INC_OPCOD()
|
||||
ZEND_VM_RETURN_FROM_EXECUTE_LOOP()
|
||||
RETURN_FROM_EXECUTE_LOOP()
|
||||
ZEND_VM_C_LABEL(<LABEL>):
|
||||
<LABEL>:
|
||||
ZEND_VM_C_GOTO(<LABEL>)
|
||||
goto <LABEL>
|
||||
OP<X>_TYPE
|
||||
opline->op<X>.op_type
|
||||
GET_OP<X>_ZVAL_PTR(<TYPE>)
|
||||
get_zval_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
|
||||
GET_OP<X>_ZVAL_PTR_PTR(<TYPE>)
|
||||
get_zval_ptr_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
|
||||
GET_OP<X>_OBJ_ZVAL_PTR(<TYPE>)
|
||||
get_obj_zval_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
|
||||
GET_OP<X>_OBJ_ZVAL_PTR_PTR(<TYPE>)
|
||||
get_obj_zval_ptr_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
|
||||
IS_OP<X>_TMP_FREE()
|
||||
IS_TMP_FREE(free_op<X>)
|
||||
FREE_OP<X>()
|
||||
FREE_OP(free_op<X>)
|
||||
FREE_OP<X>_IF_VAR()
|
||||
FREE_VAR(free_op<X>)
|
||||
FREE_OP<X>_VAR_PTR()
|
||||
FREE_VAR_PTR(free_op<X>)
|
||||
|
||||
|
||||
Executor's helpers can be defined without parameters or with one parameter.
|
||||
This is done with the following constructs:
|
||||
|
||||
ZEND_VM_HELPER(<HELPER-NAME>, <OP1_TYPES>, <OP2_TYPES>)
|
||||
{
|
||||
<HELPER'S CODE>
|
||||
}
|
||||
|
||||
ZEND_VM_HELPER_EX(<HELPER-NAME>, <OP1_TYPES>, <OP2_TYPES>, <PARAM_SPEC>)
|
||||
{
|
||||
<HELPER'S CODE>
|
||||
}
|
||||
|
||||
Executor's code is generated by PHP script zend_vm_gen.php it uses zend_vm_def.h
|
||||
and zend_vm_execute.skl as input and produces zend_vm_opcodes.h and
|
||||
zend_vm_execute.h. The first file is a list of opcode definitions. It is
|
||||
included from zend_compile.h. The second one is an executor code itself. It is
|
||||
included from zend_execute.c.
|
||||
|
||||
zend_vm_gen.php can produce different kind of executors. You can select
|
||||
different opcode threading model using --with-vm-kind=CALL|SWITCH|GOTO. You can
|
||||
disable opcode specialization using --without-specializer. You can include or
|
||||
exclude old executor together with specialized one using --without-old-executor.
|
||||
At last you can debug executor using original zend_vm_def.h or generated file
|
||||
zend_vm_execute.h. Debugging with original file requires --with-lines
|
||||
option. By default ZE2 uses the following command to generate executor:
|
||||
|
||||
$ php zend_vm_gen.php --with-vm-kind=CALL
|
||||
|
||||
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().
|
||||
+42
-1
@@ -545,7 +545,7 @@ Changes in the Zend Engine 2.0
|
||||
|
||||
<?php
|
||||
class Exception {
|
||||
function __construct(string $message=NULL, int $code=0) {
|
||||
function __construct(/*string*/ $message=NULL, /*int*/ $code=0) {
|
||||
if (func_num_args()) {
|
||||
$this->message = $message;
|
||||
}
|
||||
@@ -890,6 +890,47 @@ Changes in the Zend Engine 2.0
|
||||
the use of all abstract methods declared in the interfaces Iterator
|
||||
and IteratorAggregate respectively.
|
||||
|
||||
* Array overloading
|
||||
|
||||
Objects can be used with Array notation when they implement the
|
||||
interface ArrayAccess. You cannot use such objects in standard
|
||||
array functions, however you have full control over the array
|
||||
notation. This allows lazy initialization or read only array.
|
||||
|
||||
Note that setting [] results in a call to offsetSet() with
|
||||
index being NULL. That means that as with standard arrays you
|
||||
cannot store NULL keys.
|
||||
|
||||
Example:
|
||||
|
||||
<?php
|
||||
class ArrayClass implements ArrayAccess {
|
||||
public $a = array();
|
||||
|
||||
function offsetExists($index) {
|
||||
return array_key_exists($index, $this->a);
|
||||
}
|
||||
function offsetGet($index) {
|
||||
return $this->a[$index];
|
||||
}
|
||||
function offsetSet($index, $newval) {
|
||||
return $this->a[$index] = $newval;
|
||||
}
|
||||
function offsetUnset($index) {
|
||||
unset($this->a[$index]);
|
||||
}
|
||||
}
|
||||
|
||||
$obj = new ArrayClass;
|
||||
|
||||
$obj[0] = 'bla'; // calls offsetSet(0,'bla')
|
||||
$obj[] = 42; // calls offsetSet(NULL, 42)
|
||||
$x = $obj[0]; // calls offsetGet(0)
|
||||
$b = isset($obj[0]); // calls offsetExists(0)
|
||||
unset($obj[0]); // calls offsetUnset(0)
|
||||
?>
|
||||
|
||||
|
||||
* __METHOD__
|
||||
|
||||
The pseudo constant __METHOD__ shows the current class and method
|
||||
|
||||
+27
-19
@@ -7,20 +7,20 @@
|
||||
CFG=Zend - Win32 Release_inline
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "Zend.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "Zend.mak" CFG="Zend - Win32 Release_inline"
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
!MESSAGE "Zend - Win32 Release" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE "Zend - Win32 Debug" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE "Zend - Win32 Release_inline" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
@@ -95,7 +95,7 @@ LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
@@ -135,10 +135,6 @@ SOURCE=.\zend_default_classes.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_interfaces.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_dynamic_array.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -179,6 +175,10 @@ SOURCE=.\zend_ini_scanner.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_interfaces.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=".\zend_language_parser.c"
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -243,6 +243,10 @@ SOURCE=.\zend_stream.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_strtod.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_ts_hash.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -291,10 +295,6 @@ SOURCE=.\zend_default_classes.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_interfaces.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_dynamic_array.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -351,6 +351,10 @@ SOURCE=.\zend_ini_scanner.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_interfaces.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_istdiostream.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -415,6 +419,10 @@ SOURCE=.\zend_stream.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_strtod.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_ts_hash.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -449,7 +457,7 @@ BuildCmds= \
|
||||
|
||||
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -504,7 +512,7 @@ BuildCmds= \
|
||||
$(BuildCmds)
|
||||
# End Custom Build
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# End Group
|
||||
@@ -533,7 +541,7 @@ InputPath=.\zend_ini_scanner.l
|
||||
|
||||
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -570,7 +578,7 @@ InputPath=".\zend_language_scanner.l"
|
||||
|
||||
# End Custom Build
|
||||
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# End Group
|
||||
|
||||
+88
-23
@@ -4,22 +4,29 @@ dnl
|
||||
dnl This file contains Zend specific autoconf functions.
|
||||
dnl
|
||||
|
||||
AC_DEFUN(LIBZEND_BISON_CHECK,[
|
||||
|
||||
if test "$YACC" != "bison -y"; then
|
||||
AC_MSG_WARN(You will need bison if you want to regenerate the Zend parser.)
|
||||
else
|
||||
AC_MSG_CHECKING(bison version)
|
||||
set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | sed -e 's/\./ /' | tr -d 'a-z'`
|
||||
if test "${1}" = "1" -a "${2}" -lt "28"; then
|
||||
AC_MSG_WARN(You will need bison 1.28 if you want to regenerate the Zend parser (found ${1}.${2}).)
|
||||
fi
|
||||
AC_MSG_RESULT(${1}.${2} (ok))
|
||||
fi
|
||||
|
||||
AC_DEFUN([LIBZEND_CHECK_INT_TYPE],[
|
||||
AC_MSG_CHECKING(for $1)
|
||||
AC_TRY_COMPILE([
|
||||
#if HAVE_SYS_TYPES_H
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
#if HAVE_INTTYPES_H
|
||||
#include <inttypes.h>
|
||||
#elif HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#endif],
|
||||
[if (($1 *) 0)
|
||||
return 0;
|
||||
if (sizeof ($1))
|
||||
return 0;
|
||||
],[
|
||||
AC_DEFINE_UNQUOTED([HAVE_]translit($1,a-z_-,A-Z__), 1,[Define if $1 type is present. ])
|
||||
AC_MSG_RESULT(yes)
|
||||
], AC_MSG_RESULT(no)
|
||||
)dnl
|
||||
])
|
||||
|
||||
AC_DEFUN(LIBZEND_BASIC_CHECKS,[
|
||||
AC_DEFUN([LIBZEND_BASIC_CHECKS],[
|
||||
|
||||
AC_REQUIRE([AC_PROG_YACC])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
@@ -42,6 +49,8 @@ if test "$ac_cv_prog_gcc" = "yes" -a "`uname -s`" = "Rhapsody"; then
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS(
|
||||
inttypes.h \
|
||||
stdint.h \
|
||||
limits.h \
|
||||
malloc.h \
|
||||
string.h \
|
||||
@@ -58,12 +67,12 @@ dlfcn.h)
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_SIGNAL
|
||||
|
||||
AC_DEFUN(LIBZEND_LIBDL_CHECKS,[
|
||||
AC_DEFUN([LIBZEND_LIBDL_CHECKS],[
|
||||
AC_CHECK_LIB(dl, dlopen, [LIBS="-ldl $LIBS"])
|
||||
AC_CHECK_FUNC(dlopen,[AC_DEFINE(HAVE_LIBDL, 1,[ ])])
|
||||
])
|
||||
|
||||
AC_DEFUN(LIBZEND_DLSYM_CHECK,[
|
||||
AC_DEFUN([LIBZEND_DLSYM_CHECK],[
|
||||
dnl
|
||||
dnl Ugly hack to check if dlsym() requires a leading underscore in symbol name.
|
||||
dnl
|
||||
@@ -82,6 +91,10 @@ dnl This is required for QNX and may be some BSD derived systems
|
||||
AC_CHECK_TYPE( uint, unsigned int )
|
||||
AC_CHECK_TYPE( ulong, unsigned long )
|
||||
|
||||
dnl Check if int32_t and uint32_t are defined
|
||||
LIBZEND_CHECK_INT_TYPE(int32_t)
|
||||
LIBZEND_CHECK_INT_TYPE(uint32_t)
|
||||
|
||||
dnl Checks for library functions.
|
||||
AC_FUNC_VPRINTF
|
||||
AC_FUNC_MEMCMP
|
||||
@@ -95,7 +108,7 @@ ZEND_FP_EXCEPT
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN(LIBZEND_ENABLE_DEBUG,[
|
||||
AC_DEFUN([LIBZEND_ENABLE_DEBUG],[
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug Compile with debugging symbols],[
|
||||
@@ -106,10 +119,27 @@ AC_ARG_ENABLE(debug,
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN(LIBZEND_OTHER_CHECKS,[
|
||||
AC_DEFUN([LIBZEND_OTHER_CHECKS],[
|
||||
|
||||
AC_ARG_WITH(zend-vm,
|
||||
[ --with-zend-vm=TYPE Set virtual machine dispatch method. Type is
|
||||
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
|
||||
Disable the Zend memory manager - FOR DEVELOPERS ONLY!!],
|
||||
[
|
||||
ZEND_USE_ZEND_ALLOC=$enableval
|
||||
], [
|
||||
ZEND_USE_ZEND_ALLOC=yes
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE(maintainer-zts,
|
||||
[ --enable-maintainer-zts Enable thread safety - for code maintainers only],[
|
||||
[ --enable-maintainer-zts Enable thread safety - for code maintainers only!!],[
|
||||
ZEND_MAINTAINER_ZTS=$enableval
|
||||
],[
|
||||
ZEND_MAINTAINER_ZTS=no
|
||||
@@ -117,26 +147,32 @@ AC_ARG_ENABLE(maintainer-zts,
|
||||
|
||||
AC_ARG_ENABLE(inline-optimization,
|
||||
[ --disable-inline-optimization
|
||||
If building zend_execute.lo fails, try this switch.],[
|
||||
If building zend_execute.lo fails, try this switch],[
|
||||
ZEND_INLINE_OPTIMIZATION=$enableval
|
||||
],[
|
||||
ZEND_INLINE_OPTIMIZATION=yes
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE(memory-limit,
|
||||
[ --enable-memory-limit Compile with memory limit support. ], [
|
||||
[ --enable-memory-limit Compile with memory limit support], [
|
||||
ZEND_MEMORY_LIMIT=$enableval
|
||||
],[
|
||||
ZEND_MEMORY_LIMIT=no
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE(zend-multibyte,
|
||||
[ --enable-zend-multibyte Compile with zend multibyte support. ], [
|
||||
[ --enable-zend-multibyte Compile with zend multibyte support], [
|
||||
ZEND_MULTIBYTE=$enableval
|
||||
],[
|
||||
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)
|
||||
|
||||
AC_MSG_CHECKING(whether to enable thread-safety)
|
||||
AC_MSG_RESULT($ZEND_MAINTAINER_ZTS)
|
||||
|
||||
@@ -152,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"
|
||||
@@ -167,6 +216,12 @@ fi
|
||||
|
||||
test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
|
||||
|
||||
if test "$ZEND_USE_ZEND_ALLOC" = "yes"; then
|
||||
AC_DEFINE(USE_ZEND_ALLOC,1,[Use Zend memory manager])
|
||||
else
|
||||
AC_DEFINE(USE_ZEND_ALLOC,0,[Use Zend memory manager])
|
||||
fi
|
||||
|
||||
if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
|
||||
AC_DEFINE(ZTS,1,[ ])
|
||||
CFLAGS="$CFLAGS -DZTS"
|
||||
@@ -195,6 +250,13 @@ AC_C_INLINE
|
||||
|
||||
AC_SUBST(INLINE_CFLAGS)
|
||||
|
||||
AC_MSG_CHECKING(target system is Darwin)
|
||||
if echo "$target" | grep "darwin" > /dev/null; then
|
||||
AC_DEFINE([DARWIN], 1, [Define if the target system is darwin])
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
dnl test and set the alignment define for ZEND_MM
|
||||
dnl this also does the logarithmic test for ZEND_MM.
|
||||
@@ -237,6 +299,9 @@ int main()
|
||||
LIBZEND_MM_ALIGN_LOG2=`cat conftest.zend | cut -d ' ' -f 2`
|
||||
AC_DEFINE_UNQUOTED(ZEND_MM_ALIGNMENT, $LIBZEND_MM_ALIGN, [ ])
|
||||
AC_DEFINE_UNQUOTED(ZEND_MM_ALIGNMENT_LOG2, $LIBZEND_MM_ALIGN_LOG2, [ ])
|
||||
], [], [
|
||||
dnl cross-compile needs something here
|
||||
LIBZEND_MM_ALIGN=8
|
||||
])
|
||||
|
||||
AC_MSG_RESULT(done)
|
||||
@@ -244,7 +309,7 @@ AC_MSG_RESULT(done)
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN(LIBZEND_CPLUSPLUS_CHECKS,[
|
||||
AC_DEFUN([LIBZEND_CPLUSPLUS_CHECKS],[
|
||||
|
||||
])
|
||||
|
||||
@@ -276,6 +276,10 @@ SOURCE=.\zend_stream.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_strtod.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_ts_hash.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -452,6 +456,10 @@ SOURCE=.\zend_stream.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_strtod.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\zend_ts_hash.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
+11
-4
@@ -23,9 +23,7 @@
|
||||
#define ZEND_DLEXPORT
|
||||
#define ZEND_DLIMPORT
|
||||
|
||||
#ifndef NETWARE
|
||||
@TOP@
|
||||
#endif
|
||||
|
||||
#undef uint
|
||||
#undef ulong
|
||||
@@ -33,9 +31,7 @@
|
||||
/* Define if you want to enable memory limit support */
|
||||
#define MEMORY_LIMIT 0
|
||||
|
||||
#ifndef NETWARE
|
||||
@BOTTOM@
|
||||
#endif
|
||||
|
||||
#ifndef ZEND_ACCONFIG_H_NO_C_PROTOS
|
||||
|
||||
@@ -47,6 +43,10 @@
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_SELECT_H
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_IEEEFP_H
|
||||
# include <ieeefp.h>
|
||||
#endif
|
||||
@@ -65,6 +65,13 @@ int zend_sprintf(char *buffer, const char *format, ...);
|
||||
|
||||
#include <math.h>
|
||||
|
||||
/* To enable the is_nan, is_infinite and is_finite PHP functions */
|
||||
#ifdef NETWARE
|
||||
#define HAVE_ISNAN 1
|
||||
#define HAVE_ISINF 1
|
||||
#define HAVE_ISFINITE 1
|
||||
#endif
|
||||
|
||||
#ifndef zend_isnan
|
||||
#ifdef HAVE_ISNAN
|
||||
#define zend_isnan(a) isnan(a)
|
||||
|
||||
+61
-4
@@ -2,7 +2,37 @@ dnl $Id$
|
||||
dnl
|
||||
dnl This file contains local autoconf functions.
|
||||
|
||||
AC_DEFUN(ZEND_FP_EXCEPT,[
|
||||
AC_DEFUN([LIBZEND_BISON_CHECK],[
|
||||
# we only support certain bison versions
|
||||
bison_version_list="1.28 1.35 1.75 1.875 2.0"
|
||||
|
||||
# for standalone build of Zend Engine
|
||||
test -z "$SED" && SED=sed
|
||||
|
||||
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}"
|
||||
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
|
||||
])
|
||||
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)."
|
||||
AC_MSG_WARN([$bison_msg])
|
||||
YACC="exit 0;"
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
AC_DEFUN([ZEND_FP_EXCEPT],[
|
||||
AC_CACHE_CHECK(whether fp_except is defined, ac_cv_type_fp_except,[
|
||||
AC_TRY_COMPILE([
|
||||
#include <floatingpoint.h>
|
||||
@@ -23,7 +53,7 @@ fp_except x = (fp_except) 0;
|
||||
dnl
|
||||
dnl Check for broken sprintf()
|
||||
dnl
|
||||
AC_DEFUN(AC_ZEND_BROKEN_SPRINTF,[
|
||||
AC_DEFUN([AC_ZEND_BROKEN_SPRINTF],[
|
||||
AC_CACHE_CHECK(whether sprintf is broken, ac_cv_broken_sprintf,[
|
||||
AC_TRY_RUN([main() {char buf[20];exit(sprintf(buf,"testing 123")!=11); }],[
|
||||
ac_cv_broken_sprintf=no
|
||||
@@ -41,7 +71,34 @@ AC_DEFUN(AC_ZEND_BROKEN_SPRINTF,[
|
||||
AC_DEFINE_UNQUOTED(ZEND_BROKEN_SPRINTF, $ac_result, [Whether sprintf is broken])
|
||||
])
|
||||
|
||||
AC_DEFUN(AM_SET_LIBTOOL_VARIABLE,[
|
||||
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
|
||||
dnl
|
||||
dnl AC_ZEND_C_BIGENDIAN
|
||||
dnl Replacement macro for AC_C_BIGENDIAN
|
||||
dnl
|
||||
AC_DEFUN([AC_ZEND_C_BIGENDIAN],
|
||||
[AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian_php,
|
||||
[
|
||||
ac_cv_c_bigendian_php=unknown
|
||||
AC_TRY_RUN(
|
||||
[
|
||||
int main(void)
|
||||
{
|
||||
short one = 1;
|
||||
char *cp = (char *)&one;
|
||||
|
||||
if (*cp == 0) {
|
||||
return(0);
|
||||
} else {
|
||||
return(1);
|
||||
}
|
||||
}
|
||||
], [ac_cv_c_bigendian_php=yes], [ac_cv_c_bigendian_php=no], [ac_cv_c_bigendian_php=unknown])
|
||||
])
|
||||
if test $ac_cv_c_bigendian_php = yes; then
|
||||
AC_DEFINE(WORDS_BIGENDIAN, [], [Define if processor uses big-endian word])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([AM_SET_LIBTOOL_VARIABLE],[
|
||||
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
|
||||
])
|
||||
+412
@@ -0,0 +1,412 @@
|
||||
<?php
|
||||
|
||||
function simple() {
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
$a++;
|
||||
|
||||
for ($thisisalongname = 0; $thisisalongname < 1000000; $thisisalongname++)
|
||||
$thisisanotherlongname++;
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function simplecall() {
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
strlen("hallo");
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function hallo($a) {
|
||||
}
|
||||
|
||||
function simpleucall() {
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
hallo("hallo");
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function simpleudcall() {
|
||||
for ($i = 0; $i < 1000000; $i++)
|
||||
hallo2("hallo");
|
||||
}
|
||||
|
||||
function hallo2($a) {
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function mandel() {
|
||||
$w1=50;
|
||||
$h1=150;
|
||||
$recen=-.45;
|
||||
$imcen=0.0;
|
||||
$r=0.7;
|
||||
$s=0; $rec=0; $imc=0; $re=0; $im=0; $re2=0; $im2=0;
|
||||
$x=0; $y=0; $w2=0; $h2=0; $color=0;
|
||||
$s=2*$r/$w1;
|
||||
$w2=40;
|
||||
$h2=12;
|
||||
for ($y=0 ; $y<=$w1; $y=$y+1) {
|
||||
$imc=$s*($y-$h2)+$imcen;
|
||||
for ($x=0 ; $x<=$h1; $x=$x+1) {
|
||||
$rec=$s*($x-$w2)+$recen;
|
||||
$re=$rec;
|
||||
$im=$imc;
|
||||
$color=1000;
|
||||
$re2=$re*$re;
|
||||
$im2=$im*$im;
|
||||
while( ((($re2+$im2)<1000000) && $color>0)) {
|
||||
$im=$re*$im*2+$imc;
|
||||
$re=$re2-$im2+$rec;
|
||||
$re2=$re*$re;
|
||||
$im2=$im*$im;
|
||||
$color=$color-1;
|
||||
}
|
||||
if ( $color==0 ) {
|
||||
print "_";
|
||||
} else {
|
||||
print "#";
|
||||
}
|
||||
}
|
||||
print "<br>".$vbCr;
|
||||
flush();
|
||||
}
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function mandel2() {
|
||||
$b = " .:,;!/>)|&IH%*#";
|
||||
//float r, i, z, Z, t, c, C;
|
||||
for ($y=30; printf("\n"), $C = $y*0.1 - 1.5, $y--;){
|
||||
for ($x=0; $c = $x*0.04 - 2, $z=0, $Z=0, $x++ < 75;){
|
||||
for ($r=$c, $i=$C, $k=0; $t = $z*$z - $Z*$Z + $r, $Z = 2*$z*$Z + $i, $z=$t, $k<5000; $k++)
|
||||
if ($z*$z + $Z*$Z > 500000) break;
|
||||
echo $b[$k%16];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function Ack($m, $n){
|
||||
if($m == 0) return $n+1;
|
||||
if($n == 0) return Ack($m-1, 1);
|
||||
return Ack($m - 1, Ack($m, ($n - 1)));
|
||||
}
|
||||
|
||||
function ackermann($n) {
|
||||
$r = Ack(3,$n);
|
||||
print "Ack(3,$n): $r\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function ary($n) {
|
||||
for ($i=0; $i<$n; $i++) {
|
||||
$X[$i] = $i;
|
||||
}
|
||||
for ($i=$n-1; $i>=0; $i--) {
|
||||
$Y[$i] = $X[$i];
|
||||
}
|
||||
$last = $n-1;
|
||||
print "$Y[$last]\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function ary2($n) {
|
||||
for ($i=0; $i<$n;) {
|
||||
$X[$i] = $i; ++$i;
|
||||
$X[$i] = $i; ++$i;
|
||||
$X[$i] = $i; ++$i;
|
||||
$X[$i] = $i; ++$i;
|
||||
$X[$i] = $i; ++$i;
|
||||
|
||||
$X[$i] = $i; ++$i;
|
||||
$X[$i] = $i; ++$i;
|
||||
$X[$i] = $i; ++$i;
|
||||
$X[$i] = $i; ++$i;
|
||||
$X[$i] = $i; ++$i;
|
||||
}
|
||||
for ($i=$n-1; $i>=0; $i--) {
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
$Y[$i] = $X[$i]; --$i;
|
||||
}
|
||||
$last = $n-1;
|
||||
print "$Y[$last]\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function ary3($n) {
|
||||
for ($i=0; $i<$n; $i++) {
|
||||
$X[$i] = $i + 1;
|
||||
}
|
||||
for ($k=0; $k<1000; $k++) {
|
||||
for ($i=$n-1; $i>=0; $i--) {
|
||||
$Y[$i] += $X[$i];
|
||||
}
|
||||
}
|
||||
$last = $n-1;
|
||||
print "$Y[0] $Y[$last]\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function fibo_r($n){
|
||||
return(($n < 2) ? 1 : fibo_r($n - 2) + fibo_r($n - 1));
|
||||
}
|
||||
|
||||
function fibo($n) {
|
||||
$r = fibo_r($n);
|
||||
print "$r\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function hash($n) {
|
||||
for ($i = 1; $i <= $n; $i++) {
|
||||
$X[dechex($i)] = $i;
|
||||
}
|
||||
for ($i = $n; $i > 0; $i--) {
|
||||
if ($X[$i]) { $c++; }
|
||||
}
|
||||
print "$c\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function hash2($n) {
|
||||
for ($i = 0; $i < 10000; $i++) {
|
||||
$hash1["foo_$i"] = $i;
|
||||
}
|
||||
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";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function gen_random ($n) {
|
||||
global $LAST;
|
||||
return( ($n * ($LAST = ($LAST * IA + IC) % IM)) / IM );
|
||||
}
|
||||
|
||||
function heapsort_r($n, &$ra) {
|
||||
$l = ($n >> 1) + 1;
|
||||
$ir = $n;
|
||||
|
||||
while (1) {
|
||||
if ($l > 1) {
|
||||
$rra = $ra[--$l];
|
||||
} else {
|
||||
$rra = $ra[$ir];
|
||||
$ra[$ir] = $ra[1];
|
||||
if (--$ir == 1) {
|
||||
$ra[1] = $rra;
|
||||
return;
|
||||
}
|
||||
}
|
||||
$i = $l;
|
||||
$j = $l << 1;
|
||||
while ($j <= $ir) {
|
||||
if (($j < $ir) && ($ra[$j] < $ra[$j+1])) {
|
||||
$j++;
|
||||
}
|
||||
if ($rra < $ra[$j]) {
|
||||
$ra[$i] = $ra[$j];
|
||||
$j += ($i = $j);
|
||||
} else {
|
||||
$j = $ir + 1;
|
||||
}
|
||||
}
|
||||
$ra[$i] = $rra;
|
||||
}
|
||||
}
|
||||
|
||||
function heapsort($N) {
|
||||
global $LAST;
|
||||
|
||||
define("IM", 139968);
|
||||
define("IA", 3877);
|
||||
define("IC", 29573);
|
||||
|
||||
$LAST = 42;
|
||||
for ($i=1; $i<=$N; $i++) {
|
||||
$ary[$i] = gen_random(1);
|
||||
}
|
||||
heapsort_r($N, $ary);
|
||||
printf("%.10f\n", $ary[$N]);
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function mkmatrix ($rows, $cols) {
|
||||
$count = 1;
|
||||
$mx = array();
|
||||
for ($i=0; $i<$rows; $i++) {
|
||||
for ($j=0; $j<$cols; $j++) {
|
||||
$mx[$i][$j] = $count++;
|
||||
}
|
||||
}
|
||||
return($mx);
|
||||
}
|
||||
|
||||
function mmult ($rows, $cols, $m1, $m2) {
|
||||
$m3 = array();
|
||||
for ($i=0; $i<$rows; $i++) {
|
||||
for ($j=0; $j<$cols; $j++) {
|
||||
$x = 0;
|
||||
for ($k=0; $k<$cols; $k++) {
|
||||
$x += $m1[$i][$k] * $m2[$k][$j];
|
||||
}
|
||||
$m3[$i][$j] = $x;
|
||||
}
|
||||
}
|
||||
return($m3);
|
||||
}
|
||||
|
||||
function matrix($n) {
|
||||
$SIZE = 30;
|
||||
$m1 = mkmatrix($SIZE, $SIZE);
|
||||
$m2 = mkmatrix($SIZE, $SIZE);
|
||||
while ($n--) {
|
||||
$mm = mmult($SIZE, $SIZE, $m1, $m2);
|
||||
}
|
||||
print "{$mm[0][0]} {$mm[2][3]} {$mm[3][2]} {$mm[4][4]}\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function nestedloop($n) {
|
||||
$x = 0;
|
||||
for ($a=0; $a<$n; $a++)
|
||||
for ($b=0; $b<$n; $b++)
|
||||
for ($c=0; $c<$n; $c++)
|
||||
for ($d=0; $d<$n; $d++)
|
||||
for ($e=0; $e<$n; $e++)
|
||||
for ($f=0; $f<$n; $f++)
|
||||
$x++;
|
||||
print "$x\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function sieve($n) {
|
||||
$count = 0;
|
||||
while ($n-- > 0) {
|
||||
$count = 0;
|
||||
$flags = range (0,8192);
|
||||
for ($i=2; $i<8193; $i++) {
|
||||
if ($flags[$i] > 0) {
|
||||
for ($k=$i+$i; $k <= 8192; $k+=$i) {
|
||||
$flags[$k] = 0;
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
print "Count: $count\n";
|
||||
}
|
||||
|
||||
/****/
|
||||
|
||||
function strcat($n) {
|
||||
$str = "";
|
||||
while ($n-- > 0) {
|
||||
$str .= "hello\n";
|
||||
}
|
||||
$len = strlen($str);
|
||||
print "$len\n";
|
||||
}
|
||||
|
||||
/*****/
|
||||
|
||||
function getmicrotime()
|
||||
{
|
||||
$t = gettimeofday();
|
||||
return ($t['sec'] + $t['usec'] / 1000000);
|
||||
}
|
||||
|
||||
function start_test()
|
||||
{
|
||||
ob_start();
|
||||
return getmicrotime();
|
||||
}
|
||||
|
||||
function end_test($start, $name)
|
||||
{
|
||||
global $total;
|
||||
$end = getmicrotime();
|
||||
ob_end_clean();
|
||||
$total += $end-$start;
|
||||
$num = number_format($end-$start,3);
|
||||
$pad = str_repeat(" ", 24-strlen($name)-strlen($num));
|
||||
|
||||
echo $name.$pad.$num."\n";
|
||||
ob_start();
|
||||
return getmicrotime();
|
||||
}
|
||||
|
||||
function total()
|
||||
{
|
||||
global $total;
|
||||
$pad = str_repeat("-", 24);
|
||||
echo $pad."\n";
|
||||
$num = number_format($total,3);
|
||||
$pad = str_repeat(" ", 24-strlen("Total")-strlen($num));
|
||||
echo "Total".$pad.$num."\n";
|
||||
}
|
||||
|
||||
$t0 = $t = start_test();
|
||||
simple();
|
||||
$t = end_test($t, "simple");
|
||||
simplecall();
|
||||
$t = end_test($t, "simplecall");
|
||||
simpleucall();
|
||||
$t = end_test($t, "simpleucall");
|
||||
simpleudcall();
|
||||
$t = end_test($t, "simpleudcall");
|
||||
mandel();
|
||||
$t = end_test($t, "mandel");
|
||||
mandel2();
|
||||
$t = end_test($t, "mandel2");
|
||||
ackermann(7);
|
||||
$t = end_test($t, "ackermann(7)");
|
||||
ary(50000);
|
||||
$t = end_test($t, "ary(50000)");
|
||||
ary2(50000);
|
||||
$t = end_test($t, "ary2(50000)");
|
||||
ary3(2000);
|
||||
$t = end_test($t, "ary3(2000)");
|
||||
fibo(30);
|
||||
$t = end_test($t, "fibo(30)");
|
||||
hash(50000);
|
||||
$t = end_test($t, "hash(50000)");
|
||||
hash2(50);
|
||||
$t = end_test($t, "hash2(50)");
|
||||
heapsort(20000);
|
||||
$t = end_test($t, "heapsort(20000)");
|
||||
matrix(20);
|
||||
$t = end_test($t, "matrix(20)");
|
||||
nestedloop(12);
|
||||
$t = end_test($t, "nestedloop(12)");
|
||||
sieve(30);
|
||||
$t = end_test($t, "sieve(30)");
|
||||
strcat(200000);
|
||||
$t = end_test($t, "strcat(200000)");
|
||||
total($t0, "Total");
|
||||
?>
|
||||
@@ -10,10 +10,14 @@ AC_PROG_CC
|
||||
AM_PROG_LEX
|
||||
AM_PROG_CC_STDC
|
||||
ZEND_VERSION=$VERSION
|
||||
AC_ZEND_C_BIGENDIAN
|
||||
|
||||
dnl We want this one before the checks, so the checks can modify CFLAGS.
|
||||
test -z "$CFLAGS" && auto_cflags=1
|
||||
|
||||
AC_CHECK_SIZEOF(long, 8)
|
||||
AC_CHECK_SIZEOF(int, 4)
|
||||
|
||||
sinclude(Zend.m4)
|
||||
|
||||
LIBZEND_BASIC_CHECKS
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| 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 |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
| obtain it through the world-wide-web, please send a note to |
|
||||
| license@zend.com so we can mail you a copy immediately. |
|
||||
+----------------------------------------------------------------------+
|
||||
| Authors: |
|
||||
+----------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
/* $Id$ */
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
--TEST--
|
||||
Array type hint
|
||||
--FILE--
|
||||
<?php
|
||||
function foo(array $a) {
|
||||
echo count($a)."\n";
|
||||
}
|
||||
|
||||
foo(array(1,2,3));
|
||||
foo(123);
|
||||
?>
|
||||
--EXPECTF--
|
||||
3
|
||||
|
||||
Fatal error: Argument 1 must be an array in %sarray_type_hint_001.php on line 2
|
||||
@@ -39,5 +39,5 @@ echo "Done\n";
|
||||
2
|
||||
3
|
||||
Done
|
||||
test::destructor
|
||||
test::__destruct
|
||||
test::destructor
|
||||
@@ -18,57 +18,17 @@ for ($i = 0; $i < 8; $i++) {
|
||||
--EXPECTF--
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
string(3) "foo"
|
||||
'foo'
|
||||
|
||||
Notice: Undefined variable: a in %s on line %d
|
||||
|
||||
Strict Standards: Only variable references should be returned by reference in %s on line %d
|
||||
|
||||
|
||||
@@ -11,11 +11,19 @@ class array_iterator implements IteratorAggregate {
|
||||
|
||||
$obj = new array_iterator;
|
||||
|
||||
foreach ($obj as $property => $value) {
|
||||
var_dump($value);
|
||||
try
|
||||
{
|
||||
foreach ($obj as $property => $value)
|
||||
{
|
||||
var_dump($value);
|
||||
}
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
echo $e->getMessage() . "\n";
|
||||
}
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
Warning: Objects returned by array_iterator::getIterator() must be traversable or implement interface Iterator in %sbug26229.php on line %d
|
||||
===DONE===
|
||||
Objects returned by array_iterator::getIterator() must be traversable or implement interface Iterator
|
||||
===DONE===
|
||||
@@ -1,13 +0,0 @@
|
||||
--TEST--
|
||||
Bug #27145 (Errors messages print unmangled PPP property names)
|
||||
--FILE--
|
||||
<?php
|
||||
class a {
|
||||
protected static $v = "aa";
|
||||
}
|
||||
class b extends a {
|
||||
protected static $v = "bb";
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Cannot redeclare property static protected a::$v in class b in %s on line %d
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Bug #27304
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Staticexample
|
||||
{
|
||||
static function test()
|
||||
{
|
||||
var_dump(isset($this));
|
||||
}
|
||||
}
|
||||
|
||||
$b = new Staticexample();
|
||||
Staticexample::test();
|
||||
$b->test();
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
bool(false)
|
||||
===DONE===
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
--TEST--
|
||||
Bug #27598 (list() array key assignment causes HUGE memory leak)
|
||||
--FILE--
|
||||
<?php
|
||||
list($out[0]) = array(1);
|
||||
var_dump($out);
|
||||
?>
|
||||
--EXPECT--
|
||||
array(1) {
|
||||
[0]=>
|
||||
int(1)
|
||||
}
|
||||
@@ -2,6 +2,8 @@
|
||||
Bug #27641 (zend.ze1_compatibility_mode = On causes object properties to be misreported)
|
||||
--SKIPIF--
|
||||
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class A {
|
||||
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #27669 (PHP 5 didn't support all possibilities for calling static methods dynamically)
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(E_ALL & !E_STRICT);
|
||||
|
||||
class A {
|
||||
function hello() {
|
||||
echo "Hello World\n";
|
||||
}
|
||||
}
|
||||
$y[0] = 'hello';
|
||||
A::$y[0]();
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
Hello World
|
||||
===DONE===
|
||||
Executable
+72
@@ -0,0 +1,72 @@
|
||||
--TEST--
|
||||
Bug #27798 (private / protected variables not exposed by get_object_vars() inside class)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Base
|
||||
{
|
||||
public $Foo = 1;
|
||||
protected $Bar = 2;
|
||||
private $Baz = 3;
|
||||
|
||||
function __construct()
|
||||
{
|
||||
echo __METHOD__ . "\n";
|
||||
var_dump(get_object_vars($this));
|
||||
}
|
||||
}
|
||||
|
||||
class Child extends Base
|
||||
{
|
||||
private $Baz = 4;
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
echo __METHOD__ . "\n";
|
||||
var_dump(get_object_vars($this));
|
||||
}
|
||||
}
|
||||
|
||||
var_dump(get_object_vars(new Base));
|
||||
var_dump(get_object_vars(new Child));
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
Base::__construct
|
||||
array(3) {
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
["Bar"]=>
|
||||
int(2)
|
||||
["Baz"]=>
|
||||
int(3)
|
||||
}
|
||||
array(1) {
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
}
|
||||
Base::__construct
|
||||
array(3) {
|
||||
["Baz"]=>
|
||||
int(4)
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
["Bar"]=>
|
||||
int(2)
|
||||
}
|
||||
Child::__construct
|
||||
array(3) {
|
||||
["Baz"]=>
|
||||
int(4)
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
["Bar"]=>
|
||||
int(2)
|
||||
}
|
||||
array(1) {
|
||||
["Foo"]=>
|
||||
int(1)
|
||||
}
|
||||
===DONE===
|
||||
Executable
+65
@@ -0,0 +1,65 @@
|
||||
--TEST--
|
||||
Bug #28442 (Changing a static variables in a class changes it across sub/super classes.)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class ClassA
|
||||
{
|
||||
static $prop;
|
||||
}
|
||||
|
||||
class ClassB extends ClassA
|
||||
{
|
||||
static $prop;
|
||||
}
|
||||
|
||||
class ClassC extends ClassB
|
||||
{
|
||||
}
|
||||
|
||||
echo "===INIT===\n";
|
||||
ClassA::$prop = 'A';
|
||||
ClassB::$prop = 'B';
|
||||
ClassC::$prop = 'C';
|
||||
var_dump(ClassA::$prop);
|
||||
var_dump(ClassB::$prop);
|
||||
var_dump(ClassC::$prop);
|
||||
|
||||
echo "===SetA===\n";
|
||||
ClassA::$prop = 'A2';
|
||||
var_dump(ClassA::$prop);
|
||||
var_dump(ClassB::$prop);
|
||||
var_dump(ClassC::$prop);
|
||||
|
||||
echo "===SetB===\n";
|
||||
ClassB::$prop = 'B2';
|
||||
var_dump(ClassA::$prop);
|
||||
var_dump(ClassB::$prop);
|
||||
var_dump(ClassC::$prop);
|
||||
|
||||
echo "===SetC===\n";
|
||||
ClassC::$prop = 'C2';
|
||||
var_dump(ClassA::$prop);
|
||||
var_dump(ClassB::$prop);
|
||||
var_dump(ClassC::$prop);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
===INIT===
|
||||
string(1) "A"
|
||||
string(1) "C"
|
||||
string(1) "C"
|
||||
===SetA===
|
||||
string(2) "A2"
|
||||
string(1) "C"
|
||||
string(1) "C"
|
||||
===SetB===
|
||||
string(2) "A2"
|
||||
string(2) "B2"
|
||||
string(2) "B2"
|
||||
===SetC===
|
||||
string(2) "A2"
|
||||
string(2) "C2"
|
||||
string(2) "C2"
|
||||
===DONE===
|
||||
Executable
+74
@@ -0,0 +1,74 @@
|
||||
--TEST--
|
||||
Bug #28444 (Cannot access undefined property for object with overloaded property access)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Object
|
||||
{
|
||||
public $x;
|
||||
|
||||
function __construct($x)
|
||||
{
|
||||
$this->x = $x;
|
||||
}
|
||||
}
|
||||
|
||||
class Overloaded
|
||||
{
|
||||
public $props = array();
|
||||
public $x;
|
||||
|
||||
function __construct($x)
|
||||
{
|
||||
$this->x = new Object($x);
|
||||
}
|
||||
|
||||
function __get($prop)
|
||||
{
|
||||
echo __METHOD__ . "($prop)\n";
|
||||
return $this->props[$prop];
|
||||
}
|
||||
|
||||
function __set($prop, $val)
|
||||
{
|
||||
echo __METHOD__ . "($prop,$val)\n";
|
||||
$this->props[$prop] = $val;
|
||||
}
|
||||
}
|
||||
$y = new Overloaded(2);
|
||||
var_dump($y->x);
|
||||
var_dump($y->x->x);
|
||||
var_dump($y->x->x = 3);
|
||||
var_dump($y->y = 3);
|
||||
var_dump($y->y);
|
||||
var_dump($y->z = new Object(4));
|
||||
var_dump($y->z->x);
|
||||
$t = $y->z;
|
||||
var_dump($t->x = 5);
|
||||
var_dump($y->z->x = 6);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
object(Object)#%d (1) {
|
||||
["x"]=>
|
||||
int(2)
|
||||
}
|
||||
int(2)
|
||||
int(3)
|
||||
Overloaded::__set(y,3)
|
||||
int(3)
|
||||
Overloaded::__get(y)
|
||||
int(3)
|
||||
Overloaded::__set(z,Object id #3)
|
||||
object(Object)#%d (1) {
|
||||
["x"]=>
|
||||
int(4)
|
||||
}
|
||||
Overloaded::__get(z)
|
||||
int(4)
|
||||
Overloaded::__get(z)
|
||||
int(5)
|
||||
Overloaded::__get(z)
|
||||
int(6)
|
||||
===DONE===
|
||||
@@ -0,0 +1,11 @@
|
||||
--TEST--
|
||||
Bug #29015 (Incorrect behavior of member vars(non string ones)-numeric mem vars und others)
|
||||
--FILE--
|
||||
<?php
|
||||
$a = new stdClass();
|
||||
$x = "";
|
||||
$a->$x = "string('')";
|
||||
var_dump($a);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Cannot access empty property in %sbug29015.php on line 4
|
||||
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #29104 Function declaration in method doesn't work
|
||||
--FILE--
|
||||
<?php
|
||||
class A
|
||||
{
|
||||
function g()
|
||||
{
|
||||
echo "function g - begin\n";
|
||||
|
||||
function f()
|
||||
{
|
||||
echo "function f\n";
|
||||
}
|
||||
|
||||
echo "function g - end\n";
|
||||
}
|
||||
}
|
||||
|
||||
$a = new A;
|
||||
$a->g();
|
||||
f();
|
||||
?>
|
||||
--EXPECT--
|
||||
function g - begin
|
||||
function g - end
|
||||
function f
|
||||
@@ -0,0 +1,104 @@
|
||||
--TEST--
|
||||
Bug #29210 Function: is_callable - no support for private and protected classes
|
||||
--FILE--
|
||||
<?php
|
||||
class test_class {
|
||||
private function test_func1() {
|
||||
echo "test_func1\n";
|
||||
}
|
||||
protected function test_func2() {
|
||||
echo "test_func2\n";
|
||||
}
|
||||
static private function test_func3() {
|
||||
echo "test_func3\n";
|
||||
}
|
||||
static protected function test_func4() {
|
||||
echo "test_func4\n";
|
||||
}
|
||||
function test() {
|
||||
if (is_callable(array($this,'test_func1'))) {
|
||||
$this->test_func1();
|
||||
} else {
|
||||
echo "test_func1 isn't callable from inside\n";
|
||||
}
|
||||
if (is_callable(array($this,'test_func2'))) {
|
||||
$this->test_func2();
|
||||
} else {
|
||||
echo "test_func2 isn't callable from inside\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func3'))) {
|
||||
test_class::test_func3();
|
||||
} else {
|
||||
echo "test_func3 isn't callable from inside\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func4'))) {
|
||||
test_class::test_func4();
|
||||
} else {
|
||||
echo "test_func4 isn't callable from inside\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class foo extends test_class {
|
||||
function test() {
|
||||
if (is_callable(array($this,'test_func1'))) {
|
||||
$this->test_func1();
|
||||
} else {
|
||||
echo "test_func1 isn't callable from child\n";
|
||||
}
|
||||
if (is_callable(array($this,'test_func2'))) {
|
||||
$this->test_func2();
|
||||
} else {
|
||||
echo "test_func2 isn't callable from child\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func3'))) {
|
||||
test_class::test_func3();
|
||||
} else {
|
||||
echo "test_func3 isn't callable from child\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func4'))) {
|
||||
test_class::test_func4();
|
||||
} else {
|
||||
echo "test_func4 isn't callable from child\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$object = new test_class;
|
||||
$object->test();
|
||||
if (is_callable(array($object,'test_func1'))) {
|
||||
$object->test_func1();
|
||||
} else {
|
||||
echo "test_func1 isn't callable from outside\n";
|
||||
}
|
||||
if (is_callable(array($object,'test_func2'))) {
|
||||
$object->test_func2();
|
||||
} else {
|
||||
echo "test_func2 isn't callable from outside\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func3'))) {
|
||||
test_class::test_func3();
|
||||
} else {
|
||||
echo "test_func3 isn't callable from outside\n";
|
||||
}
|
||||
if (is_callable(array('test_class','test_func4'))) {
|
||||
test_class::test_func4();
|
||||
} else {
|
||||
echo "test_func4 isn't callable from outside\n";
|
||||
}
|
||||
$object = new foo();
|
||||
$object->test();
|
||||
?>
|
||||
--EXPECT--
|
||||
test_func1
|
||||
test_func2
|
||||
test_func3
|
||||
test_func4
|
||||
test_func1 isn't callable from outside
|
||||
test_func2 isn't callable from outside
|
||||
test_func3 isn't callable from outside
|
||||
test_func4 isn't callable from outside
|
||||
test_func1 isn't callable from child
|
||||
test_func2
|
||||
test_func3 isn't callable from child
|
||||
test_func4
|
||||
Executable
+34
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
Bug #29368 (The destructor is called when an exception is thrown from the constructor)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Foo
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
echo __METHOD__ . "\n";
|
||||
throw new Exception;
|
||||
}
|
||||
function __destruct()
|
||||
{
|
||||
echo __METHOD__ . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$bar = new Foo;
|
||||
} catch(Exception $exc)
|
||||
{
|
||||
echo "Caught exception!\n";
|
||||
}
|
||||
|
||||
unset($bar);
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
Foo::__construct
|
||||
Caught exception!
|
||||
===DONE===
|
||||
Executable
+31
@@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
Bug #29505 (get_class_vars() severely broken when used with arrays)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Test {
|
||||
public $empty = array();
|
||||
public $three = array(1, "b"=>"c", 3=>array());
|
||||
}
|
||||
|
||||
var_dump(get_class_vars('Test'));
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
array(2) {
|
||||
["empty"]=>
|
||||
array(0) {
|
||||
}
|
||||
["three"]=>
|
||||
array(3) {
|
||||
[0]=>
|
||||
int(1)
|
||||
["b"]=>
|
||||
string(1) "c"
|
||||
[3]=>
|
||||
array(0) {
|
||||
}
|
||||
}
|
||||
}
|
||||
===DONE===
|
||||
Executable
+41
@@ -0,0 +1,41 @@
|
||||
--TEST--
|
||||
Bug #29674 (inherited method doesn't have access to private variables of the derived class)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class BaseClass
|
||||
{
|
||||
private $private_base = "Base";
|
||||
|
||||
function printVars ()
|
||||
{
|
||||
var_dump($this->private_base);
|
||||
var_dump($this->private_child);
|
||||
}
|
||||
}
|
||||
|
||||
class ChildClass extends BaseClass
|
||||
{
|
||||
private $private_child = "Child";
|
||||
}
|
||||
|
||||
echo "===BASE===\n";
|
||||
$obj = new BaseClass;
|
||||
$obj->printVars();
|
||||
|
||||
echo "===CHILD===\n";
|
||||
$obj = new ChildClass;
|
||||
$obj->printVars();
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
===BASE===
|
||||
string(4) "Base"
|
||||
|
||||
Notice: Undefined property: BaseClass::$private_child in %sbug29674.php on line %d
|
||||
NULL
|
||||
===CHILD===
|
||||
string(4) "Base"
|
||||
|
||||
Fatal error: Cannot access private property ChildClass::$private_child in %sbug29674.php on line %d
|
||||
@@ -0,0 +1,62 @@
|
||||
--TEST--
|
||||
Bug #29689 (default value of protected member overrides default value of private)
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
private $foo = 'foo';
|
||||
private $foo2 = 'foo2';
|
||||
|
||||
function printFoo()
|
||||
{
|
||||
echo __CLASS__, ': ', $this->foo, " ", $this->foo2, "\n";
|
||||
}
|
||||
}
|
||||
|
||||
class bar extends foo {
|
||||
protected $foo = 'bar';
|
||||
|
||||
function printFoo()
|
||||
{
|
||||
parent::printFoo();
|
||||
echo __CLASS__, ': ', $this->foo, " ", $this->foo2, "\n";
|
||||
}
|
||||
}
|
||||
|
||||
class baz extends bar {
|
||||
protected $foo = 'baz';
|
||||
protected $foo2 = 'baz2';
|
||||
}
|
||||
|
||||
class bar2 extends foo {
|
||||
function printFoo()
|
||||
{
|
||||
parent::printFoo();
|
||||
echo __CLASS__, ': ', $this->foo, " ", $this->foo2, "\n";
|
||||
}
|
||||
}
|
||||
|
||||
class baz2 extends bar2 {
|
||||
protected $foo = 'baz2';
|
||||
protected $foo2 = 'baz22';
|
||||
}
|
||||
|
||||
$bar = new bar;
|
||||
$bar->printFoo();
|
||||
echo "---baz--\n";
|
||||
$baz = new baz();
|
||||
$baz->printFoo();
|
||||
echo "---baz2--\n";
|
||||
$baz = new baz2();
|
||||
$baz->printFoo();
|
||||
?>
|
||||
--EXPECTF--
|
||||
foo: foo foo2
|
||||
bar: bar
|
||||
Notice: Undefined property: bar::$foo2 in %s on line %d
|
||||
|
||||
---baz--
|
||||
foo: foo foo2
|
||||
bar: baz baz2
|
||||
---baz2--
|
||||
foo: foo foo2
|
||||
bar2: baz2 baz22
|
||||
@@ -0,0 +1,13 @@
|
||||
--TEST--
|
||||
Bug #29883 (isset gives invalid values on strings)
|
||||
--FILE--
|
||||
<?php
|
||||
$x = "bug";
|
||||
var_dump(isset($x[-1]));
|
||||
var_dump(isset($x["1"]));
|
||||
echo $x["1"]."\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
bool(true)
|
||||
u
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Bug #29890 (crash if error handler fails)
|
||||
--FILE--
|
||||
<?php
|
||||
function customErrorHandler($fErrNo,$fErrStr,$fErrFile,$fErrLine,&$fClass) {
|
||||
echo "error :".$fErrStr."\n";
|
||||
}
|
||||
|
||||
set_time_limit(5);
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
set_error_handler("customErrorHandler");
|
||||
|
||||
define("TEST",2);
|
||||
|
||||
//should return a notice that the constant is already defined
|
||||
|
||||
define("TEST",3);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
error :Constant TEST already defined
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #29896 (Backtrace argument list out of sync)
|
||||
--FILE--
|
||||
<?php
|
||||
function userErrorHandler($num, $msg, $file, $line, $vars)
|
||||
{
|
||||
debug_print_backtrace();
|
||||
}
|
||||
|
||||
$OldErrorHandler = set_error_handler("userErrorHandler");
|
||||
|
||||
function GenerateError1($A1)
|
||||
{
|
||||
$a = $b;
|
||||
}
|
||||
|
||||
function GenerateError2($A1)
|
||||
{
|
||||
GenerateError1("Test1");
|
||||
}
|
||||
|
||||
GenerateError2("Test2");
|
||||
?>
|
||||
--EXPECTF--
|
||||
#0 userErrorHandler(8, Undefined variable: b, %sbug29896.php, 11, Array ([A1] => Test1)) called at [%sbug29896.php:11]
|
||||
#1 GenerateError1(Test1) called at [%sbug29896.php:16]
|
||||
#2 GenerateError2(Test2) called at [%sbug29896.php:19]
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
--TEST--
|
||||
Bug #29944 (Function defined in switch, crashes)
|
||||
--FILE--
|
||||
<?php
|
||||
$a = 1;
|
||||
switch ($a) {
|
||||
case 1:
|
||||
function foo($a) {
|
||||
return "ok\n";
|
||||
}
|
||||
echo foo($a);
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #30080 (Passing array or non array of objects)
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
function foo($arrayobj) {
|
||||
var_dump($arrayobj);
|
||||
}
|
||||
}
|
||||
|
||||
new foo(array(new stdClass));
|
||||
?>
|
||||
--EXPECT--
|
||||
array(1) {
|
||||
[0]=>
|
||||
object(stdClass)#2 (0) {
|
||||
}
|
||||
}
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #30140 (Problem with array in static properties)
|
||||
--FILE--
|
||||
<?php
|
||||
class A {
|
||||
public static $test1 = true;
|
||||
public static $test2 = array();
|
||||
public static $test3 = "str";
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
}
|
||||
|
||||
A::$test1 = "x";
|
||||
A::$test2 = "y";
|
||||
A::$test3 = "z";
|
||||
var_dump(A::$test1);
|
||||
var_dump(A::$test2);
|
||||
var_dump(A::$test3);
|
||||
var_dump(B::$test1);
|
||||
var_dump(B::$test2);
|
||||
var_dump(B::$test3);
|
||||
?>
|
||||
--EXPECT--
|
||||
string(1) "x"
|
||||
string(1) "y"
|
||||
string(1) "z"
|
||||
string(1) "x"
|
||||
string(1) "y"
|
||||
string(1) "z"
|
||||
Executable
+34
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
Bug #30161 (Segmentation fault with exceptions)
|
||||
--FILE--
|
||||
<?php
|
||||
class FIIFO {
|
||||
|
||||
public function __construct() {
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class hariCow extends FIIFO {
|
||||
|
||||
public function __construct() {
|
||||
try {
|
||||
parent::__construct();
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
public function __toString() {
|
||||
return "ok\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$db = new hariCow;
|
||||
|
||||
echo $db;
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+52
@@ -0,0 +1,52 @@
|
||||
--TEST--
|
||||
Bug #30162 (Catching exception in constructor couses lose of $this)
|
||||
--FILE--
|
||||
<?php
|
||||
class FIIFO {
|
||||
|
||||
public function __construct() {
|
||||
$this->x = "x";
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class hariCow extends FIIFO {
|
||||
|
||||
public function __construct() {
|
||||
try {
|
||||
parent::__construct();
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
$this->y = "y";
|
||||
try {
|
||||
$this->z = new FIIFO;
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
public function __toString() {
|
||||
return "Rusticus in asino sedet.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
$db = new FIIFO();
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
var_dump($db);
|
||||
|
||||
$db = new hariCow;
|
||||
|
||||
var_dump($db);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: db in %sbug30162.php on line 35
|
||||
NULL
|
||||
object(hariCow)#1 (2) {
|
||||
["x"]=>
|
||||
string(1) "x"
|
||||
["y"]=>
|
||||
string(1) "y"
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
--TEST--
|
||||
Bug #30332 (zend.ze1_compatibility_mode isnt fully compatable with array_push())
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=on
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class x { };
|
||||
|
||||
$first = new x;
|
||||
$second = $first;
|
||||
$container = array();
|
||||
array_push($container, $first);
|
||||
|
||||
$first->first = " im in the first";
|
||||
|
||||
print_r($first);
|
||||
print_r($second);
|
||||
print_r($container);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Implicit cloning object of class 'x' because of 'zend.ze1_compatibility_mode' in %sbug30332.php on line 4
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'x' because of 'zend.ze1_compatibility_mode' in %sbug30332.php on line 5
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'x' because of 'zend.ze1_compatibility_mode' in %sbug30332.php on line 7
|
||||
x Object
|
||||
(
|
||||
[first] => im in the first
|
||||
)
|
||||
x Object
|
||||
(
|
||||
)
|
||||
Array
|
||||
(
|
||||
[0] => x Object
|
||||
(
|
||||
)
|
||||
|
||||
)
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Bug 30346 (arrayAcces & using $this)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Test implements ArrayAccess
|
||||
{
|
||||
public function __construct() { }
|
||||
public function offsetExists( $offset ) { return false; }
|
||||
public function offsetGet( $offset ) { return $offset; }
|
||||
public function offsetSet( $offset, $data ) { }
|
||||
public function offsetUnset( $offset ) { }
|
||||
}
|
||||
|
||||
$post = new Test;
|
||||
$id = 'page';
|
||||
echo $post[$id.'_show'];
|
||||
echo "\n";
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
page_show
|
||||
===DONE===
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #30394 (Assignment operators yield wrong result with __get/__set)
|
||||
--FILE--
|
||||
<?php
|
||||
class Container
|
||||
{
|
||||
public function __get( $what )
|
||||
{
|
||||
return $this->_p[ $what ];
|
||||
}
|
||||
|
||||
public function __set( $what, $value )
|
||||
{
|
||||
$this->_p[ $what ] = $value;
|
||||
}
|
||||
|
||||
private $_p = array();
|
||||
}
|
||||
|
||||
$c = new Container();
|
||||
$c->a = 1;
|
||||
$c->a += 1;
|
||||
print $c->a; // --> 2
|
||||
|
||||
print " - ";
|
||||
$c->a += max( 0, 1 );
|
||||
print $c->a; // --> 4 (!)
|
||||
?>
|
||||
--EXPECT--
|
||||
2 - 3
|
||||
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #30407 (Strange behaviour of default arguments)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
function haricow($a = 'one') {
|
||||
var_dump($a);
|
||||
$a = 'two';
|
||||
}
|
||||
|
||||
haricow();
|
||||
haricow();
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
string(3) "one"
|
||||
string(3) "one"
|
||||
===DONE===
|
||||
@@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Bug #30451 (static properties permissions broken)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class A {
|
||||
|
||||
protected static $property = TRUE;
|
||||
|
||||
protected static function method() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B extends A {
|
||||
|
||||
public function __construct() {
|
||||
|
||||
var_dump(self::method());
|
||||
var_dump(parent::method());
|
||||
|
||||
var_dump(self::$property);
|
||||
var_dump(parent::$property);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
new B;
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(true)
|
||||
@@ -0,0 +1,39 @@
|
||||
--TEST--
|
||||
Bug #30702 cannot initialize class variable from class constant
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
const C1=1;
|
||||
}
|
||||
|
||||
class bar extends foo {
|
||||
const C2=2;
|
||||
|
||||
public $c1=bar::C1;
|
||||
public $c2=bar::C2;
|
||||
|
||||
public $c3=self::C1;
|
||||
public $c4=self::C2;
|
||||
|
||||
public $c5=foo::C1;
|
||||
public $c6=parent::C1;
|
||||
}
|
||||
|
||||
$x= new bar();
|
||||
var_dump($x);
|
||||
?>
|
||||
--EXPECT--
|
||||
object(bar)#1 (6) {
|
||||
["c1"]=>
|
||||
int(1)
|
||||
["c2"]=>
|
||||
int(2)
|
||||
["c3"]=>
|
||||
int(1)
|
||||
["c4"]=>
|
||||
int(2)
|
||||
["c5"]=>
|
||||
int(1)
|
||||
["c6"]=>
|
||||
int(1)
|
||||
}
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Bug #30707 (Segmentation fault on exception in method)
|
||||
--FILE--
|
||||
<?php
|
||||
class C {
|
||||
function byePHP($plop) {
|
||||
echo "ok\n";
|
||||
}
|
||||
|
||||
function plip() {
|
||||
try {
|
||||
$this->plap($this->plop());
|
||||
} catch(Exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
function plap($a) {
|
||||
}
|
||||
|
||||
function plop() {
|
||||
throw new Exception;
|
||||
}
|
||||
}
|
||||
|
||||
$x = new C;
|
||||
$x->byePHP($x->plip());
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
--TEST--
|
||||
Bug #30725 (PHP segfaults when an exception is thrown in getIterator() within foreach)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Test implements IteratorAggregate
|
||||
{
|
||||
function getIterator()
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$it = new Test;
|
||||
foreach($it as $v)
|
||||
{
|
||||
echo "Fail\n";
|
||||
}
|
||||
echo "Wrong\n";
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
echo "Caught\n";
|
||||
}
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
Caught
|
||||
===DONE===
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Bug #30791 magic methods (__sleep/__wakeup/__toString) call __call if object is overloaded
|
||||
--FILE--
|
||||
<?php
|
||||
class a {
|
||||
public $a = 4;
|
||||
function __call($a,$b) {
|
||||
return "unknown method";
|
||||
}
|
||||
}
|
||||
$b = new a;
|
||||
echo $b,"\n";
|
||||
$c = unserialize(serialize($b));
|
||||
echo $c,"\n";
|
||||
var_dump($c);
|
||||
?>
|
||||
--EXPECT--
|
||||
Object id #1
|
||||
Object id #2
|
||||
object(a)#2 (1) {
|
||||
["a"]=>
|
||||
int(4)
|
||||
}
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #30820 (static member conflict with $this->member silently ignored)
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class Blah {
|
||||
private static $x;
|
||||
|
||||
public function show() {
|
||||
Blah::$x = 1;
|
||||
$this->x = 5; // no warning, but refers to different variable
|
||||
|
||||
echo 'Blah::$x = '. Blah::$x ."\n";
|
||||
echo '$this->x = '. $this->x ."\n";
|
||||
}
|
||||
}
|
||||
|
||||
$b = new Blah();
|
||||
$b->show();
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Accessing static property Blah::$x as non static in %sbug30820.php on line 7
|
||||
Blah::$x = 1
|
||||
|
||||
Strict Standards: Accessing static property Blah::$x as non static in %sbug30820.php on line 10
|
||||
$this->x = 5
|
||||
@@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
Bug #30889 Conflict between __get/__set and ++ operator
|
||||
--FILE--
|
||||
<?php
|
||||
class overloaded
|
||||
{
|
||||
private $values;
|
||||
function __construct()
|
||||
{
|
||||
$this->values = array('a' => 0);
|
||||
}
|
||||
function __set($name, $value)
|
||||
{
|
||||
print "set $name = $value ($name was ".$this->values[$name].")\n";
|
||||
$this->values[$name] = $value;
|
||||
}
|
||||
function __get($name)
|
||||
{
|
||||
print "get $name (returns ".$this->values[$name].")\n";
|
||||
return $this->values[$name];
|
||||
}
|
||||
}
|
||||
$test = new overloaded();
|
||||
$test->a++; // __get(), then __set()
|
||||
++$test->a;
|
||||
?>
|
||||
--EXPECT--
|
||||
get a (returns 0)
|
||||
set a = 1 (a was 0)
|
||||
get a (returns 1)
|
||||
set a = 2 (a was 1)
|
||||
@@ -0,0 +1,13 @@
|
||||
--TEST--
|
||||
Bug #30922 (reflective functions crash PHP when interfaces extend themselves)
|
||||
--FILE--
|
||||
<?php
|
||||
interface RecurisiveFooFar extends RecurisiveFooFar {}
|
||||
class A implements RecurisiveFooFar {}
|
||||
|
||||
$a = new A();
|
||||
var_dump($a instanceOf A);
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Interface RecurisiveFooFar cannot not implement itself in %sbug30922.php on line %d
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Bug #30998 (Crash when user error handler returns false)
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(-1);
|
||||
|
||||
function my_error($errno, $errstr, $errfile, $errline)
|
||||
{
|
||||
print "$errstr ($errno) in $errfile:$errline\n";
|
||||
return false;
|
||||
}
|
||||
set_error_handler('my_error');
|
||||
|
||||
$f = fopen("/tmp/blah", "r");
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
fopen(/tmp/blah): failed to open stream: No such file or directory (2) in %s:%d
|
||||
|
||||
Warning: fopen(/tmp/blah): failed to open stream: No such file or directory in %s on line %d
|
||||
===DONE===
|
||||
@@ -0,0 +1,53 @@
|
||||
--TEST--
|
||||
Bug #31098 (isset() / empty() incorrectly returns true in dereference of a wrong type)
|
||||
--FILE--
|
||||
<?php
|
||||
$a = '';
|
||||
var_dump(isset($a->b));
|
||||
$a = 'a';
|
||||
var_dump(isset($a->b));
|
||||
$a = '0';
|
||||
var_dump(isset($a->b));
|
||||
$a = '';
|
||||
var_dump(isset($a{'b'}));
|
||||
$a = 'a';
|
||||
var_dump(isset($a{'b'}));
|
||||
$a = '0';
|
||||
var_dump(isset($a{'b'}));
|
||||
|
||||
$simpleString = "Bogus String Text";
|
||||
echo isset($simpleString->wrong)?"bug\n":"ok\n";
|
||||
echo isset($simpleString["wrong"])?"ok\n":"bug\n";
|
||||
echo isset($simpleString[-1])?"bug\n":"ok\n";
|
||||
echo isset($simpleString[0])?"ok\n":"bug\n";
|
||||
echo isset($simpleString["0"])?"ok\n":"bug\n";
|
||||
echo isset($simpleString["16"])?"ok\n":"bug\n";
|
||||
echo isset($simpleString["17"])?"bug\n":"ok\n";
|
||||
echo isset($simpleString["wrong"][0])?"bug\n":"ok\n";
|
||||
echo $simpleString->wrong === null?"ok\n":"bug\n";
|
||||
echo $simpleString["wrong"] === "B"?"ok\n":"bug\n";
|
||||
echo $simpleString["0"] === "B"?"ok\n":"bug\n";
|
||||
$simpleString["wrong"] = "f";
|
||||
echo $simpleString["0"] === "f"?"ok\n":"bug\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
|
||||
Notice: Trying to get property of non-object in %sbug31098.php on line %d
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
ok
|
||||
Executable
+48
@@ -0,0 +1,48 @@
|
||||
--TEST--
|
||||
Bug #31102 (Exception not handled when thrown inside __autoload())
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$test = 0;
|
||||
|
||||
function __autoload($class)
|
||||
{
|
||||
global $test;
|
||||
|
||||
echo __METHOD__ . "($class,$test)\n";
|
||||
switch($test)
|
||||
{
|
||||
case 1:
|
||||
eval("class $class { function __construct(){throw new Exception('$class::__construct');}}");
|
||||
return;
|
||||
case 2:
|
||||
eval("class $class { function __construct(){throw new Exception('$class::__construct');}}");
|
||||
throw new Exception(__METHOD__);
|
||||
return;
|
||||
case 3:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
while($test++ < 5)
|
||||
{
|
||||
try
|
||||
{
|
||||
eval("\$bug = new Test$test();");
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
echo "Caught: " . $e->getMessage() . "\n";
|
||||
}
|
||||
}
|
||||
?>
|
||||
===DONE===
|
||||
<?php exit(0); ?>
|
||||
--EXPECTF--
|
||||
__autoload(Test1,1)
|
||||
Caught: Test1::__construct
|
||||
__autoload(Test2,2)
|
||||
Caught: __autoload
|
||||
__autoload(Test3,3)
|
||||
|
||||
Fatal error: Class 'Test3' not found in %sbug31102.php(%d) : eval()'d code on line 1
|
||||
Executable
+44
@@ -0,0 +1,44 @@
|
||||
--TEST--
|
||||
Bug #31177 (Memory leak)
|
||||
--FILE--
|
||||
<?php
|
||||
class DbGow {
|
||||
|
||||
public function query() {
|
||||
throw new Exception;
|
||||
}
|
||||
|
||||
public function select() {
|
||||
return new DbGowRecordSet($this->query());
|
||||
}
|
||||
|
||||
public function select2() {
|
||||
new DbGowRecordSet($this->query());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class DbGowRecordSet {
|
||||
|
||||
public function __construct($resource) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$db = new DbGow;
|
||||
|
||||
try {
|
||||
$rs = $db->select();
|
||||
} catch(Exception $e) {
|
||||
echo "ok\n";
|
||||
}
|
||||
|
||||
try {
|
||||
$db->select2();
|
||||
} catch(Exception $e) {
|
||||
echo "ok\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
ok
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Bug #31525 (object reference being dropped. $this getting lost)
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo {
|
||||
function getThis() {
|
||||
return $this;
|
||||
}
|
||||
function destroyThis() {
|
||||
$baz =& $this->getThis();
|
||||
}
|
||||
}
|
||||
$bar = new Foo();
|
||||
$bar->destroyThis();
|
||||
var_dump($bar);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Only variables should be assigned by reference in %sbug31525.php on line 7
|
||||
object(Foo)#1 (0) {
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
--TEST--
|
||||
Bug #31683 (changes to $name in __get($name) override future parameters)
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Foo implements ArrayAccess {
|
||||
|
||||
function __get($test) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
}
|
||||
|
||||
function __set($test, $val) {
|
||||
var_dump($test);
|
||||
var_dump($val);
|
||||
$test = 'bug';
|
||||
$val = 'bug';
|
||||
}
|
||||
|
||||
function __call($test, $arg) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
}
|
||||
|
||||
function offsetget($test) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
return 123;
|
||||
}
|
||||
|
||||
function offsetset($test, $val) {
|
||||
var_dump($test);
|
||||
var_dump($val);
|
||||
$test = 'bug';
|
||||
$val = 'bug';
|
||||
}
|
||||
|
||||
function offsetexists($test) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
}
|
||||
|
||||
function offsetunset($test) {
|
||||
var_dump($test);
|
||||
$test = 'bug';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$foo = new Foo();
|
||||
$a = "ok";
|
||||
|
||||
for ($i=0; $i < 2; $i++) {
|
||||
$foo->ok("ok");
|
||||
$foo->ok;
|
||||
$foo->ok = "ok";
|
||||
$x = $foo["ok"];
|
||||
$foo["ok"] = "ok";
|
||||
isset($foo["ok"]);
|
||||
unset($foo["ok"]);
|
||||
// $foo[];
|
||||
$foo[] = "ok";
|
||||
// isset($foo[]);
|
||||
// unset($foo[]);
|
||||
$foo->$a;
|
||||
echo "---\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
NULL
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
---
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
NULL
|
||||
string(2) "ok"
|
||||
string(2) "ok"
|
||||
---
|
||||
@@ -0,0 +1,16 @@
|
||||
--TEST--
|
||||
Bug #31720 (Invalid object callbacks not caught in array_walk())
|
||||
--FILE--
|
||||
<?php
|
||||
$array = array('at least one element');
|
||||
|
||||
array_walk($array, array($nonesuchvar,'show'));
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: nonesuchvar in %s on line %d
|
||||
|
||||
Notice: Non-callable array passed to zend_call_function() in %s on line %d
|
||||
|
||||
Warning: array_walk(): Unable to call Array() - function does not exist in %s on line %d
|
||||
===DONE===
|
||||
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Bug #31828 (Crash with zend.ze1_compatibility_mode=On)
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=on
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
$o = new stdClass();
|
||||
$o->id = 77;
|
||||
$o->name = "Aerospace";
|
||||
$a[] = $o;
|
||||
$a = $a[0];
|
||||
print_r($a);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug31828.php on line 2
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug31828.php on line 5
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug31828.php on line 6
|
||||
stdClass Object
|
||||
(
|
||||
[id] => 77
|
||||
[name] => Aerospace
|
||||
)
|
||||
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #32080 (segfault when assigning object to itself with zend.ze1_compatibility_mode=On)
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=on
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class test { }
|
||||
$t = new test;
|
||||
$t = $t; // gives segfault
|
||||
var_dump($t);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Implicit cloning object of class 'test' because of 'zend.ze1_compatibility_mode' in %sbug32080.php on line 3
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'test' because of 'zend.ze1_compatibility_mode' in %sbug32080.php on line 5
|
||||
object(test)#%d (0) {
|
||||
}
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
Bug #32226 (SEGV with exception handler on non existing instance)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class A
|
||||
{
|
||||
public function A()
|
||||
{
|
||||
set_exception_handler(array($this, 'EH'));
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
public function EH()
|
||||
{
|
||||
restore_exception_handler();
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$a = new A();
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
echo "Caught\n";
|
||||
}
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
Caught
|
||||
===DONE===
|
||||
Executable
+47
@@ -0,0 +1,47 @@
|
||||
--TEST--
|
||||
Bug #32252 (Segfault when offsetSet throws an Exception (only without debug))
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Test implements ArrayAccess
|
||||
{
|
||||
function offsetExists($offset)
|
||||
{
|
||||
echo __METHOD__ . "($offset)\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
function offsetGet($offset)
|
||||
{
|
||||
echo __METHOD__ . "($offset)\n";
|
||||
return null;
|
||||
}
|
||||
|
||||
function offsetSet($offset, $value)
|
||||
{
|
||||
echo __METHOD__ . "($offset, $value)\n";
|
||||
throw new Exception("Ooops");
|
||||
}
|
||||
|
||||
function offsetUnset($offset)
|
||||
{
|
||||
echo __METHOD__ . "($offset)\n";
|
||||
}
|
||||
}
|
||||
|
||||
$list = new Test();
|
||||
try
|
||||
{
|
||||
$list[-1] = 123;
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
echo "CAUGHT\n";
|
||||
}
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
Test::offsetSet(-1, 123)
|
||||
CAUGHT
|
||||
===DONE===
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
--TEST--
|
||||
Bug #32290 (calling call_user_func_array() ends in infinite loop within child class)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class TestA
|
||||
{
|
||||
public function doSomething($i)
|
||||
{
|
||||
echo __METHOD__ . "($this)\n";
|
||||
return --$i;
|
||||
}
|
||||
}
|
||||
|
||||
class TestB extends TestA
|
||||
{
|
||||
public function doSomething($i)
|
||||
{
|
||||
echo __METHOD__ . "($this)\n";
|
||||
$i++;
|
||||
if ($i >= 5) return 5;
|
||||
return call_user_func_array(array("TestA","doSomething"), array($i));
|
||||
}
|
||||
}
|
||||
|
||||
$x = new TestB();
|
||||
var_dump($x->doSomething(1));
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
TestB::doSomething(Object id #%d)
|
||||
TestA::doSomething(Object id #%d)
|
||||
int(1)
|
||||
===DONE===
|
||||
Executable
+60
@@ -0,0 +1,60 @@
|
||||
--TEST--
|
||||
Bug #32296 get_class_methods output has changed between 5.0.2 and 5.0.3
|
||||
--FILE--
|
||||
<?php
|
||||
abstract class space{
|
||||
function __construct(){}
|
||||
abstract protected function unfold();
|
||||
}
|
||||
|
||||
abstract class shape extends space{
|
||||
private function x1() {}
|
||||
protected final function unfold(){}
|
||||
}
|
||||
|
||||
abstract class quad extends shape{
|
||||
private function x2() {}
|
||||
function buggy(){
|
||||
$c = get_class($this);
|
||||
$a = get_class_methods(get_class($this));
|
||||
$b = get_class_methods($this);
|
||||
print($c."\n".'a:');
|
||||
print_r($a);
|
||||
print('b:');
|
||||
print_r($b);
|
||||
}
|
||||
}
|
||||
|
||||
class square extends quad{}
|
||||
|
||||
$a = new square();
|
||||
$a->buggy();
|
||||
print_r(get_class_methods("square"));
|
||||
print_r(get_class_methods($a));
|
||||
?>
|
||||
--EXPECT--
|
||||
square
|
||||
a:Array
|
||||
(
|
||||
[0] => x2
|
||||
[1] => buggy
|
||||
[2] => unfold
|
||||
[3] => __construct
|
||||
)
|
||||
b:Array
|
||||
(
|
||||
[0] => x2
|
||||
[1] => buggy
|
||||
[2] => unfold
|
||||
[3] => __construct
|
||||
)
|
||||
Array
|
||||
(
|
||||
[0] => buggy
|
||||
[1] => __construct
|
||||
)
|
||||
Array
|
||||
(
|
||||
[0] => buggy
|
||||
[1] => __construct
|
||||
)
|
||||
Executable
+80
@@ -0,0 +1,80 @@
|
||||
--TEST--
|
||||
Bug #32322 (Return values by reference broken( using self::),example singleton instance)
|
||||
--INI--
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class test
|
||||
{
|
||||
private static $instance = null;
|
||||
private $myname = '';
|
||||
|
||||
private function __construct( $value = '' )
|
||||
{
|
||||
echo "New class $value created \n";
|
||||
$this -> myname = $value;
|
||||
}
|
||||
private function __clone() {}
|
||||
static public function getInstance()
|
||||
{
|
||||
if ( self::$instance == null )
|
||||
{
|
||||
self::$instance = new test('Singleton1');
|
||||
}
|
||||
else {
|
||||
echo "Using old class " . self::$instance -> myname . "\n";
|
||||
}
|
||||
return self::$instance;
|
||||
}
|
||||
static public function getInstance2()
|
||||
{
|
||||
static $instance2 = null;
|
||||
if ( $instance2 == null )
|
||||
{
|
||||
$instance2 = new test('Singleton2');
|
||||
}
|
||||
else {
|
||||
echo "Using old class " . $instance2 -> myname . "\n";
|
||||
}
|
||||
return $instance2;
|
||||
}
|
||||
public function __destruct()
|
||||
{
|
||||
if ( defined('SCRIPT_END') )
|
||||
{
|
||||
echo "Class " . $this -> myname . " destroyed at script end\n";
|
||||
} else {
|
||||
echo "Class " . $this -> myname . " destroyed beforce script end\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "Try static instance inside class :\n";
|
||||
$getCopyofSingleton = test::getInstance();
|
||||
$getCopyofSingleton = null;
|
||||
$getCopyofSingleton = &test::getInstance();
|
||||
$getCopyofSingleton = null;
|
||||
$getCopyofSingleton = test::getInstance();
|
||||
echo "Try static instance inside function :\n";
|
||||
$getCopyofSingleton2 = test::getInstance2();
|
||||
$getCopyofSingleton2 = null;
|
||||
$getCopyofSingleton2 = &test::getInstance2();
|
||||
$getCopyofSingleton2 = null;
|
||||
$getCopyofSingleton2 = test::getInstance2();
|
||||
|
||||
define('SCRIPT_END',1);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Try static instance inside class :
|
||||
New class Singleton1 created
|
||||
Using old class Singleton1
|
||||
|
||||
Strict Standards: Only variables should be assigned by reference in %sbug32322.php on line 49
|
||||
Using old class Singleton1
|
||||
Try static instance inside function :
|
||||
New class Singleton2 created
|
||||
Using old class Singleton2
|
||||
|
||||
Strict Standards: Only variables should be assigned by reference in %sbug32322.php on line 55
|
||||
Using old class Singleton2
|
||||
Class Singleton1 destroyed at script end
|
||||
Class Singleton2 destroyed at script end
|
||||
@@ -0,0 +1,19 @@
|
||||
--TEST--
|
||||
Bug #32427 Interfaces are not allowed 'static' access modifier
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
interface Example {
|
||||
public static function sillyError();
|
||||
}
|
||||
|
||||
class ExampleImpl implements Example {
|
||||
public static function sillyError() {
|
||||
echo "I am a silly error\n";
|
||||
}
|
||||
}
|
||||
|
||||
ExampleImpl::sillyError();
|
||||
?>
|
||||
--EXPECT--
|
||||
I am a silly error
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
--TEST--
|
||||
Bug #32428 (The @ warning error supression operator is broken)
|
||||
--FILE--
|
||||
<?php
|
||||
$data = @$not_exists;
|
||||
$data = @($not_exists);
|
||||
$data = @!$not_exists;
|
||||
$data = !@$not_exists;
|
||||
$data = @($not_exists+1);
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #32429 (method_exists() always return TRUE if __call method exists)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class TestClass {
|
||||
public function __construct() {
|
||||
var_dump(method_exists($this, 'test'));
|
||||
|
||||
if (method_exists($this, 'test')) {
|
||||
$this->test();
|
||||
}
|
||||
}
|
||||
|
||||
public function __call($name, $args) {
|
||||
throw new Exception('Call to undefined method'.get_class($this).'::'.$name.'()');
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$test = new TestClass;
|
||||
} catch (Exception $e) {
|
||||
exit($e->getMessage());
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #32596 (Segfault/Memory Leak by getClass (etc) in __destruct)
|
||||
--FILE--
|
||||
<?php
|
||||
class BUG {
|
||||
public $error = "please fix this thing, it wasted a nice part of my life!\n";
|
||||
static function instance() {return new BUG();}
|
||||
|
||||
function __destruct()
|
||||
{
|
||||
$c=get_class($this); unset($c);
|
||||
echo get_class($this) ."\n";
|
||||
if(defined('DEBUG_'.__CLASS__)){}
|
||||
$c=get_class($this); //memory leak only
|
||||
echo $this->error;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BUG::instance()->error;
|
||||
echo "this is still executed\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
BUG
|
||||
please fix this thing, it wasted a nice part of my life!
|
||||
this is still executed
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
--TEST--
|
||||
Bug #32674 exception in iterator causes crash
|
||||
--FILE--
|
||||
<?php
|
||||
class collection implements Iterator {
|
||||
|
||||
private $_elements = array();
|
||||
|
||||
public function __construct() {
|
||||
}
|
||||
|
||||
public function rewind() {
|
||||
reset($this->_elements);
|
||||
}
|
||||
|
||||
public function count() {
|
||||
return count($this->_elements);
|
||||
}
|
||||
|
||||
public function current() {
|
||||
$element = current($this->_elements);
|
||||
return $element;
|
||||
}
|
||||
|
||||
public function next() {
|
||||
$element = next($this->_elements);
|
||||
return $element;
|
||||
}
|
||||
|
||||
public function key() {
|
||||
$this->_fillCollection();
|
||||
$element = key($this->_elements);
|
||||
return $element;
|
||||
}
|
||||
|
||||
public function valid() {
|
||||
throw new Exception('shit happend');
|
||||
|
||||
return ($this->current() !== false);
|
||||
}
|
||||
}
|
||||
|
||||
class class2 {
|
||||
public $dummy;
|
||||
}
|
||||
|
||||
$obj = new class2();
|
||||
$col = new collection();
|
||||
|
||||
try {
|
||||
foreach($col as $co) {
|
||||
//irrelevant
|
||||
}
|
||||
echo 'shouldn`t get here';
|
||||
//$dummy = 'this will not crash';
|
||||
$obj->dummy = 'this will crash';
|
||||
} catch (Exception $e) {
|
||||
echo "ok\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Bug #32799 (crash: calling the corresponding global var during the destruct)
|
||||
--FILE--
|
||||
<?php
|
||||
class test{
|
||||
public $c=1;
|
||||
function __destruct (){
|
||||
$GLOBALS['p']->c++; // no warning
|
||||
print $GLOBALS['p']->c."\n"; // segfault
|
||||
var_dump($GLOBALS['p']);
|
||||
}
|
||||
}
|
||||
$p=new test;
|
||||
$p=null; //destroy the object by a new assignment (segfault)
|
||||
?>
|
||||
--EXPECT--
|
||||
2
|
||||
object(test)#1 (1) {
|
||||
["c"]=>
|
||||
int(2)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
--TEST--
|
||||
Bug #32833 Invalid opcode
|
||||
--FILE--
|
||||
<?php
|
||||
$test = array();
|
||||
$test[] .= "ok\n";
|
||||
echo $test[0];
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
@@ -0,0 +1,38 @@
|
||||
--TEST--
|
||||
Bug #32852 (Crash with singleton and __destruct when zend.ze1_compatibility_mode = On)
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=on
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
class crashme {
|
||||
private static $instance = null;
|
||||
|
||||
public function __construct() {
|
||||
self::$instance = $this;
|
||||
}
|
||||
|
||||
public function __destruct() {
|
||||
echo "i'm called\n";
|
||||
}
|
||||
|
||||
public static function singleton() {
|
||||
if (!isset(self::$instance)) {
|
||||
self::$instance = new crashme();
|
||||
}
|
||||
return self::$instance;
|
||||
}
|
||||
}
|
||||
|
||||
crashme::singleton();
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Implicit cloning object of class 'crashme' because of 'zend.ze1_compatibility_mode' in %sbug32852.php on line 6
|
||||
i'm called
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'crashme' because of 'zend.ze1_compatibility_mode' in %sbug32852.php on line 15
|
||||
i'm called
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'crashme' because of 'zend.ze1_compatibility_mode' in %sbug32852.php on line 17
|
||||
i'm called
|
||||
i'm called
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Bug #32993 (implemented Iterator function current() don't throw exception)
|
||||
--FILE--
|
||||
<?php
|
||||
class Test implements Iterator {
|
||||
|
||||
public $arr = array();
|
||||
|
||||
public function rewind() { return reset($this->arr); }
|
||||
public function current() { throw new Exception(); }
|
||||
public function key() { return key($this->arr); }
|
||||
public function next() { return next($this->arr); }
|
||||
public function valid() { return (current($this->arr) !== false); }
|
||||
}
|
||||
|
||||
$t = new Test();
|
||||
$t->arr = array(1, 2, 3);
|
||||
|
||||
try {
|
||||
foreach ($t as $v) {
|
||||
echo "$v\n";
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
; // handle exception
|
||||
}
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Bug #33116 (crash when assigning class name to global variable in __autoload)
|
||||
--FILE--
|
||||
<?php
|
||||
function __autoload($class)
|
||||
{
|
||||
$GLOBALS['include'][] = $class;
|
||||
eval("class DefClass{}");
|
||||
}
|
||||
|
||||
$a = new DefClass;
|
||||
print_r($a);
|
||||
print_r($GLOBALS['include']);
|
||||
?>
|
||||
--EXPECT--
|
||||
DefClass Object
|
||||
(
|
||||
)
|
||||
Array
|
||||
(
|
||||
[0] => DefClass
|
||||
)
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #33171 (foreach enumerates private fields declared in base classes)
|
||||
--FILE--
|
||||
<?php
|
||||
class A
|
||||
{
|
||||
private $c = "A's c";
|
||||
}
|
||||
|
||||
class B extends A
|
||||
{
|
||||
private $c = "B's c";
|
||||
|
||||
public function go()
|
||||
{
|
||||
foreach ($this as $key => $val)
|
||||
{
|
||||
echo "$key => $val\n";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$x = new B;
|
||||
$x->go();
|
||||
?>
|
||||
--EXPECT--
|
||||
c => B's c
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
--TEST--
|
||||
Bug #33243 (ze1_compatibility_mode does not work as expected)
|
||||
--INI--
|
||||
zend.ze1_compatibility_mode=1
|
||||
error_reporting=4095
|
||||
--FILE--
|
||||
<?php
|
||||
$a->y->z = 0;
|
||||
$b = $a; // should perform deep copy of $a
|
||||
$b->y->z = 1; // hence this should have no effect on $a
|
||||
var_dump($a);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Creating default object from empty value in %sbug33243.php on line 2
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug33243.php on line 3
|
||||
|
||||
Strict Standards: Implicit cloning object of class 'stdClass' because of 'zend.ze1_compatibility_mode' in %sbug33243.php on line 5
|
||||
object(stdClass)#%d (1) {
|
||||
["y"]=>
|
||||
object(stdClass)#%d (1) {
|
||||
["z"]=>
|
||||
int(0)
|
||||
}
|
||||
}
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
--TEST--
|
||||
Bug #33257 array_splice() inconsistent when passed function instead of variable
|
||||
--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--
|
||||
Fatal error: Only variables can be passed by reference in %sbug33257.php on line 10
|
||||
@@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #33277 (private method accessed by child class)
|
||||
--FILE--
|
||||
<?php
|
||||
class foo {
|
||||
private function bar() {
|
||||
echo "private!\n";
|
||||
}
|
||||
}
|
||||
|
||||
class fooson extends foo {
|
||||
function barson() {
|
||||
$this->bar();
|
||||
}
|
||||
}
|
||||
|
||||
class foo2son extends fooson {
|
||||
|
||||
function bar() {
|
||||
echo "public!\n";
|
||||
}
|
||||
}
|
||||
|
||||
$b = new foo2son();
|
||||
$b->barson();
|
||||
?>
|
||||
--EXPECT--
|
||||
public!
|
||||
Loaded 100 of 2168 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user