cvs: php4 /ext/curl interface.c
| From: | Sterling Hughes | Date: | Wed, 21 May 2003 23:27:12 +0000 |
| Subject: | cvs: php4 /ext/curl interface.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-21204@lists.php.net to get a copy of this message | ||
sterling Wed May 21 19:27:12 2003 EDT
Modified files:
/php4/ext/curl interface.c
Log:
move all the other callbacks
Index: php4/ext/curl/interface.c
diff -u php4/ext/curl/interface.c:1.17 php4/ext/curl/interface.c:1.18
--- php4/ext/curl/interface.c:1.17 Wed May 21 19:15:28 2003
+++ php4/ext/curl/interface.c Wed May 21 19:27:12 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: interface.c,v 1.17 2003/05/21 23:15:28 sterling Exp $ */
+/* $Id: interface.c,v 1.18 2003/05/21 23:27:12 sterling Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -431,36 +431,42 @@
}
break;
case PHP_CURL_USER: {
- zval *argv[3];
- zval *retval;
+ zval **argv[3];
+ zval *handle = NULL;
+ zval *zfd = NULL;
+ zval *zlength = NULL;
+ zval *retval_ptr;
int length;
int error;
TSRMLS_FETCH_FROM_CTX(ch->thread_ctx);
- MAKE_STD_ZVAL(argv[0]);
- MAKE_STD_ZVAL(argv[1]);
- MAKE_STD_ZVAL(argv[2]);
- MAKE_STD_ZVAL(retval);
+ MAKE_STD_ZVAL(handle);
+ MAKE_STD_ZVAL(zfd);
+ MAKE_STD_ZVAL(zlength);
- ZVAL_RESOURCE(argv[0], ch->id);
+ ZVAL_RESOURCE(handle, ch->id);
zend_list_addref(ch->id);
- ZVAL_RESOURCE(argv[1], t->fd);
+ ZVAL_RESOURCE(zfd, t->fd);
zend_list_addref(t->fd);
- ZVAL_LONG(argv[2], (int) size * nmemb);
+ ZVAL_LONG(zlength, (int) size * nmemb);
- error = call_user_function(EG(function_table), NULL, t->func_name, retval, 3, argv
TSRMLS_CC);
+ argv[0] = &handle;
+ argv[1] = &zfd;
+ argv[2] = &zlength;
+
+ error = fast_call_user_function(EG(function_table), NULL, t->func_name, &retval_ptr, 3,
argv, 0, NULL, &t->func_ptr TSRMLS_CC);
if (error == FAILURE) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot call the CURLOPT_READFUNCTION");
length = -1;
} else {
- memcpy(data, Z_STRVAL_P(retval), size * nmemb);
- length = Z_STRLEN_P(retval);
+ memcpy(data, Z_STRVAL_P(retval_ptr), size * nmemb);
+ length = Z_STRLEN_P(retval_ptr);
}
- zval_ptr_dtor(&argv[0]);
- zval_ptr_dtor(&argv[1]);
- zval_ptr_dtor(&argv[2]);
- zval_ptr_dtor(&retval);
+ zval_ptr_dtor(argv[0]);
+ zval_ptr_dtor(argv[1]);
+ zval_ptr_dtor(argv[2]);
+ zval_ptr_dtor(&retval_ptr);
break;
}
}
@@ -491,28 +497,32 @@
case PHP_CURL_FILE:
return fwrite(data, size, nmemb, t->fp);
case PHP_CURL_USER: {
- zval *argv[2];
- zval *retval;
+ zval **argv[2];
+ zval *handle = NULL;
+ zval *zdata = NULL;
+ zval *retval_ptr;
int error;
- MAKE_STD_ZVAL(argv[0]);
- MAKE_STD_ZVAL(argv[1]);
- MAKE_STD_ZVAL(retval);
+ MAKE_STD_ZVAL(handle);
+ MAKE_STD_ZVAL(zdata);
- ZVAL_RESOURCE(argv[0], ch->id);
+ ZVAL_RESOURCE(handle, ch->id);
zend_list_addref(ch->id);
- ZVAL_STRINGL(argv[1], data, length, 1);
+ ZVAL_STRINGL(zdata, data, length, 1);
- error = call_user_function(EG(function_table), NULL, t->func_name, retval, 2, argv
TSRMLS_CC);
+ argv[0] = &handle;
+ argv[1] = &zdata;
+
+ error = fast_call_user_function(EG(function_table), NULL, t->func_name, &retval_ptr, 2,
argv, 0, NULL, &t->func_ptr TSRMLS_CC);
if (error == FAILURE) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not call the
CURLOPT_HEADERFUNCTION");
length = -1;
} else {
- length = Z_LVAL_P(retval);
+ length = Z_LVAL_P(retval_ptr);
}
- zval_ptr_dtor(&argv[0]);
- zval_ptr_dtor(&argv[1]);
- zval_ptr_dtor(&retval);
+ zval_ptr_dtor(argv[0]);
+ zval_ptr_dtor(argv[1]);
+ zval_ptr_dtor(&retval_ptr);
break;
}
case PHP_CURL_IGNORE: