fixed another new 5_3 incompatibility (bug #15065)
[m6w6/ext-http] / php_http_api.h
index 7163dc1fd8ab48118cb16a762550b3236960604d..44071222526466386977c8e557747708b2bf4c9d 100644 (file)
@@ -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;
@@ -341,10 +322,10 @@ typedef struct _HashKey {
 #define array_copy(src, dst) zend_hash_copy(dst, src, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *))
 #define ARRAY_JOIN_STRONLY 1
 #define ARRAY_JOIN_PRETTIFY 2
-#define array_join(src, dst, append, flags) zend_hash_apply_with_arguments(src, (append)?apply_array_append_func:apply_array_merge_func, 2, dst, (int)flags)
+#define array_join(src, dst, append, flags) zend_hash_apply_with_arguments(src HTTP_ZAPI_HASH_TSRMLS_CC, (append)?apply_array_append_func:apply_array_merge_func, 2, dst, (int)flags)
 
-extern int apply_array_append_func(void *pDest, int num_args, va_list args, zend_hash_key *hash_key);
-extern int apply_array_merge_func(void *pDest, int num_args, va_list args, zend_hash_key *hash_key);
+extern int apply_array_append_func(void *pDest HTTP_ZAPI_HASH_TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key);
+extern int apply_array_merge_func(void *pDest HTTP_ZAPI_HASH_TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key);
 
 #endif