In 1c73379ed8483dcf71c5ccfc459c2c22516a9aef I changed
authorCarl Hetherington <cth@carlh.net>
Wed, 19 Apr 2023 21:57:03 +0000 (23:57 +0200)
committerCarl Hetherington <cth@carlh.net>
Wed, 19 Apr 2023 21:57:03 +0000 (23:57 +0200)
commit22aa0dd620b6db93a64e1e171fb5ddb18693e56e
treeeff4188e9877983f666b8c53b767d68d4a2ad212
parentf6a51c4902d6c1983d58e1073f048d50ba2a50df
In 1c73379ed8483dcf71c5ccfc459c2c22516a9aef I changed
FontConfig::_available_fonts to use the font ID as a key, but that's
totally wrong because the same Font object with the same ID can have
its font filename/data changed, and in that case we don't want to
use the cached font.

Here we use the actual TTF/OTF font data as the key.  We could have
just hashed the data (whether it comes from a disk file or is held
in memory) but this is slower in the case where we have the filename,
as then the file must be loaded from disk for each comparison.

This fixes #2518.
src/lib/font.h
src/lib/font_comparator.h [new file with mode: 0644]
src/lib/font_config.cc
src/lib/font_config.h
test/font_comparator_test.cc [new file with mode: 0644]
test/wscript