12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #ifndef ZEND_WEAKREFS_H
- #define ZEND_WEAKREFS_H
- BEGIN_EXTERN_C()
- extern ZEND_API zend_class_entry *zend_ce_weakref;
- void zend_register_weakref_ce(void);
- void zend_weakrefs_init(void);
- void zend_weakrefs_shutdown(void);
- ZEND_API void zend_weakrefs_notify(zend_object *object);
- ZEND_API zval *zend_weakrefs_hash_add(HashTable *ht, zend_object *key, zval *pData);
- ZEND_API zend_result zend_weakrefs_hash_del(HashTable *ht, zend_object *key);
- static zend_always_inline void *zend_weakrefs_hash_add_ptr(HashTable *ht, zend_object *key, void *ptr) {
- zval tmp, *zv;
- ZVAL_PTR(&tmp, ptr);
- if ((zv = zend_weakrefs_hash_add(ht, key, &tmp))) {
- return Z_PTR_P(zv);
- } else {
- return NULL;
- }
- }
- END_EXTERN_C()
- #endif
|