X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_api.h;h=a490347b211cdf4daf7165bc4a87b2ac7ab64c55;hp=809f1426419871057c72e4b0ac0ee6fbcbeb6553;hb=23d7e7f276852b4ed1bd2829fcca38c6db854563;hpb=6da3520587f9f79c7429501289512d2a2415b517 diff --git a/php_http_api.h b/php_http_api.h index 809f142..a490347 100644 --- a/php_http_api.h +++ b/php_http_api.h @@ -267,7 +267,9 @@ static inline zval *_convert_to_type(int type, zval *z) #define convert_to_type_ex(t, z, p) _convert_to_type_ex((t), (z), (p)) static inline zval *_convert_to_type_ex(int type, zval *z, zval **p) { - *p = z; + if (p) { + *p = z; + } if (Z_TYPE_P(z) != type) { switch (type) { case IS_NULL: convert_to_null_ex(&z); break; @@ -279,42 +281,16 @@ static inline zval *_convert_to_type_ex(int type, zval *z, zval **p) case IS_OBJECT: convert_to_object_ex(&z); break; } } - if (*p == z) { - *p = NULL; - } else { - *p = z; + if (p) { + if (*p == z) { + *p = NULL; + } else { + *p = z; + } } return z; } -#define zval_copy(t, z) _zval_copy((t), (z) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) -static inline zval *_zval_copy(int type, zval *z ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) -{ - zval *copy; - - copy = emalloc_rel(sizeof(zval)); - *copy = *z; - zval_copy_ctor(copy); - convert_to_type(type, copy); -#ifdef Z_SET_REFCOUNT - Z_SET_REFCOUNT_P(copy, 0); - Z_UNSET_ISREF_P(copy); -#else - copy->refcount = 0; - copy->is_ref = 0; -#endif - - return copy; -} - -#define zval_free(z) _zval_free(z) -static inline void _zval_free(zval **z) -{ - zval_dtor(*z); - FREE_ZVAL(*z); - *z = NULL; -} - typedef struct _HashKey { char *str; uint len;