- add package.xml generated by $pecl pickle
[m6w6/ext-http] / php_http_std_defs.h
index 74db7d43070acab2bb822e69117519ffebee3651..ce42260c357a0eae495dea035be0739fb08e113f 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))
@@ -256,9 +263,7 @@ typedef int STATUS;
        { \
                zval *__tmp = GET_PROP(o, p); \
                if (__tmp) { \
-                       zval_dtor(__tmp); \
-                       FREE_ZVAL(__tmp); \
-                       __tmp = NULL; \
+                       zval_ptr_dtor(&__tmp); \
                } \
        }
 
@@ -305,7 +310,7 @@ typedef int STATUS;
 #      define HTTP_EMPTY_ARGS_EX(class, method, ret_ref)                       HTTP_BEGIN_ARGS_EX(class, method, ret_ref, 0) HTTP_END_ARGS
 #      define HTTP_ARGS(class, method)                                                         args_for_ ##class## _ ##method
 #      define HTTP_ARG_VAL(name, pass_ref)                                                     ZEND_ARG_INFO(pass_ref, name)
-#      define HTTP_ARG_OBJ(class, name, allow_null)                            ZEND_ARG_OBJ_INFO(1, name, class, allow_null)
+#      define HTTP_ARG_OBJ(class, name, allow_null)                            ZEND_ARG_OBJ_INFO(0, name, class, allow_null)
 #endif
 
 #ifdef ZEND_ENGINE_2
@@ -339,18 +344,13 @@ typedef int STATUS;
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(1) \
-                       ZEND_END_ARG_INFO(); \
- \
-                       static \
-                       ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_all, 1) \
-                               ZEND_ARG_PASS_INFO(1) \
-                       ZEND_END_ARG_INFO()
+                       ZEND_END_ARG_INFO();
+
 #      else
 #              define HTTP_DECLARE_ARG_PASS_INFO() \
                        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}; \
-                       static unsigned char http_arg_pass_ref_all[]={1, BYREF_FORCE_REST}
+                       static unsigned char http_arg_pass_ref_5[] = {5, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE};
 #      endif /* ZEND_ENGINE_2 */
 #else
 #      define HTTP_DECLARE_ARG_PASS_INFO()
@@ -373,6 +373,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 */