[GSUB/GPOS] Use Coverage digests as gatekeeper Gives me a good 10% speedup for the Devanagari test case. Less so for less lookup-intensive tests. For the Devanagari test case, the false positive rate of the GSUB digest is 4%.
diff --git a/src/hb-ot-layout-private.hh b/src/hb-ot-layout-private.hh index fdbeb5b..d87a138 100644 --- a/src/hb-ot-layout-private.hh +++ b/src/hb-ot-layout-private.hh
@@ -35,6 +35,7 @@ #include "hb-font-private.hh" #include "hb-buffer-private.hh" +#include "hb-set-private.hh" /* buffer var allocations, used during the GSUB/GPOS processing */ @@ -168,6 +169,9 @@ const struct GDEF *gdef; const struct GSUB *gsub; const struct GPOS *gpos; + + hb_set_digest_t *gsub_digests; + hb_set_digest_t *gpos_digests; };