X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_api.h;h=a490347b211cdf4daf7165bc4a87b2ac7ab64c55;hp=7163dc1fd8ab48118cb16a762550b3236960604d;hb=23d7e7f276852b4ed1bd2829fcca38c6db854563;hpb=22616d7660e06425a33ffefe748d4aa6067c2a43 diff --git a/php_http_api.h b/php_http_api.h index 7163dc1..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,37 +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); - copy->refcount = 0; - copy->is_ref = 0; - - 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;