@@ -38,7 +38,7 @@ typedef struct _zend_weakmap_iterator {
38
38
/* EG(weakrefs) is a map from a key corresponding to a zend_object pointer to all the WeakReference and/or WeakMap entries relating to that pointer.
39
39
*
40
40
* 1. For a single WeakReference,
41
- * the HashTable's corresponding value's tag is a ZEND_WEAKREF_TAG_REF and the pointer is a singleton WeakReference instance (zend_weakref *)for that zend_object pointer (from WeakReference::create()).
41
+ * the HashTable's corresponding value's tag is a ZEND_WEAKREF_TAG_REF and the pointer is a singleton WeakReference instance (zend_weakref *) for that zend_object pointer (from WeakReference::create()).
42
42
* 2. For a single WeakMap, the HashTable's corresponding value's tag is a ZEND_WEAKREF_TAG_MAP and the pointer is a WeakMap instance (zend_weakmap *).
43
43
* 3. For multiple values associated with the same zend_object pointer, the HashTable entry's tag is a ZEND_WEAKREF_TAG_HT with a HashTable mapping
44
44
* tagged pointers of at most 1 WeakReference and 1 or more WeakMaps to the same tagged pointer.
@@ -73,7 +73,7 @@ static inline void zend_weakref_unref_single(
73
73
} else {
74
74
/* unreferencing WeakMap entry (at ptr) with a key of object. */
75
75
ZEND_ASSERT (tag == ZEND_WEAKREF_TAG_MAP );
76
- zend_hash_index_del ((HashTable * ) ptr , zend_object_ptr_to_weakref_key (object ));
76
+ zend_hash_index_del ((HashTable * ) ptr , zend_object_to_weakref_key (object ));
77
77
}
78
78
}
79
79
@@ -96,7 +96,7 @@ static void zend_weakref_unref(zend_object *object, void *tagged_ptr) {
96
96
static void zend_weakref_register (zend_object * object , void * payload ) {
97
97
GC_ADD_FLAGS (object , IS_OBJ_WEAKLY_REFERENCED );
98
98
99
- zend_ulong obj_key = zend_object_ptr_to_weakref_key (object );
99
+ zend_ulong obj_key = zend_object_to_weakref_key (object );
100
100
zval * zv = zend_hash_index_lookup (& EG (weakrefs ), obj_key );
101
101
if (Z_TYPE_P (zv ) == IS_NULL ) {
102
102
ZVAL_PTR (zv , payload );
@@ -120,7 +120,7 @@ static void zend_weakref_register(zend_object *object, void *payload) {
120
120
}
121
121
122
122
static void zend_weakref_unregister (zend_object * object , void * payload , bool weakref_free ) {
123
- zend_ulong obj_key = zend_object_ptr_to_weakref_key (object );
123
+ zend_ulong obj_key = zend_object_to_weakref_key (object );
124
124
void * tagged_ptr = zend_hash_index_find_ptr (& EG (weakrefs ), obj_key );
125
125
ZEND_ASSERT (tagged_ptr && "Weakref not registered?" );
126
126
@@ -166,15 +166,15 @@ static void zend_weakref_unregister(zend_object *object, void *payload, bool wea
166
166
}
167
167
168
168
ZEND_API zval * zend_weakrefs_hash_add (HashTable * ht , zend_object * key , zval * pData ) {
169
- zval * zv = zend_hash_index_add (ht , zend_object_ptr_to_weakref_key (key ), pData );
169
+ zval * zv = zend_hash_index_add (ht , zend_object_to_weakref_key (key ), pData );
170
170
if (zv ) {
171
171
zend_weakref_register (key , ZEND_WEAKREF_ENCODE (ht , ZEND_WEAKREF_TAG_MAP ));
172
172
}
173
173
return zv ;
174
174
}
175
175
176
176
ZEND_API zend_result zend_weakrefs_hash_del (HashTable * ht , zend_object * key ) {
177
- zval * zv = zend_hash_index_find (ht , zend_object_ptr_to_weakref_key (key ));
177
+ zval * zv = zend_hash_index_find (ht , zend_object_to_weakref_key (key ));
178
178
if (zv ) {
179
179
zend_weakref_unregister (key , ZEND_WEAKREF_ENCODE (ht , ZEND_WEAKREF_TAG_MAP ), 1 );
180
180
return SUCCESS ;
@@ -191,7 +191,7 @@ void zend_weakrefs_init(void) {
191
191
void zend_weakrefs_notify (zend_object * object ) {
192
192
/* Annoyingly we can't use the HT destructor here, because we need access to the key (which
193
193
* is the object address), which is not provided to the dtor. */
194
- const zend_ulong obj_key = zend_object_ptr_to_weakref_key (object );
194
+ const zend_ulong obj_key = zend_object_to_weakref_key (object );
195
195
void * tagged_ptr = zend_hash_index_find_ptr (& EG (weakrefs ), obj_key );
196
196
#if ZEND_DEBUG
197
197
ZEND_ASSERT (tagged_ptr && "Tracking of the IS_OBJ_WEAKLY_REFERENCE flag should be precise" );
@@ -217,7 +217,7 @@ static zend_object* zend_weakref_new(zend_class_entry *ce) {
217
217
}
218
218
219
219
static zend_always_inline bool zend_weakref_find (zend_object * referent , zval * return_value ) {
220
- void * tagged_ptr = zend_hash_index_find_ptr (& EG (weakrefs ), zend_object_ptr_to_weakref_key (referent ));
220
+ void * tagged_ptr = zend_hash_index_find_ptr (& EG (weakrefs ), zend_object_to_weakref_key (referent ));
221
221
if (!tagged_ptr ) {
222
222
return 0 ;
223
223
}
@@ -319,7 +319,7 @@ static void zend_weakmap_free_obj(zend_object *object)
319
319
* Let freeing the corresponding values for WeakMap entries be done in zend_hash_destroy, freeing objects sequentially.
320
320
* The performance difference is notable for larger WeakMaps with worse cache locality. */
321
321
zend_weakref_unregister (
322
- zend_weakref_key_to_zend_object_ptr (obj_key ), ZEND_WEAKREF_ENCODE (& wm -> ht , ZEND_WEAKREF_TAG_MAP ), 0 );
322
+ zend_weakref_key_to_object (obj_key ), ZEND_WEAKREF_ENCODE (& wm -> ht , ZEND_WEAKREF_TAG_MAP ), 0 );
323
323
} ZEND_HASH_FOREACH_END ();
324
324
zend_hash_destroy (& wm -> ht );
325
325
zend_object_std_dtor (& wm -> std );
@@ -339,7 +339,7 @@ static zval *zend_weakmap_read_dimension(zend_object *object, zval *offset, int
339
339
340
340
zend_weakmap * wm = zend_weakmap_from (object );
341
341
zend_object * obj_addr = Z_OBJ_P (offset );
342
- zval * zv = zend_hash_index_find (& wm -> ht , zend_object_ptr_to_weakref_key (obj_addr ));
342
+ zval * zv = zend_hash_index_find (& wm -> ht , zend_object_to_weakref_key (obj_addr ));
343
343
if (zv == NULL ) {
344
344
if (type != BP_VAR_IS ) {
345
345
zend_throw_error (NULL ,
@@ -369,7 +369,7 @@ static void zend_weakmap_write_dimension(zend_object *object, zval *offset, zval
369
369
370
370
zend_weakmap * wm = zend_weakmap_from (object );
371
371
zend_object * obj_addr = Z_OBJ_P (offset );
372
- zend_ulong obj_key = zend_object_ptr_to_weakref_key (obj_addr );
372
+ zend_ulong obj_key = zend_object_to_weakref_key (obj_addr );
373
373
Z_TRY_ADDREF_P (value );
374
374
375
375
zval * zv = zend_hash_index_find (& wm -> ht , obj_key );
@@ -396,7 +396,7 @@ static int zend_weakmap_has_dimension(zend_object *object, zval *offset, int che
396
396
}
397
397
398
398
zend_weakmap * wm = zend_weakmap_from (object );
399
- zval * zv = zend_hash_index_find (& wm -> ht , zend_object_ptr_to_weakref_key (Z_OBJ_P (offset )));
399
+ zval * zv = zend_hash_index_find (& wm -> ht , zend_object_to_weakref_key (Z_OBJ_P (offset )));
400
400
if (!zv ) {
401
401
return 0 ;
402
402
}
@@ -416,7 +416,7 @@ static void zend_weakmap_unset_dimension(zend_object *object, zval *offset)
416
416
417
417
zend_weakmap * wm = zend_weakmap_from (object );
418
418
zend_object * obj_addr = Z_OBJ_P (offset );
419
- if (!zend_hash_index_exists (& wm -> ht , zend_object_ptr_to_weakref_key (obj_addr ))) {
419
+ if (!zend_hash_index_exists (& wm -> ht , zend_object_to_weakref_key (obj_addr ))) {
420
420
/* Object not in WeakMap, do nothing. */
421
421
return ;
422
422
}
@@ -445,7 +445,7 @@ static HashTable *zend_weakmap_get_properties_for(zend_object *object, zend_prop
445
445
zend_ulong obj_key ;
446
446
zval * val ;
447
447
ZEND_HASH_MAP_FOREACH_NUM_KEY_VAL (& wm -> ht , obj_key , val ) {
448
- zend_object * obj = zend_weakref_key_to_zend_object_ptr (obj_key );
448
+ zend_object * obj = zend_weakref_key_to_object (obj_key );
449
449
zval pair ;
450
450
array_init (& pair );
451
451
@@ -483,7 +483,7 @@ static zend_object *zend_weakmap_clone_obj(zend_object *old_object)
483
483
zval * val ;
484
484
ZEND_HASH_MAP_FOREACH_NUM_KEY_VAL (& new_wm -> ht , obj_key , val ) {
485
485
zend_weakref_register (
486
- zend_weakref_key_to_zend_object_ptr (obj_key ), ZEND_WEAKREF_ENCODE (new_wm , ZEND_WEAKREF_TAG_MAP ));
486
+ zend_weakref_key_to_object (obj_key ), ZEND_WEAKREF_ENCODE (new_wm , ZEND_WEAKREF_TAG_MAP ));
487
487
zval_add_ref (val );
488
488
} ZEND_HASH_FOREACH_END ();
489
489
return new_object ;
@@ -530,7 +530,7 @@ static void zend_weakmap_iterator_get_current_key(zend_object_iterator *obj_iter
530
530
ZEND_ASSERT (0 && "Must have integer key" );
531
531
}
532
532
533
- ZVAL_OBJ_COPY (key , zend_weakref_key_to_zend_object_ptr (num_key ));
533
+ ZVAL_OBJ_COPY (key , zend_weakref_key_to_object (num_key ));
534
534
}
535
535
536
536
static void zend_weakmap_iterator_move_forward (zend_object_iterator * obj_iter )
0 commit comments