X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_request_int.h;h=ed46b2317582e8eadcb311af500cfe72a94e4d80;hp=5037bffec99a1e4f9b4115aac74a5ec3e87d741d;hb=23d7e7f276852b4ed1bd2829fcca38c6db854563;hpb=99b27b9e44043e5ff1bd53f2a1e3b007cfd16a42 diff --git a/php_http_request_int.h b/php_http_request_int.h index 5037bff..ed46b23 100644 --- a/php_http_request_int.h +++ b/php_http_request_int.h @@ -41,11 +41,14 @@ } #define HTTP_CURL_OPT_STRING_EX(keyname, optname, obdc) \ if (!strcasecmp(key.str, keyname)) { \ - zval *copy = http_request_option_cache_ex(request, keyname, strlen(keyname)+1, 0, zval_copy(IS_STRING, *param)); \ + zval *copy_tmp, *copy = http_request_option_cache_ex(request, keyname, strlen(keyname)+1, 0, convert_to_type_ex(IS_STRING, *param, ©_tmp)); \ if (obdc) { \ HTTP_CHECK_OPEN_BASEDIR(Z_STRVAL_P(copy), return FAILURE); \ } \ HTTP_CURL_OPT(optname, Z_STRVAL_P(copy)); \ + if (copy_tmp) { \ + zval_ptr_dtor(©_tmp); \ + } \ continue; \ } #define HTTP_CURL_OPT_LONG(OPTION, ldiff) \ @@ -55,9 +58,12 @@ } #define HTTP_CURL_OPT_LONG_EX(keyname, optname) \ if (!strcasecmp(key.str, keyname)) { \ - zval *copy = zval_copy(IS_LONG, *param); \ + zval *copy = *param; \ + convert_to_long_ex(©); \ HTTP_CURL_OPT(optname, Z_LVAL_P(copy)); \ - zval_free(©); \ + if (copy != *param) { \ + zval_ptr_dtor(©); \ + } \ continue; \ }