Skip to content

Commit 99b1a62

Browse files
committed
Properly update string type flags
1 parent 7674b5e commit 99b1a62

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

Zend/zend_variables.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,13 @@ ZEND_API void ZEND_FASTCALL _zval_copy_ctor_func(zval *zvalue ZEND_FILE_LINE_DC)
219219
{
220220
if (EXPECTED(Z_TYPE_P(zvalue) == IS_ARRAY)) {
221221
ZVAL_ARR(zvalue, zend_array_dup(Z_ARRVAL_P(zvalue)));
222+
} else if (EXPECTED(Z_TYPE_P(zvalue) == IS_STRING)) {
223+
CHECK_ZVAL_STRING_REL(Z_STR_P(zvalue));
224+
ZVAL_NEW_STR(zvalue, zend_string_dup(Z_STR_P(zvalue), 0));
225+
} else if (EXPECTED(Z_TYPE_P(zvalue) == IS_CONSTANT)) {
226+
CHECK_ZVAL_STRING_REL(Z_STR_P(zvalue));
227+
Z_STR_P(zvalue) = zend_string_dup(Z_STR_P(zvalue), 0);
228+
Z_TYPE_INFO_P(zvalue) = IS_CONSTANT_EX;
222229
} else if (EXPECTED(Z_TYPE_P(zvalue) == IS_STRING) ||
223230
EXPECTED(Z_TYPE_P(zvalue) == IS_CONSTANT)) {
224231
CHECK_ZVAL_STRING_REL(Z_STR_P(zvalue));

0 commit comments

Comments
 (0)