Skip to content

Commit

Permalink
avar2 panic failing test
Browse files Browse the repository at this point in the history
  • Loading branch information
dfrg committed Sep 11, 2024
1 parent 5780ca0 commit 7da1395
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion read-fonts/src/tables/fvar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ impl<'a> Fvar<'a> {
let axis_count = axes.len();
let mut new_coords = [F2Dot14::ZERO; 64];
if axis_count > 64 {
return; // No avar2 for monster fonts.
// No avar2 for monster fonts.
// <https://github.com/googlefonts/fontations/issues/1148>
return;
}
new_coords[..axis_count].copy_from_slice(normalized_coords);

Expand Down Expand Up @@ -271,4 +273,18 @@ mod tests {
assert_eq!(normalized_coords[1], F2Dot14::from_f32(expected.1));
}
}

#[test]
fn avar2_no_panic_with_wrong_size_coords_array() {
// this font has 2 axes
let font = FontRef::new(font_test_data::AVAR2_CHECKER).unwrap();
let avar = font.avar().ok();
let fvar = font.fvar().unwrap();
// output array too small
let mut normalized_coords = [F2Dot14::default(); 1];
fvar.user_to_normalized(avar.as_ref(), [], &mut normalized_coords);
// output array too large
let mut normalized_coords = [F2Dot14::default(); 4];
fvar.user_to_normalized(avar.as_ref(), [], &mut normalized_coords);
}
}

0 comments on commit 7da1395

Please sign in to comment.