File tree Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change 7
7
(krakjoe)
8
8
. Fixed bug #81068 (Double free in realpath_cache_clean()). (Dimitry Andric)
9
9
. Fixed bug #76359 (open_basedir bypass through adding ".."). (cmb)
10
+ . Fixed bug #81090 (Typed property performance degradation with .= operator).
11
+ (Nikita)
10
12
11
13
- OCI8:
12
14
. Fixed bug #81088 (error in regression test for oci_fetch_object() and
Original file line number Diff line number Diff line change @@ -1329,6 +1329,13 @@ static zend_never_inline void zend_binary_assign_op_typed_ref(zend_reference *re
1329
1329
{
1330
1330
zval z_copy ;
1331
1331
1332
+ /* Make sure that in-place concatenation is used if the LHS is a string. */
1333
+ if (opline -> extended_value == ZEND_CONCAT && Z_TYPE (ref -> val ) == IS_STRING ) {
1334
+ concat_function (& ref -> val , & ref -> val , value );
1335
+ ZEND_ASSERT (Z_TYPE (ref -> val ) == IS_STRING && "Concat should return string" );
1336
+ return ;
1337
+ }
1338
+
1332
1339
zend_binary_op (& z_copy , & ref -> val , value OPLINE_CC );
1333
1340
if (EXPECTED (zend_verify_ref_assignable_zval (ref , & z_copy , EX_USES_STRICT_TYPES ()))) {
1334
1341
zval_ptr_dtor (& ref -> val );
@@ -1342,6 +1349,13 @@ static zend_never_inline void zend_binary_assign_op_typed_prop(zend_property_inf
1342
1349
{
1343
1350
zval z_copy ;
1344
1351
1352
+ /* Make sure that in-place concatenation is used if the LHS is a string. */
1353
+ if (opline -> extended_value == ZEND_CONCAT && Z_TYPE_P (zptr ) == IS_STRING ) {
1354
+ concat_function (zptr , zptr , value );
1355
+ ZEND_ASSERT (Z_TYPE_P (zptr ) == IS_STRING && "Concat should return string" );
1356
+ return ;
1357
+ }
1358
+
1345
1359
zend_binary_op (& z_copy , zptr , value OPLINE_CC );
1346
1360
if (EXPECTED (zend_verify_property_type (prop_info , & z_copy , EX_USES_STRICT_TYPES ()))) {
1347
1361
zval_ptr_dtor (zptr );
You can’t perform that action at this time.
0 commit comments