@@ -109,15 +109,15 @@ static void zend_weakref_register(zend_object *object, void *payload) {
109109 void * tagged_ptr = Z_PTR_P (zv );
110110 if (ZEND_WEAKREF_GET_TAG (tagged_ptr ) == ZEND_WEAKREF_TAG_HT ) {
111111 HashTable * ht = ZEND_WEAKREF_GET_PTR (tagged_ptr );
112- zend_hash_index_add_new_ptr (ht , (zend_ulong ) payload , payload );
112+ zend_hash_index_add_new_ptr (ht , (zend_ulong )( uintptr_t ) payload , payload );
113113 return ;
114114 }
115115
116116 /* Convert simple pointer to hashtable. */
117117 HashTable * ht = emalloc (sizeof (HashTable ));
118118 zend_hash_init (ht , 0 , NULL , NULL , 0 );
119- zend_hash_index_add_new_ptr (ht , (zend_ulong ) tagged_ptr , tagged_ptr );
120- zend_hash_index_add_new_ptr (ht , (zend_ulong ) payload , payload );
119+ zend_hash_index_add_new_ptr (ht , (zend_ulong )( uintptr_t ) tagged_ptr , tagged_ptr );
120+ zend_hash_index_add_new_ptr (ht , (zend_ulong )( uintptr_t ) payload , payload );
121121 /* Replace the single WeakMap or WeakReference entry in EG(weakrefs) with a HashTable with 2 entries in place. */
122122 ZVAL_PTR (zv , ZEND_WEAKREF_ENCODE (ht , ZEND_WEAKREF_TAG_HT ));
123123}
@@ -146,11 +146,11 @@ static void zend_weakref_unregister(zend_object *object, void *payload, bool wea
146146
147147 HashTable * ht = ptr ;
148148#if ZEND_DEBUG
149- void * old_payload = zend_hash_index_find_ptr (ht , (zend_ulong ) payload );
149+ void * old_payload = zend_hash_index_find_ptr (ht , (zend_ulong )( uintptr_t ) payload );
150150 ZEND_ASSERT (old_payload && "Weakref not registered?" );
151151 ZEND_ASSERT (old_payload == payload );
152152#endif
153- zend_hash_index_del (ht , (zend_ulong ) payload );
153+ zend_hash_index_del (ht , (zend_ulong )( uintptr_t ) payload );
154154 if (zend_hash_num_elements (ht ) == 0 ) {
155155 GC_DEL_FLAGS (object , IS_OBJ_WEAKLY_REFERENCED );
156156 zend_hash_destroy (ht );
0 commit comments