X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=src%2Fphp_pq_object.h;h=47ccbbfa925ed33b2dda1af50092bf447d440f5d;hb=6e28a8741be3fccdaca960e492c31bc26837a4ed;hp=311f17f3a5525873e57b376655b739a84f45acdd;hpb=6c838021951716e5b37a0c891cd40c669268de8c;p=m6w6%2Fext-pq diff --git a/src/php_pq_object.h b/src/php_pq_object.h index 311f17f..47ccbbf 100644 --- a/src/php_pq_object.h +++ b/src/php_pq_object.h @@ -14,28 +14,34 @@ #define PHP_PQ_OBJECT_H typedef struct php_pq_object { - zend_object zo; - zend_object_value zv; - HashTable *prophandler; void *intern; + HashTable *prophandler; + zend_object zo; } php_pq_object_t; -typedef void (*php_pq_object_prophandler_func_t)(zval *object, void *o, zval *return_value TSRMLS_DC); +static inline void *PHP_PQ_OBJ(zval *zv, zend_object *zo) { + if (zv) { + zo = Z_OBJ_P(zv); + } + return (void *) (((char *) zo) - zo->handlers->offset); +} + +typedef void (*php_pq_object_prophandler_func_t)(zval *object, void *o, zval *return_value); typedef struct php_pq_object_prophandler { php_pq_object_prophandler_func_t read; php_pq_object_prophandler_func_t write; } php_pq_object_prophandler_t; -void php_pq_object_to_zval(void *o, zval **zv TSRMLS_DC); -void php_pq_object_to_zval_no_addref(void *o, zval **zv TSRMLS_DC); -void php_pq_object_addref(void *o TSRMLS_DC); -void php_pq_object_delref(void *o TSRMLS_DC); -HashTable *php_pq_object_debug_info(zval *object, int *temp TSRMLS_DC); -HashTable *php_pq_object_properties(zval *object TSRMLS_DC); -zend_class_entry *ancestor(zend_class_entry *ce); -zval *php_pq_object_read_prop(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC); -void php_pq_object_write_prop(zval *object, zval *member, zval *value, const zend_literal *key TSRMLS_DC); +extern void php_pq_object_to_zval(void *o, zval *zv); +extern void php_pq_object_to_zval_no_addref(void *o, zval *zv); +extern void php_pq_object_addref(void *o); +extern void php_pq_object_delref(void *o); +extern HashTable *php_pq_object_debug_info(zval *object, int *temp); +extern HashTable *php_pq_object_properties(zval *object); +extern zend_class_entry *ancestor(zend_class_entry *ce); +extern zval *php_pq_object_read_prop(zval *object, zval *member, int type, void **cache_slot, zval *tmp); +extern void php_pq_object_write_prop(zval *object, zval *member, zval *value, void **cache_slot); #endif