@@ -529,20 +529,28 @@ redis_failover_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
529
529
int redis_flush_cmd (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock ,
530
530
char * kw , char * * cmd , int * cmd_len , short * slot , void * * ctx )
531
531
{
532
- int sync = -1 ;
532
+ smart_string cmdstr = {0 };
533
+ zend_bool sync = 0 ;
534
+ zend_bool is_null = 1 ;
533
535
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 );
537
540
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
+ }
544
549
}
545
550
551
+ * cmd = cmdstr .c ;
552
+ * cmd_len = cmdstr .len ;
553
+
546
554
return SUCCESS ;
547
555
}
548
556
0 commit comments