From 75cb61c3590336ff697eb82f9309106cb8fb5704 Mon Sep 17 00:00:00 2001 From: twosee Date: Tue, 11 Jun 2019 22:07:32 +0800 Subject: [PATCH 1/2] Turn add_index_zval and add_next_index_zval into inline function --- Zend/zend_API.h | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/Zend/zend_API.h b/Zend/zend_API.h index d88fa5a85685c..f26a56bc3f37a 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -405,17 +405,19 @@ ZEND_API int add_assoc_zval_ex(zval *arg, const char *key, size_t key_len, zval #define add_assoc_stringl(__arg, __key, __str, __length) add_assoc_stringl_ex(__arg, __key, strlen(__key), __str, __length) #define add_assoc_zval(__arg, __key, __value) add_assoc_zval_ex(__arg, __key, strlen(__key), __value) -ZEND_API int add_index_long(zval *arg, zend_ulong idx, zend_long n); -ZEND_API int add_index_null(zval *arg, zend_ulong idx); -ZEND_API int add_index_bool(zval *arg, zend_ulong idx, int b); -ZEND_API int add_index_resource(zval *arg, zend_ulong idx, zend_resource *r); -ZEND_API int add_index_double(zval *arg, zend_ulong idx, double d); -ZEND_API int add_index_str(zval *arg, zend_ulong idx, zend_string *str); -ZEND_API int add_index_string(zval *arg, zend_ulong idx, const char *str); -ZEND_API int add_index_stringl(zval *arg, zend_ulong idx, const char *str, size_t length); - -#define add_index_zval(arg, index, value) \ - (zend_hash_index_update(Z_ARRVAL_P(arg), index, value) ? SUCCESS : FAILURE) +ZEND_API int add_index_long(zval *arg, zend_ulong index, zend_long n); +ZEND_API int add_index_null(zval *arg, zend_ulong index); +ZEND_API int add_index_bool(zval *arg, zend_ulong index, int b); +ZEND_API int add_index_resource(zval *arg, zend_ulong index, zend_resource *r); +ZEND_API int add_index_double(zval *arg, zend_ulong index, double d); +ZEND_API int add_index_str(zval *arg, zend_ulong index, zend_string *str); +ZEND_API int add_index_string(zval *arg, zend_ulong index, const char *str); +ZEND_API int add_index_stringl(zval *arg, zend_ulong index, const char *str, size_t length); + +static zend_always_inline int add_index_zval(zval *arg, zend_ulong index, zval *value) +{ + return zend_hash_index_update(Z_ARRVAL_P(arg), index, value) ? SUCCESS : FAILURE; +} ZEND_API int add_next_index_long(zval *arg, zend_long n); ZEND_API int add_next_index_null(zval *arg); @@ -426,8 +428,10 @@ ZEND_API int add_next_index_str(zval *arg, zend_string *str); ZEND_API int add_next_index_string(zval *arg, const char *str); ZEND_API int add_next_index_stringl(zval *arg, const char *str, size_t length); -#define add_next_index_zval(arg, value) \ - (zend_hash_next_index_insert(Z_ARRVAL_P(arg), value) ? SUCCESS : FAILURE) +static zend_always_inline int add_next_index_zval(zval *arg, zval *value) +{ + return zend_hash_next_index_insert(Z_ARRVAL_P(arg), value) ? SUCCESS : FAILURE; +} ZEND_API int array_set_zval_key(HashTable *ht, zval *key, zval *value); From 6c33445b89f474ff2416ad4cb3a9b51e3d412396 Mon Sep 17 00:00:00 2001 From: twosee Date: Tue, 11 Jun 2019 23:00:36 +0800 Subject: [PATCH 2/2] Remove the return value of add_index_zval --- Zend/zend_API.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Zend/zend_API.h b/Zend/zend_API.h index f26a56bc3f37a..a4bcb51f40610 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -414,9 +414,9 @@ ZEND_API int add_index_str(zval *arg, zend_ulong index, zend_string *str); ZEND_API int add_index_string(zval *arg, zend_ulong index, const char *str); ZEND_API int add_index_stringl(zval *arg, zend_ulong index, const char *str, size_t length); -static zend_always_inline int add_index_zval(zval *arg, zend_ulong index, zval *value) +static zend_always_inline void add_index_zval(zval *arg, zend_ulong index, zval *value) { - return zend_hash_index_update(Z_ARRVAL_P(arg), index, value) ? SUCCESS : FAILURE; + zend_hash_index_update(Z_ARRVAL_P(arg), index, value); } ZEND_API int add_next_index_long(zval *arg, zend_long n);