Skip to content

Commit c051b33

Browse files
committed
decoder: Remove redundant checks when initializing mixed hash table
1 parent 093fd57 commit c051b33

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/simdjson_decoder.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,17 @@ static zend_always_inline HashTable* simdjson_init_mixed_array(zval *zv, uint32_
105105

106106
ht = zend_new_array(size);
107107
#if PHP_VERSION_ID >= 80200
108-
zend_hash_real_init_mixed(ht); // Expect mixed array
108+
// zend_hash_real_init_mixed without unnecessary checks
109+
void *data;
110+
uint32_t nSize = ht->nTableSize;
111+
112+
ZEND_ASSERT(HT_SIZE_TO_MASK(nSize));
113+
114+
data = emalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)));
115+
ht->nTableMask = HT_SIZE_TO_MASK(nSize);
116+
HT_SET_DATA_ADDR(ht, data);
117+
HT_FLAGS(ht) = HASH_FLAG_STATIC_KEYS;
118+
HT_HASH_RESET(ht);
109119
#endif
110120
ZVAL_ARR(zv, ht);
111121
return ht;

0 commit comments

Comments
 (0)