summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2023-06-24 23:23:54 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2023-06-24 23:23:54 +0000
commit3fed8e215415fdfc865acc39c39dbc4666b60e74 (patch)
tree7a05a1eafbe52abc3eea6b1d594ef5a797e5346a /Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h
parent26b39aa87a9ac83dab1e9b770125dc3defd9a405 (diff)
freetype 2.13.1
git-svn-id: svn://tug.org/texlive/trunk@67463 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h')
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h b/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h
index 23bcb658586..850d2554b54 100644
--- a/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h
+++ b/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h
@@ -72,11 +72,12 @@ FT_BEGIN_HEADER
#define FTC_NODE_NEXT( x ) FTC_NODE( (x)->mru.next )
#define FTC_NODE_PREV( x ) FTC_NODE( (x)->mru.prev )
+ /* address the hash table entries */
#ifdef FTC_INLINE
-#define FTC_NODE_TOP_FOR_HASH( cache, hash ) \
- ( ( cache )->buckets + \
- ( ( ( ( hash ) & ( cache )->mask ) < ( cache )->p ) \
- ? ( ( hash ) & ( ( cache )->mask * 2 + 1 ) ) \
+#define FTC_NODE_TOP_FOR_HASH( cache, hash ) \
+ ( ( cache )->buckets + \
+ ( ( ( ( hash ) & ( cache )->mask ) >= ( cache )->p ) \
+ ? ( ( hash ) & ( ( cache )->mask >> 1 ) ) \
: ( ( hash ) & ( cache )->mask ) ) )
#else
FT_LOCAL( FTC_Node* )
@@ -139,11 +140,13 @@ FT_BEGIN_HEADER
} FTC_CacheClassRec;
- /* each cache really implements a dynamic hash table to manage its nodes */
+ /* each cache really implements a hash table to manage its nodes */
+ /* the number of the table entries (buckets) can change dynamically */
+ /* each bucket contains a linked lists of nodes for a given hash */
typedef struct FTC_CacheRec_
{
- FT_UFast p;
- FT_UFast mask;
+ FT_UFast p; /* hash table counter */
+ FT_UFast mask; /* hash table index range */
FT_Long slack;
FTC_Node* buckets;