@@ -491,7 +491,7 @@ PHP_METHOD(Redis,__destruct) {
491
491
// queued
492
492
redis_send_discard (redis_sock );
493
493
}
494
- free_reply_callbacks (redis_sock );
494
+ redis_free_reply_callbacks (redis_sock );
495
495
}
496
496
}
497
497
@@ -750,7 +750,7 @@ PHP_METHOD(Redis, reset)
750
750
RETURN_ZVAL (getThis (), 1 , 0 );
751
751
}
752
752
753
- free_reply_callbacks (redis_sock );
753
+ redis_free_reply_callbacks (redis_sock );
754
754
redis_sock -> status = REDIS_SOCK_STATUS_CONNECTED ;
755
755
redis_sock -> mode = ATOMIC ;
756
756
redis_sock -> dbNumber = 0 ;
@@ -1953,7 +1953,7 @@ PHP_METHOD(Redis, discard)
1953
1953
ret = redis_send_discard (redis_sock );
1954
1954
}
1955
1955
if (ret == SUCCESS ) {
1956
- free_reply_callbacks (redis_sock );
1956
+ redis_free_reply_callbacks (redis_sock );
1957
1957
redis_sock -> mode = ATOMIC ;
1958
1958
RETURN_TRUE ;
1959
1959
}
@@ -1975,7 +1975,7 @@ redis_sock_read_multibulk_multi_reply(INTERNAL_FUNCTION_PARAMETERS,
1975
1975
}
1976
1976
1977
1977
// No command issued, return empty immutable array
1978
- if (redis_sock -> head == NULL ) {
1978
+ if (redis_sock -> reply_callback == NULL ) {
1979
1979
ZVAL_EMPTY_ARRAY (z_tab );
1980
1980
return SUCCESS ;
1981
1981
}
@@ -2015,7 +2015,7 @@ PHP_METHOD(Redis, exec)
2015
2015
}
2016
2016
ret = redis_sock_read_multibulk_multi_reply (
2017
2017
INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , & z_ret );
2018
- free_reply_callbacks (redis_sock );
2018
+ redis_free_reply_callbacks (redis_sock );
2019
2019
REDIS_DISABLE_MODE (redis_sock , MULTI );
2020
2020
redis_sock -> watching = 0 ;
2021
2021
if (ret < 0 ) {
@@ -2042,7 +2042,7 @@ PHP_METHOD(Redis, exec)
2042
2042
}
2043
2043
smart_string_free (& redis_sock -> pipeline_cmd );
2044
2044
}
2045
- free_reply_callbacks (redis_sock );
2045
+ redis_free_reply_callbacks (redis_sock );
2046
2046
REDIS_DISABLE_MODE (redis_sock , PIPELINE );
2047
2047
}
2048
2048
RETURN_ZVAL (& z_ret , 0 , 1 );
@@ -2067,12 +2067,13 @@ PHP_REDIS_API int
2067
2067
redis_sock_read_multibulk_multi_reply_loop (INTERNAL_FUNCTION_PARAMETERS ,
2068
2068
RedisSock * redis_sock , zval * z_tab )
2069
2069
{
2070
- fold_item * fi ;
2070
+ fold_item fi ;
2071
+ size_t i ;
2071
2072
2072
- for (fi = redis_sock -> head ; fi ; /* void */ ) {
2073
- if ( fi -> fun ) {
2074
- fi -> fun ( INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , z_tab , fi -> ctx );
2075
- fi = fi -> next ;
2073
+ for (i = 0 ; i < redis_sock -> reply_callback_count ; i ++ ) {
2074
+ fi = redis_sock -> reply_callback [ i ];
2075
+ if ( fi . fun ) {
2076
+ fi . fun ( INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , z_tab , fi . ctx ) ;
2076
2077
continue ;
2077
2078
}
2078
2079
size_t len ;
@@ -2084,7 +2085,7 @@ redis_sock_read_multibulk_multi_reply_loop(INTERNAL_FUNCTION_PARAMETERS,
2084
2085
return FAILURE ;
2085
2086
}
2086
2087
2087
- while (( fi = fi -> next ) && fi -> fun ) {
2088
+ while (redis_sock -> reply_callback [ ++ i ]. fun ) {
2088
2089
if (redis_response_enqueued (redis_sock ) != SUCCESS ) {
2089
2090
return FAILURE ;
2090
2091
}
@@ -2103,10 +2104,7 @@ redis_sock_read_multibulk_multi_reply_loop(INTERNAL_FUNCTION_PARAMETERS,
2103
2104
if (num > 0 && redis_read_multibulk_recursive (redis_sock , num , 0 , & z_ret ) < 0 ) {
2104
2105
return FAILURE ;
2105
2106
}
2106
-
2107
- if (fi ) fi = fi -> next ;
2108
2107
}
2109
- redis_sock -> current = fi ;
2110
2108
return SUCCESS ;
2111
2109
}
2112
2110
0 commit comments