| Index: third_party/harfbuzz-ng/src/hb-ot-map.cc
|
| diff --git a/third_party/harfbuzz-ng/src/hb-ot-map.cc b/third_party/harfbuzz-ng/src/hb-ot-map.cc
|
| index 7822cef8b3c3f56dec9a0e8efd8d3a800b94f935..17e3f4065e3c6347207e7d0a565dad50c2bede61 100644
|
| --- a/third_party/harfbuzz-ng/src/hb-ot-map.cc
|
| +++ b/third_party/harfbuzz-ng/src/hb-ot-map.cc
|
| @@ -193,7 +193,8 @@ hb_ot_map_builder_t::compile (hb_ot_map_t &m)
|
| /* Uses the global bit */
|
| bits_needed = 0;
|
| else
|
| - bits_needed = _hb_bit_storage (info->max_value);
|
| + /* Limit to 8 bits per feature. */
|
| + bits_needed = MIN(8u, _hb_bit_storage (info->max_value));
|
|
|
| if (!info->max_value || next_bit + bits_needed > 8 * sizeof (hb_mask_t))
|
| continue; /* Feature disabled, or not enough bits. */
|
| @@ -243,11 +244,11 @@ hb_ot_map_builder_t::compile (hb_ot_map_t &m)
|
| map->mask = 1;
|
| } else {
|
| map->shift = next_bit;
|
| - map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit);
|
| + map->mask = (1u << (next_bit + bits_needed)) - (1u << next_bit);
|
| next_bit += bits_needed;
|
| m.global_mask |= (info->default_value << map->shift) & map->mask;
|
| }
|
| - map->_1_mask = (1 << map->shift) & map->mask;
|
| + map->_1_mask = (1u << map->shift) & map->mask;
|
| map->needs_fallback = !found;
|
|
|
| }
|
|
|