diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-06-22 15:09:22 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-06-22 15:09:22 +0200 |
commit | 26171c3690874743e1c71766e60248fbd974782f (patch) | |
tree | 722cb1d74fd1bcfa69175384f77ff402213fe6ac | |
parent | ea2b0d3c8b292ba83b28cfd06eaa78d955c42be0 (diff) | |
download | php-git-26171c3690874743e1c71766e60248fbd974782f.tar.gz |
Also allow casting CurlMultiHandles
-rw-r--r-- | ext/curl/interface.c | 3 | ||||
-rw-r--r-- | ext/curl/multi.c | 1 | ||||
-rw-r--r-- | ext/curl/php_curl.h | 1 | ||||
-rw-r--r-- | ext/curl/tests/curl_int_cast.phpt | 5 |
4 files changed, 8 insertions, 2 deletions
diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 6957e9e73a..af58d37ff5 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -241,7 +241,6 @@ static void curl_free_obj(zend_object *object); static HashTable *curl_get_gc(zend_object *object, zval **table, int *n); static zend_function *curl_get_constructor(zend_object *object); static zend_object *curl_clone_obj(zend_object *object); -static int curl_cast_object(zend_object *obj, zval *result, int type); php_curl *init_curl_handle_into_zval(zval *curl); static inline int build_mime_structure_from_hash(php_curl *ch, zval *zpostfields); @@ -1305,7 +1304,7 @@ static HashTable *curl_get_gc(zend_object *object, zval **table, int *n) return zend_std_get_properties(object); } -static int curl_cast_object(zend_object *obj, zval *result, int type) +int curl_cast_object(zend_object *obj, zval *result, int type) { if (type == IS_LONG) { /* For better backward compatibility, make (int) $curl_handle return the object ID, diff --git a/ext/curl/multi.c b/ext/curl/multi.c index 6a4c48ee18..7f2f98ad29 100644 --- a/ext/curl/multi.c +++ b/ext/curl/multi.c @@ -608,6 +608,7 @@ void curl_multi_register_class(const zend_function_entry *method_entries) { curl_multi_handlers.get_gc = curl_multi_get_gc; curl_multi_handlers.get_constructor = curl_multi_get_constructor; curl_multi_handlers.clone_obj = NULL; + curl_multi_handlers.cast_object = curl_cast_object; } #endif diff --git a/ext/curl/php_curl.h b/ext/curl/php_curl.h index a469d5e41c..5022f69d21 100644 --- a/ext/curl/php_curl.h +++ b/ext/curl/php_curl.h @@ -176,6 +176,7 @@ PHP_CURL_API extern zend_class_entry *curl_share_ce; void curl_multi_register_class(const zend_function_entry *method_entries); void curl_share_register_class(const zend_function_entry *method_entries); void curlfile_register_class(void); +int curl_cast_object(zend_object *obj, zval *result, int type); PHP_CURL_API extern zend_class_entry *curl_CURLFile_class; diff --git a/ext/curl/tests/curl_int_cast.phpt b/ext/curl/tests/curl_int_cast.phpt index 3f31b24210..7a3a89db0b 100644 --- a/ext/curl/tests/curl_int_cast.phpt +++ b/ext/curl/tests/curl_int_cast.phpt @@ -13,8 +13,13 @@ unset($handle2); $handle3 = curl_init(); var_dump((int) $handle3); +// Also works for CurlMultiHandle. +$handle4 = curl_multi_init(); +var_dump((int) $handle4); + ?> --EXPECT-- int(1) int(2) int(2) +int(3) |