davidc Fri Jun 20 20:54:32 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/standard pack.c Log: - New parsing parameter API cleanups http://cvs.php.net/viewvc.cgi/php-src/ext/standard/pack.c?r1=1.57.2.5.2.6.2.2&r2=1.57.2.5.2.6.2.3&diff_format=u Index: php-src/ext/standard/pack.c diff -u php-src/ext/standard/pack.c:1.57.2.5.2.6.2.2 php-src/ext/standard/pack.c:1.57.2.5.2.6.2.3 --- php-src/ext/standard/pack.c:1.57.2.5.2.6.2.2 Fri Jun 20 14:53:57 2008 +++ php-src/ext/standard/pack.c Fri Jun 20 20:54:32 2008 @@ -15,7 +15,7 @@ | Author: Chris Schneider <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: pack.c,v 1.57.2.5.2.6.2.2 2008/06/20 14:53:57 felipe Exp $ */ +/* $Id: pack.c,v 1.57.2.5.2.6.2.3 2008/06/20 20:54:32 davidc Exp $ */ #include "php.h" @@ -106,8 +106,8 @@ Takes one or more arguments and packs them into a binary string according to the format argument */ PHP_FUNCTION(pack) { - zval ***argv; - int argc, i; + zval ***argv = NULL; + int num_args, i; int currentarg; char *format; int formatlen; @@ -117,20 +117,10 @@ int outputpos = 0, outputsize = 0; char *output; - argc = ZEND_NUM_ARGS(); - - if (argc < 1) { - WRONG_PARAM_COUNT; - } - - argv = safe_emalloc(argc, sizeof(zval **), 0); - - if (zend_get_parameters_array_ex(argc, argv) == FAILURE) { - efree(argv); - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "+", &argv, &num_args) == FAILURE) { + return; } - convert_to_string_ex(argv[0]); format = Z_STRVAL_PP(argv[0]); formatlen = Z_STRLEN_PP(argv[0]); @@ -178,7 +168,7 @@ case 'A': case 'h': case 'H': - if (currentarg >= argc) { + if (currentarg >= num_args) { efree(argv); efree(formatcodes); efree(formatargs); @@ -210,12 +200,12 @@ case 'f': case 'd': if (arg < 0) { - arg = argc - currentarg; + arg = num_args - currentarg; } currentarg += arg; - if (currentarg > argc) { + if (currentarg > num_args) { efree(argv); efree(formatcodes); efree(formatargs); @@ -236,8 +226,8 @@ formatargs[formatcount] = arg; } - if (currentarg < argc) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d arguments unused", (argc - currentarg)); + if (currentarg < num_args) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d arguments unused", (num_args - currentarg)); } /* Calculate output length and upper bound while processing*/
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php