From 3a1d7ee7e8471c3a9e59ab74551d99eba93410a9 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Tue, 4 Feb 2025 17:33:42 +0000 Subject: [PATCH] [aat] Remove the buffer-digest threshold This can help us skip entire subchains, eg. when they are for different scripts. Speeds up LucidaGrande with ASCII text by 20%. --- src/hb-aat-layout-common.hh | 2 -- src/hb-aat-layout-kerx-table.hh | 5 +---- src/hb-aat-layout-morx-table.hh | 5 +---- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/hb-aat-layout-common.hh b/src/hb-aat-layout-common.hh index 37d919a17..5db0d1212 100644 --- a/src/hb-aat-layout-common.hh +++ b/src/hb-aat-layout-common.hh @@ -40,8 +40,6 @@ namespace AAT { using namespace OT; -#define HB_AAT_BUFFER_DIGEST_THRESHOLD 32 - struct ankr; using hb_aat_class_cache_t = hb_cache_t<15, 8, 7>; diff --git a/src/hb-aat-layout-kerx-table.hh b/src/hb-aat-layout-kerx-table.hh index 72d696212..d5f46c66e 100644 --- a/src/hb-aat-layout-kerx-table.hh +++ b/src/hb-aat-layout-kerx-table.hh @@ -967,10 +967,7 @@ struct KerxTable { c->buffer->unsafe_to_concat (); - if (c->buffer->len < HB_AAT_BUFFER_DIGEST_THRESHOLD) - c->buffer_digest = c->buffer->digest (); - else - c->buffer_digest = hb_set_digest_t::full (); + c->buffer_digest = c->buffer->digest (); typedef typename T::SubTable SubTable; diff --git a/src/hb-aat-layout-morx-table.hh b/src/hb-aat-layout-morx-table.hh index 1b836944e..65ad91303 100644 --- a/src/hb-aat-layout-morx-table.hh +++ b/src/hb-aat-layout-morx-table.hh @@ -1404,10 +1404,7 @@ struct mortmorx c->buffer->unsafe_to_concat (); - if (c->buffer->len < HB_AAT_BUFFER_DIGEST_THRESHOLD) - c->buffer_digest = c->buffer->digest (); - else - c->buffer_digest = hb_set_digest_t::full (); + c->buffer_digest = c->buffer->digest (); c->set_lookup_index (0); const Chain *chain = &firstChain;