Skip to content

Commit bca1ebf

Browse files
committed
Merge branch 'PHP-8.0'
* PHP-8.0: Create interned strings for internal union types Duplicate possibly persistent string in phar metadata clone
2 parents bf92bdd + bd2cd26 commit bca1ebf

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

Zend/zend_API.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2812,8 +2812,8 @@ ZEND_API zend_result zend_register_functions(zend_class_entry *scope, const zend
28122812
uint32_t j = 0;
28132813
while (true) {
28142814
const char *end = strchr(start, '|');
2815-
zend_string *str =
2816-
zend_string_init(start, end ? end - start : strlen(start), 1);
2815+
zend_string *str = zend_string_init_interned(
2816+
start, end ? end - start : strlen(start), 1);
28172817
list->types[j] = (zend_type) ZEND_TYPE_INIT_CLASS(str, 0, 0);
28182818
if (!end) {
28192819
break;

ext/phar/phar.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -677,13 +677,14 @@ void phar_metadata_tracker_copy(phar_metadata_tracker *dest, const phar_metadata
677677
/* }}} */
678678

679679
/**
680-
* Increment reference counts after a metadata entry was copied
680+
* Copy constructor for a non-persistent clone.
681681
*/
682682
void phar_metadata_tracker_clone(phar_metadata_tracker *tracker) /* {{{ */
683683
{
684684
Z_TRY_ADDREF_P(&tracker->val);
685685
if (tracker->str) {
686-
tracker->str = zend_string_copy(tracker->str);
686+
/* Duplicate the string, as the original may have been persistent. */
687+
tracker->str = zend_string_dup(tracker->str, false);
687688
}
688689
}
689690
/* }}} */

0 commit comments

Comments
 (0)