@@ -2823,6 +2823,9 @@ static uint8_t crc8(unsigned char *input, size_t len) {
2823
2823
}
2824
2824
#endif
2825
2825
2826
+ #define PHP_REDIS_COMPRESSION_RATIO_CHECK (__x ) \
2827
+ (redis_sock->compression_min_ratio > 0 && (((double) __x / (double) len) >= redis_sock->compression_min_ratio))
2828
+
2826
2829
PHP_REDIS_API int
2827
2830
redis_pack (RedisSock * redis_sock , zval * z , char * * val , size_t * val_len )
2828
2831
{
@@ -2849,7 +2852,7 @@ redis_pack(RedisSock *redis_sock, zval *z, char **val, size_t *val_len)
2849
2852
size = len + MIN (UINT_MAX - len , MAX (LZF_MARGIN , len / 25 ));
2850
2853
data = emalloc (size );
2851
2854
if ((res = lzf_compress (buf , len , data , size )) > 0 ) {
2852
- if ((( double ) res / ( double ) len ) >= redis_sock -> compression_min_ratio ) {
2855
+ if (PHP_REDIS_COMPRESSION_RATIO_CHECK ( res ) ) {
2853
2856
efree (data );
2854
2857
break ;
2855
2858
}
@@ -2884,7 +2887,7 @@ redis_pack(RedisSock *redis_sock, zval *z, char **val, size_t *val_len)
2884
2887
size = ZSTD_compressBound (len );
2885
2888
data = emalloc (size );
2886
2889
size = ZSTD_compress (data , size , buf , len , level );
2887
- if (!ZSTD_isError (size ) && (( double ) size / ( double ) len ) < redis_sock -> compression_min_ratio ) {
2890
+ if (!ZSTD_isError (size ) && ! PHP_REDIS_COMPRESSION_RATIO_CHECK ( size ) ) {
2888
2891
if (valfree ) efree (buf );
2889
2892
data = erealloc (data , size );
2890
2893
* val = data ;
0 commit comments