From 324c8837fda231a9f98bfdcb40577ddcb9ea1963 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 25 Oct 2022 15:47:55 -0600 Subject: [PATCH] Cache fonts --- src/buffer.rs | 4 ++-- src/font/fallback/mod.rs | 14 ++++++++---- src/font/matches.rs | 5 +++-- src/font/system.rs | 46 +++++++++++++++++++++++++++------------- 4 files changed, 46 insertions(+), 23 deletions(-) diff --git a/src/buffer.rs b/src/buffer.rs index de4afb0..8ca14ca 100644 --- a/src/buffer.rs +++ b/src/buffer.rs @@ -829,8 +829,8 @@ impl<'a> TextBuffer<'a> { "{}, {}: '{}' ('{}'): '{}' ({:?})", self.cursor.line.get(), self.cursor.index, - font_opt.map_or("?", |font| font.info.family.as_str()), - font_opt.map_or("?", |font| font.info.post_script_name.as_str()), + font_opt.as_ref().map_or("?", |font| font.info.family.as_str()), + font_opt.as_ref().map_or("?", |font| font.info.post_script_name.as_str()), text_glyph, text_glyph ); diff --git a/src/font/fallback/mod.rs b/src/font/fallback/mod.rs index c006eb5..d3b6c1a 100644 --- a/src/font/fallback/mod.rs +++ b/src/font/fallback/mod.rs @@ -1,8 +1,9 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 +use std::sync::Arc; use unicode_script::Script; -use super::Font; +use crate::Font; use self::platform::*; @@ -27,7 +28,7 @@ mod platform; mod platform; pub struct FontFallbackIter<'a> { - fonts: &'a [Font<'a>], + fonts: &'a [Arc>], default_families: &'a [&'a str], default_i: usize, scripts: Vec