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.
This commit is contained in:
parent
08bef68701
commit
c3796ac606
|
@ -1064,8 +1064,8 @@ FcCharSetHash (FcCharSet *fcs)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* hash in leaves */
|
/* hash in leaves */
|
||||||
for (i = 0; i < fcs->num * (int) (sizeof (FcCharLeaf *) / sizeof (FcChar32)); i++)
|
for (i = 0; i < fcs->num; i++)
|
||||||
hash = ((hash << 1) | (hash >> 31)) ^ (FcChar32)(FcCharSetLeaf(fcs, i)->map);
|
hash = ((hash << 1) | (hash >> 31)) ^ FcCharLeafHash (FcCharSetLeaf(fcs,i));
|
||||||
/* hash in numbers */
|
/* hash in numbers */
|
||||||
for (i = 0; i < fcs->num; i++)
|
for (i = 0; i < fcs->num; i++)
|
||||||
hash = ((hash << 1) | (hash >> 31)) ^ *FcCharSetNumbers(fcs);
|
hash = ((hash << 1) | (hash >> 31)) ^ *FcCharSetNumbers(fcs);
|
||||||
|
|
Loading…
Reference in New Issue