Fix subtraction overflow when comparing weights

This commit is contained in:
Jeremy Soller 2024-01-18 06:58:47 -07:00
parent 8457e68d98
commit 6aadfaddac
No known key found for this signature in database
GPG key ID: DCFCA852D3906975
2 changed files with 5 additions and 5 deletions

View file

@ -11,7 +11,7 @@ pub use rustybuzz;
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
pub struct FontMatchKey {
pub(crate) weight_offset: u16,
pub(crate) weight_offset: Option<u16>,
pub(crate) id: fontdb::ID,
}
@ -144,7 +144,7 @@ impl FontSystem {
.faces()
.filter(|face| attrs.matches(face))
.map(|face| FontMatchKey {
weight_offset: attrs.weight.0 - face.weight.0,
weight_offset: attrs.weight.0.checked_sub(face.weight.0),
id: face.id,
})
.collect::<Vec<_>>();