diff options
Diffstat (limited to 'ext/rpc/rpc.h')
-rw-r--r-- | ext/rpc/rpc.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/ext/rpc/rpc.h b/ext/rpc/rpc.h index 2d1b0f7697..bdffa8665c 100644 --- a/ext/rpc/rpc.h +++ b/ext/rpc/rpc.h @@ -1,11 +1,20 @@ #ifndef RPC_H #define RPC_H -#define CONSTRUCTOR __construct -#define CONSTRUCTOR_FN ZEND_FN(__construct) +#define FOREACH_HANDLER for (__handler_counter=0; __handler_counter < HANDLER_COUNT; __handler_counter++) +#define HANDLER handler_entries[__handler_counter] +#define HANDLER_COUNT (sizeof(handler_entries) / sizeof(rpc_handler_entry)) -#define GET_INTERNAL(intern) GET_INTERNAL_EX(intern, object) -#define GET_INTERNAL_EX(intern, object) rpc_internal **intern; \ - zend_hash_index_find(RPC_G(instance), object->value.obj.handle, (void **) &intern); +#define GET_INTERNAL(intern) rpc_internal **intern; \ + GET_INTERNAL_EX(intern, object) +#define GET_INTERNAL_EX(intern, object) if (zend_hash_index_find(instance, object->value.obj.handle, (void **) &intern) == FAILURE) { \ + /* TODO: exception */ \ + } + +#define RPC_REFCOUNT(intern) ((*intern)->refcount) +#define RPC_ADDREF(intern) (++RPC_REFCOUNT(intern)) +#define RPC_DELREF(intern) (--RPC_REFCOUNT(intern)) + +static int __handler_counter; #endif
\ No newline at end of file |