- for (; map; map = zero_rightmost_1bit(map)) {
- if (*p) {
- hash = mhash_add(hash, *(p - df) & *p);
- }
- p++;
+ n = count_1bits(miniflow_get_map_in_range(&match->mask.masks, start, end,
+ &offset));
+ q = match->mask.masks.values + offset;
+ p = match->flow.values + offset;
+
+ for (i = 0; i < n; i++) {
+ hash = mhash_add(hash, p[i] & q[i]);