From: Ben Pfaff Date: Fri, 25 Apr 2025 20:18:11 +0000 (-0700) Subject: cairo tests at least don't crash now X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b2cef238ab8cb600c2645d39aabcb4e772bf412;p=pspp cairo tests at least don't crash now --- diff --git a/rust/pspp/src/output/cairo/fsm.rs b/rust/pspp/src/output/cairo/fsm.rs index bb5c3544df..4d501f81f2 100644 --- a/rust/pspp/src/output/cairo/fsm.rs +++ b/rust/pspp/src/output/cairo/fsm.rs @@ -392,7 +392,7 @@ impl CairoDevice<'_> { if cell.rotate { bb[Axis2::X].end = bb[Axis2::X].end.saturating_sub(footnote_adjustment); } else { - bb[Axis2::X].end += footnote_adjustment; + bb[Axis2::X].end = bb[Axis2::X].end.saturating_add(footnote_adjustment); } // Clean up. @@ -524,7 +524,10 @@ impl Device for CairoDevice<'_> { fn measure_cell_height(&self, cell: &DrawCell, width: usize) -> usize { let margins = &cell.style.cell_style.margins; - let bb = Rect2::new(0..width - px_to_xr(margins[Axis2::X].len()), 0..usize::MAX); + let bb = Rect2::new( + 0..width.saturating_sub(px_to_xr(margins[Axis2::X].len())), + 0..usize::MAX, + ); self.layout_cell(cell, bb, &Rect2::default()).y() + margin(cell, Axis2::Y) } diff --git a/rust/pspp/src/output/pivot/test.rs b/rust/pspp/src/output/pivot/test.rs index 3d6fe8ad27..5261c0fa47 100644 --- a/rust/pspp/src/output/pivot/test.rs +++ b/rust/pspp/src/output/pivot/test.rs @@ -144,7 +144,7 @@ fn assert_rendering(name: &str, pivot_table: &PivotTable, expected: &str) { } if let Some(dir) = std::env::var_os("PSPP_TEST_OUTPUT_DIR") { - let mut cairo = CairoDriver::new(Path::new(&dir).join(name).with_extension(".pdf")); + let mut cairo = CairoDriver::new(Path::new(&dir).join(name).with_extension("pdf")); let item = Arc::new(Item::new(Details::Table(Box::new(pivot_table.clone())))); cairo.write(&item); }