Index: third_party/harfbuzz-ng/src/hb-ot-layout-gsubgpos-private.hh |
diff --git a/third_party/harfbuzz-ng/src/hb-ot-layout-gsubgpos-private.hh b/third_party/harfbuzz-ng/src/hb-ot-layout-gsubgpos-private.hh |
index 56c501533b24ddb9880772edfa18df05907a48de..997d22550547521dd902d712726a1206a38f174a 100644 |
--- a/third_party/harfbuzz-ng/src/hb-ot-layout-gsubgpos-private.hh |
+++ b/third_party/harfbuzz-ng/src/hb-ot-layout-gsubgpos-private.hh |
@@ -996,10 +996,13 @@ static inline bool apply_lookup (hb_apply_context_t *c, |
/* Recursed lookup changed buffer len. Adjust. */ |
- /* end can't go back past the current match position. |
- * Note: this is only true because we do NOT allow MultipleSubst |
- * with zero sequence len. */ |
- end = MAX (MIN((int) match_positions[idx] + 1, (int) new_len), int (end) + delta); |
+ end = int (end) + delta; |
+ if (end <= match_positions[idx]) |
+ { |
+ /* There can't be any further changes. */ |
+ assert (end == match_positions[idx]); |
+ break; |
+ } |
unsigned int next = idx + 1; /* next now is the position after the recursed lookup. */ |