break;
case PREFILTER_U8HASH_MODE_LT:
{
- uint8_t v = ctx->v1.u8[1] - 1;
- do {
+ uint8_t v = ctx->v1.u8[1];
+ while (v > 0) {
+ v--;
counts[v] += ctx->cnt;
- } while (v--);
+ }
break;
}
case PREFILTER_U8HASH_MODE_GT:
{
- int v = ctx->v1.u8[1] + 1;
- do {
+ uint8_t v = ctx->v1.u8[1];
+ while (v < UINT8_MAX) {
+ v++;
counts[v] += ctx->cnt;
- } while (++v < 256);
+ }
break;
}
case PREFILTER_U8HASH_MODE_RA:
{
- int v = ctx->v1.u8[1] + 1;
- do {
- counts[v] += ctx->cnt;
- } while (++v < ctx->v1.u8[2]);
-
+ if (ctx->v1.u8[1] < ctx->v1.u8[2]) {
+ // ctx->v1.u8[1] is not UINT8_MAX
+ uint8_t v = ctx->v1.u8[1] + 1;
+ while (v < ctx->v1.u8[2]) {
+ counts[v] += ctx->cnt;
+ v++;
+ }
+ }
break;
}
}