Skip to content

Commit 7e59764

Browse files
committed
Remove unnecessary serialization step after refactoring
1 parent a3df886 commit 7e59764

File tree

1 file changed

+4
-15
lines changed

1 file changed

+4
-15
lines changed

ext/phar/phar.c

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,9 @@ void phar_metadata_tracker_try_ensure_has_serialized_data(phar_metadata_tracker
595595
/* }}} */
596596

597597
/**
598-
* Parse out metadata when phar_metadata_tracker_has_data is true
598+
* Parse out metadata when phar_metadata_tracker_has_data is true.
599+
*
600+
* Precondition: phar_metadata_tracker_has_data is true
599601
*/
600602
int phar_metadata_tracker_unserialize_or_copy(phar_metadata_tracker *tracker, zval *metadata, int persistent, HashTable *unserialize_options, const char* method_name) /* {{{ */
601603
{
@@ -613,20 +615,7 @@ int phar_metadata_tracker_unserialize_or_copy(phar_metadata_tracker *tracker, zv
613615
const char *start;
614616
/* Assert it should not be possible to create raw data in a persistent phar (i.e. from cache_list) */
615617

616-
if (has_unserialize_options && tracker->str == NULL) {
617-
/* If this specifies any unserialization options, assume that this will need to serialize the data to unserialize it later */
618-
smart_str main_metadata_str = {0};
619-
php_serialize_data_t metadata_hash;
620-
ZEND_ASSERT(!persistent);
621-
PHP_VAR_SERIALIZE_INIT(metadata_hash);
622-
php_var_serialize(&main_metadata_str, &tracker->val, &metadata_hash);
623-
PHP_VAR_SERIALIZE_DESTROY(metadata_hash);
624-
if (EG(exception)) {
625-
return FAILURE;
626-
}
627-
tracker->str = main_metadata_str.s;
628-
}
629-
/* precondition: This has data */
618+
/* Precondition: This has serialized data, either from setMetadata or the phar file. */
630619
ZEND_ASSERT(tracker->str != NULL);
631620
ZVAL_NULL(metadata);
632621
start = ZSTR_VAL(tracker->str);

0 commit comments

Comments
 (0)