- new signature for the negotiator, which doesn't mix return value types, but
[m6w6/ext-http] / php_http_std_defs.h
index c212d30d1b85f8efc1136e2e93994d5181d9092d..79b69ae9d294691a72d68ccc4612494c380bce1d 100644 (file)
@@ -52,6 +52,13 @@ typedef int STATUS;
        }
 #endif
 
+#define INIT_ZARR(zv, ht) \
+       { \
+               INIT_PZVAL(&(zv)); \
+               Z_TYPE(zv) = IS_ARRAY; \
+               Z_ARRVAL(zv) = (ht); \
+       }
+
 /* return bool (v == SUCCESS) */
 #define RETVAL_SUCCESS(v) RETVAL_BOOL(SUCCESS == (v))
 #define RETURN_SUCCESS(v) RETURN_BOOL(SUCCESS == (v))
@@ -315,6 +322,12 @@ typedef int STATUS;
 #ifdef HTTP_HAVE_CURL
 #      ifdef ZEND_ENGINE_2
 #              define HTTP_DECLARE_ARG_PASS_INFO() \
+                       static \
+                       ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_2, 0) \
+                               ZEND_ARG_PASS_INFO(0) \
+                               ZEND_ARG_PASS_INFO(1) \
+                       ZEND_END_ARG_INFO(); \
+ \
                        static \
                        ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_3, 0) \
                                ZEND_ARG_PASS_INFO(0) \
@@ -341,6 +354,7 @@ typedef int STATUS;
 
 #      else
 #              define HTTP_DECLARE_ARG_PASS_INFO() \
+                       static unsigned char http_arg_pass_ref_2[] = {2, BYREF_NONE, BYREF_FORCE}; \
                        static unsigned char http_arg_pass_ref_3[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE}; \
                        static unsigned char http_arg_pass_ref_4[] = {4, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE}; \
                        static unsigned char http_arg_pass_ref_5[] = {5, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE};
@@ -366,6 +380,31 @@ typedef int STATUS;
 #      endif
 #endif
 
+#ifndef ZVAL_ZVAL
+#define ZVAL_ZVAL(z, zv, copy, dtor) {  \
+               int is_ref, refcount;           \
+               is_ref = (z)->is_ref;           \
+               refcount = (z)->refcount;       \
+               *(z) = *(zv);                   \
+               if (copy) {                     \
+                       zval_copy_ctor(z);          \
+           }                               \
+               if (dtor) {                     \
+                       if (!copy) {                \
+                               ZVAL_NULL(zv);          \
+                       }                           \
+                       zval_ptr_dtor(&zv);         \
+           }                               \
+               (z)->is_ref = is_ref;           \
+               (z)->refcount = refcount;       \
+       }
+#endif
+#ifndef RETVAL_ZVAL
+#define RETVAL_ZVAL(zv, copy, dtor)            ZVAL_ZVAL(return_value, zv, copy, dtor)
+#endif
+#ifndef RETURN_ZVAL
+#define RETURN_ZVAL(zv, copy, dtor)            { RETVAL_ZVAL(zv, copy, dtor); return; }
+#endif
 
 
 #endif /* PHP_HTTP_STD_DEFS_H */