]> git.wh0rd.org - fontconfig.git/commitdiff
Charset hashing depended on uniqueness of leaves.
authorKeith Packard <keithp@neko.keithp.com>
Thu, 7 Sep 2006 00:45:40 +0000 (17:45 -0700)
committerKeith Packard <keithp@neko.keithp.com>
Thu, 7 Sep 2006 00:45:40 +0000 (17:45 -0700)
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

index 1c2e2eac155a2c8287d15d8e3527b2253a86a13a..5da131283d07f17991fbe361c239511282dd9a61 100644 (file)
@@ -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);