[gsubgpos] Micro-optimize
diff --git a/src/hb-ot-layout-gsubgpos.hh b/src/hb-ot-layout-gsubgpos.hh
index 83580c7..00fe03a 100644
--- a/src/hb-ot-layout-gsubgpos.hh
+++ b/src/hb-ot-layout-gsubgpos.hh
@@ -3391,7 +3391,8 @@
const auto &input = StructAfter<decltype (r.inputX)> (r.backtrack);
const auto &lookahead = StructAfter<decltype (r.lookaheadX)> (input);
- if (input.lenP1 > 1 ?
+ unsigned lenP1 = hb_max ((unsigned) input.lenP1, 1u);
+ if (lenP1 > 1 ?
(!lookup_context.funcs.match[1] ||
lookup_context.funcs.match[1] (*first, input.arrayZ[0], lookup_context.match_data[1]))
:
@@ -3399,12 +3400,12 @@
lookup_context.funcs.match[2] (*first, lookahead.arrayZ[0], lookup_context.match_data[2])))
{
if (!second ||
- (input.lenP1 > 2 ?
+ (lenP1 > 2 ?
(!lookup_context.funcs.match[1] ||
lookup_context.funcs.match[1] (*second, input.arrayZ[1], lookup_context.match_data[1]))
:
- (lookahead.len <= 2 - hb_max ((unsigned) input.lenP1, 1u) || !lookup_context.funcs.match[2] ||
- lookup_context.funcs.match[2] (*second, lookahead.arrayZ[2 - hb_max ((unsigned) input.lenP1, 1u)], lookup_context.match_data[2]))))
+ (lookahead.len <= 2 - lenP1 || !lookup_context.funcs.match[2] ||
+ lookup_context.funcs.match[2] (*second, lookahead.arrayZ[2 - lenP1], lookup_context.match_data[2]))))
{
if (r.apply (c, lookup_context))
{