Check LineHeight > 0.0 before allocating text

This commit is contained in:
Josh Megnauth 2023-09-04 23:47:44 -04:00
parent 20681b4777
commit bdf18554fe
No known key found for this signature in database
GPG key ID: 70813183462EFAD3
2 changed files with 12 additions and 15 deletions

View file

@ -54,8 +54,7 @@ impl Pipeline {
pixels: &mut tiny_skia::PixmapMut<'_>,
clip_mask: Option<&tiny_skia::Mask>,
) {
let line_height = f32::from(line_height.to_absolute(Pixels(size)))
.max(f32::MIN_POSITIVE);
let line_height = f32::from(line_height.to_absolute(Pixels(size)));
let font_system = self.font_system.get_mut();
let key = Key {
@ -135,8 +134,7 @@ impl Pipeline {
) -> Size {
let mut measurement_cache = self.cache.borrow_mut();
let line_height = f32::from(line_height.to_absolute(Pixels(size)))
.max(f32::MIN_POSITIVE);
let line_height = f32::from(line_height.to_absolute(Pixels(size)));
let (_, entry) = measurement_cache.allocate(
&mut self.font_system.borrow_mut(),
@ -166,8 +164,7 @@ impl Pipeline {
) -> Option<Hit> {
let mut measurement_cache = self.cache.borrow_mut();
let line_height = f32::from(line_height.to_absolute(Pixels(size)))
.max(f32::MIN_POSITIVE);
let line_height = f32::from(line_height.to_absolute(Pixels(size)));
let (_, entry) = measurement_cache.allocate(
&mut self.font_system.borrow_mut(),
@ -409,8 +406,8 @@ impl Cache {
if let hash_map::Entry::Vacant(entry) = self.entries.entry(hash) {
let metrics = cosmic_text::Metrics::new(
key.size,
(key.size * 1.2).max(f32::MIN_POSITIVE),
key.line_height,
(key.line_height * 1.2).max(f32::MIN_POSITIVE),
);
let mut buffer = cosmic_text::Buffer::new(font_system, metrics);

View file

@ -96,8 +96,7 @@ impl Pipeline {
section
.line_height
.to_absolute(Pixels(section.size)),
)
.max(f32::MIN_POSITIVE),
),
font: section.font,
bounds: Size {
width: section.bounds.width,
@ -239,8 +238,7 @@ impl Pipeline {
) -> Size {
let mut cache = self.cache.borrow_mut();
let line_height = f32::from(line_height.to_absolute(Pixels(size)))
.max(f32::MIN_POSITIVE);
let line_height = f32::from(line_height.to_absolute(Pixels(size)));
let (_, entry) = cache.allocate(
&mut self.font_system.borrow_mut(),
@ -271,8 +269,7 @@ impl Pipeline {
) -> Option<Hit> {
let mut cache = self.cache.borrow_mut();
let line_height = f32::from(line_height.to_absolute(Pixels(size)))
.max(f32::MIN_POSITIVE);
let line_height = f32::from(line_height.to_absolute(Pixels(size)));
let (_, entry) = cache.allocate(
&mut self.font_system.borrow_mut(),
@ -417,7 +414,10 @@ impl Cache {
}
if let hash_map::Entry::Vacant(entry) = self.entries.entry(hash) {
let metrics = glyphon::Metrics::new(key.size, key.line_height);
let metrics = glyphon::Metrics::new(
key.size,
key.line_height.max(f32::MIN_POSITIVE),
);
let mut buffer = glyphon::Buffer::new(font_system, metrics);
buffer.set_size(