fonts: fix broken caching of font template matches (#34325)

After a cache miss, `find_matching_font_template` never updates the
cache entry with the response from the `SystemFontService` leading to
several unnecessary IPC calls during layout.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Mukilan Thiyagarajan 2024-11-21 17:53:14 +05:30 committed by GitHub
parent c05612fc9a
commit a731b25f0c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 2 deletions

View file

@ -370,6 +370,19 @@ mod font_context {
.matching_templates(&font_descriptor, &family_descriptor)[0]
.clone();
let _ = context
.context
.matching_templates(&font_descriptor, &family_descriptor);
assert_eq!(
context
.system_font_service
.find_font_count
.fetch_add(0, Ordering::Relaxed),
1,
"we should only have requested matching templates from the font service once"
);
let font1 = context
.context
.font(font_template.clone(), &font_descriptor)