davidc Wed Jun 25 10:16:52 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/standard formatted_print.c Log: Reverted zpp API Cleanup patch - memory troubles? http://cvs.php.net/viewvc.cgi/php-src/ext/standard/formatted_print.c?r1=1.82.2.1.2.16.2.5&r2=1.82.2.1.2.16.2.6&diff_format=u Index: php-src/ext/standard/formatted_print.c diff -u php-src/ext/standard/formatted_print.c:1.82.2.1.2.16.2.5 php-src/ext/standard/formatted_print.c:1.82.2.1.2.16.2.6 --- php-src/ext/standard/formatted_print.c:1.82.2.1.2.16.2.5 Wed Jun 25 08:56:42 2008 +++ php-src/ext/standard/formatted_print.c Wed Jun 25 10:16:52 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: formatted_print.c,v 1.82.2.1.2.16.2.5 2008/06/25 08:56:42 davidc Exp $ */ +/* $Id: formatted_print.c,v 1.82.2.1.2.16.2.6 2008/06/25 10:16:52 davidc Exp $ */ #include <math.h> /* modf() */ #include "php.h" @@ -373,22 +373,26 @@ static char * php_formatted_print(int ht, int *len, int use_array, int format_offset TSRMLS_DC) { - zval ***args = NULL, **z_format; + zval ***args, **z_format; int argc, size = 240, inpos = 0, outpos = 0, temppos; int alignment, currarg, adjusting, argnum, width, precision; char *format, *result, padding; int always_sign; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "+", &args, &argc) == FAILURE) { - return; - } + argc = ZEND_NUM_ARGS(); /* verify the number of args */ if ((use_array && argc != (2 + format_offset)) || (!use_array && argc < (1 + format_offset))) { WRONG_PARAM_COUNT_WITH_RETVAL(NULL); } + args = (zval ***)safe_emalloc(argc, sizeof(zval *), 0); + if (zend_get_parameters_array_ex(argc, args) == FAILURE) { + efree(args); + WRONG_PARAM_COUNT_WITH_RETVAL(NULL); + } + if (use_array) { int i = 1; zval ***newargs; @@ -686,7 +690,6 @@ if ((result=php_formatted_print(ht, &len, 1, 0 TSRMLS_CC))==NULL) { RETURN_FALSE; } - RETVAL_STRINGL(result, len, 0); } /* }}} */ @@ -728,17 +731,18 @@ PHP_FUNCTION(fprintf) { php_stream *stream; - zval **arg1 = NULL; - zval **args = NULL; - int num_args; + zval **arg1; char *result; - zval **format; int len; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z+", &arg1, &args) == FAILURE) { - return; + + if (ZEND_NUM_ARGS() < 2) { + WRONG_PARAM_COUNT; } - + + if (zend_get_parameters_ex(1, &arg1)==FAILURE) { + RETURN_FALSE; + } + php_stream_from_zval(stream, arg1); if ((result=php_formatted_print(ht, &len, 0, 1 TSRMLS_CC))==NULL) { @@ -760,22 +764,14 @@ php_stream *stream; zval **arg1; char *result; - int num_args, len; + int len; - /** - * Here's the deal, I extract the first resource, it's - * a ressource, then a string and then an array. In theory - * the parsing should be "rsa" however, if I do so, the - * Argument number checking in php_formatted_print fails. - * I am therefore leaving this check here so I do not break - * php_formatted_print - */ if (ZEND_NUM_ARGS() != 3) { WRONG_PARAM_COUNT; } - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z+", &arg1, &num_args) == FAILURE) { - return; + if (zend_get_parameters_ex(1, &arg1)==FAILURE) { + RETURN_FALSE; } php_stream_from_zval(stream, arg1);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php