zval *z_ch;
php_curlm *mh;
php_curl *ch;
- zval tmp_val;
CURLMcode error = CURLM_OK;
ZEND_PARSE_PARAMETERS_START(2,2)
_php_curl_cleanup_handle(ch);
- /* we want to create a copy of this zval that we store in the multihandle structure element "easyh" */
- ZVAL_DUP(&tmp_val, z_ch);
-
- zend_llist_add_element(&mh->easyh, &tmp_val);
+ GC_ADDREF(Z_RES_P(z_ch));
+ zend_llist_add_element(&mh->easyh, z_ch);
error = curl_multi_add_handle(mh->multi, ch->cp);
SAVE_CURLM_ERROR(mh, error);
} else if (!Z_ISUNDEF(retval)) {
if (CURL_PUSH_DENY != zval_get_long(&retval)) {
rval = CURL_PUSH_OK;
-
- /* we want to create a copy of this zval that we store in the multihandle structure element "easyh" */
- zval tmp_val;
- ZVAL_DUP(&tmp_val, &pz_ch);
- zend_llist_add_element(&mh->easyh, &tmp_val);
+ GC_ADDREF(Z_RES(pz_ch));
+ zend_llist_add_element(&mh->easyh, &pz_ch);
} else {
/* libcurl will free this easy handle, avoid double free */
ch->cp = NULL;
return rval;
}
+/* }}} */
#endif