- solve that another way
[m6w6/ext-http] / php_http_std_defs.h
index 833bcdb82b139cd23b19d7c2c2c728f418c8d194..92defa0e2e6df3f1fd67966b1b000f10c5b11e2d 100644 (file)
@@ -6,7 +6,7 @@
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
-    | Copyright (c) 2004-2005, Michael Wallner <mike@php.net>            |
+    | Copyright (c) 2004-2006, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
 */
 
@@ -60,22 +60,22 @@ typedef int STATUS;
 #define RETVAL_SUCCESS(v) RETVAL_BOOL(SUCCESS == (v))
 #define RETURN_SUCCESS(v) RETURN_BOOL(SUCCESS == (v))
 /* return object(values) */
-#define RETVAL_OBJECT(o) \
-       RETVAL_OBJVAL((o)->value.obj)
-#define RETURN_OBJECT(o) \
-       RETVAL_OBJECT(o); \
+#define RETVAL_OBJECT(o, addref) \
+       RETVAL_OBJVAL((o)->value.obj, addref)
+#define RETURN_OBJECT(o, addref) \
+       RETVAL_OBJECT(o, addref); \
        return
-#define RETVAL_OBJVAL(ov) \
-       ZVAL_OBJVAL(return_value, ov) \
-       if (Z_OBJ_HT_P(return_value)->add_ref) { \
-               Z_OBJ_HT_P(return_value)->add_ref(return_value TSRMLS_CC); \
-       }
-#define RETURN_OBJVAL(ov) \
-       RETVAL_OBJVAL(ov); \
+#define RETVAL_OBJVAL(ov, addref) \
+       ZVAL_OBJVAL(return_value, ov, addref)
+#define RETURN_OBJVAL(ov, addref) \
+       RETVAL_OBJVAL(ov, addref); \
        return
-#define ZVAL_OBJVAL(zv, ov) \
+#define ZVAL_OBJVAL(zv, ov, addref) \
        (zv)->type = IS_OBJECT; \
-       (zv)->value.obj = (ov);
+       (zv)->value.obj = (ov);\
+       if (addref && Z_OBJ_HT_P(zv)->add_ref) { \
+               Z_OBJ_HT_P(zv)->add_ref((zv) TSRMLS_CC); \
+       }
 /* return property */
 #define RETVAL_PROP(n) RETVAL_PROP_EX(getThis(), n)
 #define RETURN_PROP(n) RETURN_PROP_EX(getThis(), n)
@@ -165,7 +165,7 @@ typedef int STATUS;
                        zend_hash_get_current_data_ex(hash, (void **) &val, &pos) == SUCCESS; \
                        zend_hash_move_forward_ex(hash, &pos))
 
-#define FOREACH_KEYLENVAL(pos, array, strkey, keylen, numkey, val) FOREACH_HASH_KEYVAL(pos, Z_ARRVAL_P(array), strkey, keylen, numkey, val)
+#define FOREACH_KEYLENVAL(pos, array, strkey, keylen, numkey, val) FOREACH_HASH_KEYLENVAL(pos, Z_ARRVAL_P(array), strkey, keylen, numkey, val)
 #define FOREACH_HASH_KEYLENVAL(pos, hash, strkey, keylen, numkey, val) \
        for (   zend_hash_internal_pointer_reset_ex(hash, &pos); \
                        zend_hash_get_current_key_ex(hash, &strkey, &keylen, &numkey, 0, &pos) != HASH_KEY_NON_EXISTANT && \
@@ -310,6 +310,7 @@ typedef int STATUS;
 #define HTTP_E_SOCKET                          10L
 #define HTTP_E_RESPONSE                                11L
 #define HTTP_E_URL                                     12L
+#define HTTP_E_QUERYSTRING                     13L
 
 #ifdef ZEND_ENGINE_2
 #      define HTTP_BEGIN_ARGS_EX(class, method, ret_ref, req_args)     static ZEND_BEGIN_ARG_INFO_EX(args_for_ ##class## _ ##method , 0, ret_ref, req_args)
@@ -377,15 +378,16 @@ typedef int STATUS;
                        ZEND_END_ARG_INFO(); \
 \
                        static \
-                       ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_3, 0) \
+                       ZEND_BEGIN_ARG_INFO(http_arg_pass_ref_4, 0) \
+                               ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(0) \
                                ZEND_ARG_PASS_INFO(1) \
                        ZEND_END_ARG_INFO();
 #      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_2[] = {2, BYREF_NONE, BYREF_FORCE}; \
+                       static unsigned char http_arg_pass_ref_4[] = {4, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE};
 #      endif /* ZEND_ENGINE_2 */
 #endif /* HTTP_HAVE_CURL */