X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_std_defs.h;h=92defa0e2e6df3f1fd67966b1b000f10c5b11e2d;hp=833bcdb82b139cd23b19d7c2c2c728f418c8d194;hb=98e0618077ab00672dd0e6e134d4722e033d827e;hpb=e182678d6def86ac46dabdd30294e6a857c7a1f6 diff --git a/php_http_std_defs.h b/php_http_std_defs.h index 833bcdb..92defa0 100644 --- a/php_http_std_defs.h +++ b/php_http_std_defs.h @@ -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 | + | Copyright (c) 2004-2006, Michael Wallner | +--------------------------------------------------------------------+ */ @@ -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 */