@@ -2654,34 +2654,22 @@ PHP_METHOD(Redis, client) {
2654
2654
2655
2655
/* {{{ proto mixed Redis::rawcommand(string $command, [ $arg1 ... $argN]) */
2656
2656
PHP_METHOD (Redis , rawcommand ) {
2657
- int argc = ZEND_NUM_ARGS () , cmd_len ;
2657
+ int argc , cmd_len ;
2658
2658
char * cmd = NULL ;
2659
2659
RedisSock * redis_sock ;
2660
2660
zval * z_args ;
2661
2661
2662
- /* Sanity check on arguments */
2663
- if (argc < 1 ) {
2664
- php_error_docref (NULL , E_WARNING ,
2665
- "Must pass at least one command keyword" );
2666
- RETURN_FALSE ;
2667
- }
2668
- z_args = emalloc (argc * sizeof (zval ));
2669
- if (zend_get_parameters_array (ht , argc , z_args ) == FAILURE ) {
2670
- php_error_docref (NULL , E_WARNING ,
2671
- "Internal PHP error parsing arguments" );
2672
- efree (z_args );
2673
- RETURN_FALSE ;
2674
- } else if (redis_build_raw_cmd (z_args , argc , & cmd , & cmd_len ) < 0 ||
2662
+ ZEND_PARSE_PARAMETERS_START (1 , -1 )
2663
+ Z_PARAM_VARIADIC ('+' , z_args , argc )
2664
+ ZEND_PARSE_PARAMETERS_END ();
2665
+
2666
+ if (redis_build_raw_cmd (z_args , argc , & cmd , & cmd_len ) < 0 ||
2675
2667
(redis_sock = redis_sock_get (getThis (), 0 )) == NULL
2676
2668
) {
2677
2669
if (cmd ) efree (cmd );
2678
- efree (z_args );
2679
2670
RETURN_FALSE ;
2680
2671
}
2681
2672
2682
- /* Clean up command array */
2683
- efree (z_args );
2684
-
2685
2673
/* Execute our command */
2686
2674
REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
2687
2675
if (IS_ATOMIC (redis_sock )) {
0 commit comments