@@ -4102,36 +4102,33 @@ int redis_zadd_cmd(INTERNAL_FUNCTION_PARAMETERS, RedisSock *redis_sock,
41024102
41034103/* OBJECT */
41044104int redis_object_cmd (INTERNAL_FUNCTION_PARAMETERS , RedisSock * redis_sock ,
4105- REDIS_REPLY_TYPE * rtype , char * * cmd , int * cmd_len ,
4106- short * slot , void * * ctx )
4105+ char * * cmd , int * cmd_len , short * slot , void * * ctx )
41074106{
4108- char * key , * subcmd ;
4109- size_t key_len , subcmd_len ;
4110-
4111- if (zend_parse_parameters (ZEND_NUM_ARGS (), "ss" , & subcmd ,
4112- & subcmd_len , & key , & key_len ) == FAILURE )
4113- {
4114- return FAILURE ;
4115- }
4107+ zend_string * subcmd = NULL , * key = NULL ;
4108+ smart_string cmdstr = {0 };
41164109
4117- // Format our command
4118- * cmd_len = REDIS_CMD_SPPRINTF (cmd , "OBJECT" , "sk" , subcmd , subcmd_len , key , key_len );
4110+ ZEND_PARSE_PARAMETERS_START (2 , 2 )
4111+ Z_PARAM_STR (subcmd )
4112+ Z_PARAM_STR (key )
4113+ ZEND_PARSE_PARAMETERS_END_EX (return FAILURE ) ;
41194114
4120- // Push the reply type to our caller
4121- if (subcmd_len == 8 && (!strncasecmp (subcmd ,"refcount" ,8 ) ||
4122- !strncasecmp (subcmd ,"idletime" ,8 )))
4115+ if (zend_string_equals_literal_ci (subcmd , "REFCOUNT ") ||
4116+ zend_string_equals_literal_ci (subcmd , "IDLETIME "))
41234117 {
4124- * rtype = TYPE_INT ;
4125- } else if (subcmd_len == 8 && ! strncasecmp (subcmd , "encoding" , 8 )) {
4126- * rtype = TYPE_BULK ;
4118+ * ctx = PHPREDIS_CTX_PTR ;
4119+ } else if (zend_string_equals_literal_ci (subcmd , "ENCODING " )) {
4120+ * ctx = PHPREDIS_CTX_PTR + 1 ;
41274121 } else {
4128- php_error_docref (NULL , E_WARNING ,
4129- "Invalid subcommand sent to OBJECT" );
4130- efree (* cmd );
4122+ php_error_docref (NULL , E_WARNING , "Invalid subcommand sent to OBJECT" );
41314123 return FAILURE ;
41324124 }
41334125
4134- // Success
4126+ REDIS_CMD_INIT_SSTR_STATIC (& cmdstr , 2 , "OBJECT" );
4127+ redis_cmd_append_sstr_zstr (& cmdstr , subcmd );
4128+ redis_cmd_append_sstr_key_zstr (& cmdstr , key , redis_sock , slot );
4129+
4130+ * cmd = cmdstr .c ;
4131+ * cmd_len = cmdstr .len ;
41354132 return SUCCESS ;
41364133}
41374134
0 commit comments