felipe Mon Jul 21 14:29:47 2008 UTC
Modified files:
/php-src/ext/standard streamsfuncs.c
Log:
- MFB: New parameter parsing API
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.117&r2=1.118&diff_format=u
Index: php-src/ext/standard/streamsfuncs.c
diff -u php-src/ext/standard/streamsfuncs.c:1.117
php-src/ext/standard/streamsfuncs.c:1.118
--- php-src/ext/standard/streamsfuncs.c:1.117 Fri Jul 11 10:24:29 2008
+++ php-src/ext/standard/streamsfuncs.c Mon Jul 21 14:29:46 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.c,v 1.117 2008/07/11 10:24:29 tony2001 Exp $ */
+/* $Id: streamsfuncs.c,v 1.118 2008/07/21 14:29:46 felipe Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -472,14 +472,14 @@
Retrieves header/meta data from streams/file pointers */
PHP_FUNCTION(stream_get_meta_data)
{
- zval **arg1;
+ zval *arg1;
php_stream *stream;
zval *newval;
- if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) ==
FAILURE) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &arg1) ==
FAILURE) {
+ return;
}
- php_stream_from_zval(stream, arg1);
+ php_stream_from_zval(stream, &arg1);
array_init(return_value);
@@ -1375,52 +1375,52 @@
Set blocking/non-blocking mode on a socket or stream */
PHP_FUNCTION(stream_set_blocking)
{
- zval **arg1, **arg2;
+ zval *arg1;
+ long arg2;
int block;
php_stream *stream;
- if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) ==
FAILURE) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &arg1,
&arg2) == FAILURE) {
+ return;
}
- php_stream_from_zval(stream, arg1);
+ php_stream_from_zval(stream, &arg1);
- convert_to_long_ex(arg2);
- block = Z_LVAL_PP(arg2);
+ block = arg2;
- if (php_stream_set_option(stream, PHP_STREAM_OPTION_BLOCKING, block ==
0 ? 0 : 1, NULL) == -1)
+ if (php_stream_set_option(stream, PHP_STREAM_OPTION_BLOCKING, block ==
0 ? 0 : 1, NULL) == -1) {
RETURN_FALSE;
+ }
RETURN_TRUE;
}
/* }}} */
-/* {{{ proto bool stream_set_timeout(resource stream, int seconds, int
microseconds) U
+/* {{{ proto bool stream_set_timeout(resource stream, int seconds [, int
microseconds]) U
Set timeout on stream read to seconds + microseonds */
#if HAVE_SYS_TIME_H || defined(PHP_WIN32)
PHP_FUNCTION(stream_set_timeout)
{
- zval **socket, **seconds, **microseconds;
+ zval *socket;
+ long seconds, microseconds;
struct timeval t;
php_stream *stream;
+ int argc = ZEND_NUM_ARGS();
- if (ZEND_NUM_ARGS() < 2 || ZEND_NUM_ARGS() > 3 ||
- zend_get_parameters_ex(ZEND_NUM_ARGS(), &socket, &seconds,
µseconds)==FAILURE) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(argc TSRMLS_CC, "rl|l", &socket, &seconds,
µseconds) == FAILURE) {
+ return;
}
- php_stream_from_zval(stream, socket);
+ php_stream_from_zval(stream, &socket);
- convert_to_long_ex(seconds);
- t.tv_sec = Z_LVAL_PP(seconds);
+ t.tv_sec = seconds;
- if (ZEND_NUM_ARGS() == 3) {
- convert_to_long_ex(microseconds);
- t.tv_usec = Z_LVAL_PP(microseconds) % 1000000;
- t.tv_sec += Z_LVAL_PP(microseconds) / 1000000;
- }
- else
+ if (argc == 3) {
+ t.tv_usec = microseconds % 1000000;
+ t.tv_sec += microseconds / 1000000;
+ } else {
t.tv_usec = 0;
+ }
if (PHP_STREAM_OPTION_RETURN_OK == php_stream_set_option(stream,
PHP_STREAM_OPTION_READ_TIMEOUT, 0, &t)) {
RETURN_TRUE;
@@ -1435,27 +1435,19 @@
Set file write buffer */
PHP_FUNCTION(stream_set_write_buffer)
{
- zval **arg1, **arg2;
+ zval *arg1;
+ long arg2;
int ret;
size_t buff;
php_stream *stream;
- switch (ZEND_NUM_ARGS()) {
- case 2:
- if (zend_get_parameters_ex(2, &arg1, &arg2)==FAILURE) {
- RETURN_FALSE;
- }
- break;
- default:
- WRONG_PARAM_COUNT;
- /* NOTREACHED */
- break;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &arg1,
&arg2) == FAILURE) {
+ return;
}
- php_stream_from_zval(stream, arg1);
+ php_stream_from_zval(stream, &arg1);
- convert_to_long_ex(arg2);
- buff = Z_LVAL_PP(arg2);
+ buff = arg2;
/* if buff is 0 then set to non-buffered */
if (buff == 0) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php