[librsvg/librsvg-2.48] pixbuf_utils: don't call get_dimensions_sub twice.
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg/librsvg-2.48] pixbuf_utils: don't call get_dimensions_sub twice.
- Date: Wed, 29 Apr 2020 18:05:31 +0000 (UTC)
commit 1800bbf311de25f13e81f8c54d6b6af4294c56c9
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Apr 23 18:26:29 2020 -0500
pixbuf_utils: don't call get_dimensions_sub twice.
librsvg/pixbuf_utils.rs | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
---
diff --git a/librsvg/pixbuf_utils.rs b/librsvg/pixbuf_utils.rs
index a3b5d833..f726a3dc 100644
--- a/librsvg/pixbuf_utils.rs
+++ b/librsvg/pixbuf_utils.rs
@@ -98,6 +98,10 @@ struct SizeMode {
}
fn get_final_size(dimensions: &RsvgDimensionData, size_mode: &SizeMode) -> (i32, i32) {
+ if dimensions.width == 0 || dimensions.height == 0 {
+ return (0, 0);
+ }
+
let in_width = dimensions.width;
let in_height = dimensions.height;
@@ -159,7 +163,7 @@ fn render_to_pixbuf_at_size(
height: i32,
dpi: Dpi,
) -> Result<Pixbuf, RenderingError> {
- if width == 0 || height == 0 {
+ if width == 0 || height == 0 || dimensions.width == 0 || dimensions.height == 0 {
return empty_pixbuf();
}
@@ -172,17 +176,14 @@ fn render_to_pixbuf_at_size(
f64::from(height) / f64::from(dimensions.height),
);
- let dimensions = handle.get_dimensions_sub(None, dpi, &SizeCallback::default(), false)?;
- if !(dimensions.width == 0 || dimensions.height == 0) {
- let viewport = cairo::Rectangle {
- x: 0.0,
- y: 0.0,
- width: f64::from(dimensions.width),
- height: f64::from(dimensions.height),
- };
+ let viewport = cairo::Rectangle {
+ x: 0.0,
+ y: 0.0,
+ width: f64::from(dimensions.width),
+ height: f64::from(dimensions.height),
+ };
- handle.render_document(&cr, &viewport, dpi, false)?;
- }
+ handle.render_document(&cr, &viewport, dpi, false)?;
}
let shared_surface = SharedImageSurface::wrap(surface, SurfaceType::SRgb)?;
@@ -239,7 +240,7 @@ fn pixbuf_from_file_with_size_mode(
};
handle
- .get_dimensions(dpi, &SizeCallback::default(), false)
+ .get_dimensions_sub(None, dpi, &SizeCallback::default(), false)
.and_then(|dimensions| {
let (width, height) = get_final_size(&dimensions, size_mode);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]