File tree 1 file changed +3
-1
lines changed
1 file changed +3
-1
lines changed Original file line number Diff line number Diff line change @@ -145,6 +145,7 @@ static spl_SplObjectStorageElement *spl_object_storage_create_element(zend_objec
145
145
return pelement ;
146
146
} /* }}} */
147
147
148
+ /* A faster version of spl_object_storage_attach used when neither SplObjectStorage->getHash nor SplObjectStorage->offsetSet is overridden. */
148
149
static spl_SplObjectStorageElement * spl_object_storage_attach_handle (spl_SplObjectStorage * intern , zend_object * obj , zval * inf ) /* {{{ */
149
150
{
150
151
uint32_t handle = obj -> handle ;
@@ -179,6 +180,7 @@ spl_SplObjectStorageElement *spl_object_storage_attach(spl_SplObjectStorage *int
179
180
if (EXPECTED (!(intern -> flags & SOS_OVERRIDDEN_WRITE_DIMENSION ))) {
180
181
return spl_object_storage_attach_handle (intern , obj , inf );
181
182
}
183
+ /* getHash or offsetSet is overridden. */
182
184
183
185
spl_SplObjectStorageElement * pelement , element ;
184
186
zend_hash_key key ;
@@ -198,7 +200,7 @@ spl_SplObjectStorageElement *spl_object_storage_attach(spl_SplObjectStorage *int
198
200
}
199
201
spl_object_storage_free_hash (intern , & key );
200
202
/* Call the old value's destructor last, in case it moves the entry */
201
- zval_ptr_dtor (& pelement -> inf );
203
+ zval_ptr_dtor (& zv_inf );
202
204
return pelement ;
203
205
}
204
206
You can’t perform that action at this time.
0 commit comments