X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=php_http_std_defs.h;h=86f2ec0684e8842f85d29cb742764bb4b128f771;hb=92d91587592727bbf0369e6eae8eba157063274d;hp=87de9121f4140b9a63563ce563a8d1018c483459;hpb=b30c267318b2b1add1a01e783f9dbe561a649a7b;p=m6w6%2Fext-http diff --git a/php_http_std_defs.h b/php_http_std_defs.h index 87de912..86f2ec0 100644 --- a/php_http_std_defs.h +++ b/php_http_std_defs.h @@ -46,10 +46,7 @@ typedef int STATUS; #define RETURN_SUCCESS(v) RETURN_BOOL(SUCCESS == (v)) /* return object(values) */ #define RETVAL_OBJECT(o) \ - return_value->is_ref = 1; \ - return_value->type = IS_OBJECT; \ - return_value->value.obj = (o)->value.obj; \ - zval_add_ref(&return_value) + RETVAL_OBJVAL((o)->value.obj) #define RETURN_OBJECT(o) \ RETVAL_OBJECT(o); \ return @@ -57,6 +54,7 @@ typedef int STATUS; return_value->is_ref = 1; \ return_value->type = IS_OBJECT; \ return_value->value.obj = (ov); \ + zval_add_ref(&return_value); \ zend_objects_store_add_ref(return_value TSRMLS_CC) #define RETURN_OBJVAL(ov) \ RETVAL_OBJVAL(ov); \ @@ -271,12 +269,18 @@ 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() # 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_5[] = {5, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE}; \ + static unsigned char http_arg_pass_ref_all[]={1, BYREF_FORCE_REST} # endif /* ZEND_ENGINE_2 */ #else # define HTTP_DECLARE_ARG_PASS_INFO()