@@ -1084,7 +1084,6 @@ PHP_METHOD(RedisCluster, keys) {
1084
1084
strlen_t pat_len ;
1085
1085
char * pat , * cmd ;
1086
1086
clusterReply * resp ;
1087
- zval zv , * z_ret = & zv ;
1088
1087
int i , cmd_len ;
1089
1088
1090
1089
if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "s" , & pat , & pat_len )
@@ -1096,19 +1095,20 @@ PHP_METHOD(RedisCluster, keys) {
1096
1095
/* Prefix and then build our command */
1097
1096
cmd_len = redis_spprintf (c -> flags , NULL TSRMLS_CC , & cmd , "KEYS" , "k" , pat , pat_len );
1098
1097
1099
- array_init (z_ret );
1098
+ array_init (return_value );
1100
1099
1101
1100
/* Treat as readonly */
1102
1101
c -> readonly = CLUSTER_IS_ATOMIC (c );
1103
1102
1104
1103
/* Iterate over our known nodes */
1105
1104
ZEND_HASH_FOREACH_PTR (c -> nodes , node ) {
1106
- if (node == NULL ) break ;
1105
+ if (node == NULL ) continue ;
1107
1106
if (cluster_send_slot (c , node -> slot , cmd , cmd_len , TYPE_MULTIBULK
1108
1107
TSRMLS_CC ) < 0 )
1109
1108
{
1110
1109
php_error_docref (0 TSRMLS_CC , E_ERROR , "Can't send KEYS to %s:%d" ,
1111
1110
ZSTR_VAL (node -> sock -> host ), node -> sock -> port );
1111
+ zval_dtor (return_value );
1112
1112
efree (cmd );
1113
1113
RETURN_FALSE ;
1114
1114
}
@@ -1129,7 +1129,7 @@ PHP_METHOD(RedisCluster, keys) {
1129
1129
continue ;
1130
1130
}
1131
1131
1132
- add_next_index_stringl (z_ret , resp -> element [i ]-> str ,
1132
+ add_next_index_stringl (return_value , resp -> element [i ]-> str ,
1133
1133
resp -> element [i ]-> len );
1134
1134
}
1135
1135
@@ -1138,9 +1138,6 @@ PHP_METHOD(RedisCluster, keys) {
1138
1138
} ZEND_HASH_FOREACH_END ();
1139
1139
1140
1140
efree (cmd );
1141
-
1142
- /* Return our keys */
1143
- RETURN_ZVAL (z_ret , 1 , 0 );
1144
1141
}
1145
1142
/* }}} */
1146
1143
0 commit comments