Refactor code.

This commit is contained in:
CismonX 2018-09-08 11:42:19 +08:00
parent 49543970cc
commit 50219ce708
1 changed files with 17 additions and 19 deletions

View File

@ -30,10 +30,10 @@
#define ELEMENT_SUBTRACT (1 << 1) #define ELEMENT_SUBTRACT (1 << 1)
#define ELEMENT_INTERSECT (0 << 1) #define ELEMENT_INTERSECT (0 << 1)
#define IS_COLLECTION_P(zval) \ #define IS_COLLECTION_P(val) \
Z_TYPE_P(zval) == IS_OBJECT && Z_OBJCE_P(zval) == collections_collection_ce Z_TYPE_P(val) == IS_OBJECT && Z_OBJCE_P(val) == collections_collection_ce
#define IS_PAIR(zval) \ #define IS_PAIR(val) \
Z_TYPE(zval) == IS_OBJECT && Z_OBJCE(zval) == collections_pair_ce Z_TYPE(val) == IS_OBJECT && Z_OBJCE(val) == collections_pair_ce
#define SEPARATE_COLLECTION(ht, obj) \ #define SEPARATE_COLLECTION(ht, obj) \
if (GC_REFCOUNT(ht) > 1) { \ if (GC_REFCOUNT(ht) > 1) { \
@ -46,16 +46,16 @@
#define INIT_FCI(fci, num_args) \ #define INIT_FCI(fci, num_args) \
zval params[num_args], retval; \ zval params[num_args], retval; \
(fci)->size = sizeof(zend_fcall_info); \ (fci)->size = sizeof(zend_fcall_info); \
(fci)->param_count = num_args; \ (fci)->param_count = (num_args); \
(fci)->retval = &retval; \ (fci)->retval = &retval; \
(fci)->params = params (fci)->params = params
#define CALLBACK_KEYVAL_INVOKE(params, bucket) \ #define CALLBACK_KEYVAL_INVOKE(params, bucket) \
ZVAL_COPY_VALUE(&params[0], &bucket->val); \ ZVAL_COPY_VALUE(&(params)[0], &(bucket)->val); \
if ((bucket)->key) { \ if ((bucket)->key) { \
ZVAL_STR(&params[1], (bucket)->key); \ ZVAL_STR(&(params)[1], (bucket)->key); \
} else { \ } else { \
ZVAL_LONG(&params[1], (bucket)->h); \ ZVAL_LONG(&(params)[1], (bucket)->h); \
} \ } \
zend_call_function(&fci, &fcc) zend_call_function(&fci, &fcc)
@ -96,26 +96,24 @@
#define ARRAY_CLONE(dest, src) \ #define ARRAY_CLONE(dest, src) \
zend_array* (dest) = zend_array_dup(src); zend_array* (dest) = zend_array_dup(src);
#define RETVAL_NEW_COLLECTION(collection) \ #define RETVAL_NEW_COLLECTION(ht) \
{ \ { \
zend_object* obj = create_collection_obj(); \ zend_object* _obj = create_collection_obj(); \
if (GC_REFCOUNT(collection) > 1) \ if (GC_REFCOUNT(ht) > 1) { \
GC_ADDREF(collection); \ GC_ADDREF(ht); \
obj->properties = collection; \ } \
RETVAL_OBJ(obj); \ _obj->properties = ht; \
RETVAL_OBJ(_obj); \
} }
#define RETURN_NEW_COLLECTION(collection) \ #define RETURN_NEW_COLLECTION(ht) \
{ \ { \
RETVAL_NEW_COLLECTION(collection); \ RETVAL_NEW_COLLECTION(ht); \
return; \ return; \
} }
typedef int (*equal_check_func_t)(zval*, zval*); typedef int (*equal_check_func_t)(zval*, zval*);
/// Unused global variable.
zval rv;
static zend_always_inline void pair_update_first(zend_object* obj, zval* value) static zend_always_inline void pair_update_first(zend_object* obj, zval* value)
{ {
zval_ptr_dtor(PAIR_FIRST(obj)); zval_ptr_dtor(PAIR_FIRST(obj));