From c3796ac6061373bcf0276a931036987c01741215 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 6 Sep 2006 17:45:40 -0700 Subject: [PATCH] Charset hashing depended on uniqueness of leaves. Charset hashing actually use the value of the leaf pointers, which is clearly wrong, especially now that charsets are not shared across multiple font directories. --- src/fccharset.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fccharset.c b/src/fccharset.c index 1c2e2ea..5da1312 100644 --- a/src/fccharset.c +++ b/src/fccharset.c @@ -1064,8 +1064,8 @@ FcCharSetHash (FcCharSet *fcs) int i; /* hash in leaves */ - for (i = 0; i < fcs->num * (int) (sizeof (FcCharLeaf *) / sizeof (FcChar32)); i++) - hash = ((hash << 1) | (hash >> 31)) ^ (FcChar32)(FcCharSetLeaf(fcs, i)->map); + for (i = 0; i < fcs->num; i++) + hash = ((hash << 1) | (hash >> 31)) ^ FcCharLeafHash (FcCharSetLeaf(fcs,i)); /* hash in numbers */ for (i = 0; i < fcs->num; i++) hash = ((hash << 1) | (hash >> 31)) ^ *FcCharSetNumbers(fcs); -- 2.39.2