@@ -529,20 +529,28 @@ redis_failover_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
529529int redis_flush_cmd (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock ,
530530 char * kw , char * * cmd , int * cmd_len , short * slot , void * * ctx )
531531{
532- int sync = -1 ;
532+ smart_string cmdstr = {0 };
533+ zend_bool sync = 0 ;
534+ zend_bool is_null = 1 ;
533535
534- if (zend_parse_parameters (ZEND_NUM_ARGS (), "|b" , & sync ) == FAILURE ) {
535- return FAILURE ;
536- }
536+ ZEND_PARSE_PARAMETERS_START (0 , 1 )
537+ Z_PARAM_OPTIONAL
538+ Z_PARAM_BOOL_OR_NULL (sync , is_null )
539+ ZEND_PARSE_PARAMETERS_END_EX (return FAILURE );
537540
538- if (sync < 0 ) {
539- * cmd_len = REDIS_CMD_SPPRINTF (cmd , kw , "" );
540- } else if (sync > 0 ) {
541- * cmd_len = REDIS_CMD_SPPRINTF (cmd , kw , "s" , "SYNC" , sizeof ("SYNC" ) - 1 );
542- } else {
543- * cmd_len = REDIS_CMD_SPPRINTF (cmd , kw , "s" , "ASYNC" , sizeof ("ASYNC" ) - 1 );
541+ redis_cmd_init_sstr (& cmdstr , !is_null , kw , strlen (kw ));
542+ if (!is_null ) {
543+ ZEND_ASSERT (sync == 0 || sync == 1 );
544+ if (sync == 0 ) {
545+ REDIS_CMD_APPEND_SSTR_STATIC (& cmdstr , "ASYNC" );
546+ } else {
547+ REDIS_CMD_APPEND_SSTR_STATIC (& cmdstr , "SYNC" );
548+ }
544549 }
545550
551+ * cmd = cmdstr .c ;
552+ * cmd_len = cmdstr .len ;
553+
546554 return SUCCESS ;
547555}
548556
0 commit comments