Skip to content

Commit d8ef5ef

Browse files
Merge branch 'master' into array-push-packed-fill
2 parents 9d1523c + 6fc4017 commit d8ef5ef

120 files changed

Lines changed: 3048 additions & 470 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎NEWS‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
33
?? ??? ????, PHP 8.7.0alpha1
44

5+
- Curl:
6+
. curl_multi_exec() now throws a TypeError when still_running is not an int.
7+
(arshidkv12)
8+
59
- FPM:
610
. Use recommended TYPE, HELP order for OpenMetrics metadata.
711
(Marcel Hernandez)
@@ -15,11 +19,23 @@ PHP NEWS
1519
unconstructed Collator. (Ilia Alshanetsky)
1620
. Added optional $availableLocales argument to Locale::acceptFromHttp()
1721
(GH-24074). (David Carlier)
22+
. Fixed a double-free when Calendar::createInstance() or
23+
IntlCalendar::fromDateTime() fails after adopting a TimeZone.
24+
(Ilia Alshanetsky)
1825

1926
- Lexbor:
2027
. Merge patches lexbor/lexbor@8a14bc0 and lexbor/lexbor@f67ce4b, fixing a
2128
heap buffer overflow in :lexbor-contains() parsing and buffer overflows
2229
in malformed decode replay. (alexandre-daubois)
30+
. Merge patches lexbor/lexbor@859f100, lexbor/lexbor@a36e09a,
31+
lexbor/lexbor@b0f7412, lexbor/lexbor@1b215a8, lexbor/lexbor@385afff,
32+
lexbor/lexbor@e6c068f, lexbor/lexbor@327a8b6, lexbor/lexbor@917742f and
33+
lexbor/lexbor@e89c258, fixing dropped usernames containing an at sign,
34+
uninitialized memory in IDNA buffer growth, the encoding of a space
35+
before a query or fragment in an opaque path, a query or fragment lost
36+
after a dot segment in a path, replacement file drive paths, the output
37+
encoding used for percent-encoding, the URLSearchParams tail pointer and
38+
fragment serialization without a query. (alexandre-daubois)
2339

2440
- MBString:
2541
. Fixed bug GH-23106 (mb_strpos() reads past the end of a haystack ending in
@@ -68,6 +84,10 @@ PHP NEWS
6884
. Fixed exceptions from user-defined create_sid() handlers being replaced
6985
by return-value validation errors. (Ilia Alshanetsky)
7086

87+
- SimpleXML:
88+
. Fixed bug GH-12171 (SimpleXML property-proxy equality ignores element
89+
names). (Ilia Alshanetsky)
90+
7191
- SOAP:
7292
. Fixed the SOAP client accepting a response body shorter than its
7393
Content-Length and reusing the connection. (Ilia Alshanetsky)
@@ -99,11 +119,17 @@ PHP NEWS
99119
. Enforce max_filter_count: limit the number of filters that can be chained
100120
in a php://filter URL. (Sjoerd Langkemper)
101121
. Improved performance of array_push() on packed arrays. (mehmetcansahin)
122+
. Improved performance of array_chunk() when not preserving keys.
123+
(mehmetcansahin)
102124

103125
- URI:
104126
. Fix casing of enum cases in UriHostType and UrlHostType to match the RFC
105127
and PHP’s naming policy. (timwolla)
106128

129+
- XML:
130+
. Fixed xml_get_current_byte_index() returning negative values for byte
131+
indexes beyond 2 GiB on Windows x64. (Marc Bennewitz)
132+
107133
- Zlib:
108134
. Fixed inflate_init() dropping the preset dictionary for raw streams with
109135
a non-default window. (Ilia Alshanetsky)

‎UPGRADING‎

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ PHP 8.7 UPGRADE NOTES
1919
1. Backward Incompatible Changes
2020
========================================
2121

22+
- Curl:
23+
. curl_multi_exec() now throws a TypeError when still_running is not an int.
24+
2225
- PDO:
2326
. PDOStatement::bindColumn() now throws a ValueError when the column name is
2427
not present in the result set. It previously reported the condition
@@ -33,6 +36,13 @@ PHP 8.7 UPGRADE NOTES
3336
2. New Features
3437
========================================
3538

39+
- Intl:
40+
. Locale::acceptFromHttp() and locale_accept_from_http() now accept an
41+
optional $availableLocales array argument. When given, the
42+
Accept-Language header is matched against these locales instead of all
43+
locales known to ICU, and the matching entry is returned as passed.
44+
A ValueError is thrown if the array is empty or contains an invalid
45+
locale, and a TypeError if it contains a non-string value.
3646
- Streams:
3747
. The so_linger, so_rcvbuf and so_sndbuf stream socket context options are
3848
now also applied to unix and unix datagram sockets.
@@ -49,14 +59,6 @@ PHP 8.7 UPGRADE NOTES
4959
5. Changed Functions
5060
========================================
5161

52-
- Intl:
53-
. Locale::acceptFromHttp() and locale_accept_from_http() now accept an
54-
optional $availableLocales array argument. When given, the
55-
Accept-Language header is matched against these locales instead of all
56-
locales known to ICU, and the matching entry is returned as passed.
57-
A ValueError is thrown if the array is empty or contains an invalid
58-
locale, and a TypeError if it contains a non-string value.
59-
6062
========================================
6163
6. New Functions
6264
========================================
@@ -97,9 +99,12 @@ PHP 8.7 UPGRADE NOTES
9799
. Improved performance of strcspn() and strpbrk() when searching longer strings
98100
with a single-byte character mask.
99101
. Improved performance of array_push() on packed arrays.
102+
. Improved performance of array_chunk() when not preserving keys.
100103
. Improved performance of array_splice() when inserting without removing
101104
elements.
102105
. Improved performance of str_rot13().
106+
. Improved performance of pack() for large strings using the a, A and Z
107+
formats.
103108

104109
- MBString:
105110
. Improved performance of mb_strlen for UTF-8 strings.

‎Zend/Optimizer/sccp.c‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,11 @@ static inline zend_result ct_eval_isset_dim(zval *result, uint32_t extended_valu
456456

457457
ZVAL_BOOL(result, rv);
458458
return SUCCESS;
459+
} else if (IS_PARTIAL_OBJECT(op1)) {
460+
/* Objects may implement ArrayAccess or throw. */
461+
return FAILURE;
459462
} else {
463+
ZEND_ASSERT(Z_TYPE_P(op1) <= IS_DOUBLE);
460464
ZVAL_BOOL(result, (extended_value & ZEND_ISEMPTY));
461465
return SUCCESS;
462466
}

0 commit comments

Comments
 (0)