[librsvg: 12/32] Rename RenderingError::InstancingLimit to LimitExceeded
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 12/32] Rename RenderingError::InstancingLimit to LimitExceeded
- Date: Fri, 4 Dec 2020 21:11:31 +0000 (UTC)
commit 73d8572dd313caecbe02a5e0a229541a20532e4c
Author: Federico Mena Quintero <federico gnome org>
Date: Wed Nov 25 14:45:59 2020 -0600
Rename RenderingError::InstancingLimit to LimitExceeded
Similar to the variant in LoadingError.
src/drawing_ctx.rs | 4 +++-
src/error.rs | 9 +++------
src/paint_server.rs | 6 ++++--
tests/src/errors.rs | 2 +-
4 files changed, 11 insertions(+), 10 deletions(-)
---
diff --git a/src/drawing_ctx.rs b/src/drawing_ctx.rs
index 78491169..acc11a21 100644
--- a/src/drawing_ctx.rs
+++ b/src/drawing_ctx.rs
@@ -1644,7 +1644,9 @@ impl DrawingCtx {
}
Err(AcquireError::MaxReferencesExceeded) => {
- return Err(RenderingError::InstancingLimit);
+ return Err(RenderingError::LimitExceeded(String::from(
+ "maximum number of referenced objects",
+ )));
}
Err(AcquireError::InvalidLinkType(_)) => unreachable!(),
diff --git a/src/error.rs b/src/error.rs
index 0b6d899c..a5bd8f37 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -122,11 +122,8 @@ pub enum RenderingError {
/// A Cairo error happened during rendering.
Cairo(cairo::Status),
- /// The maximum number of rendered objects was reached.
- ///
- /// Librsvg has a limit on the number of rendered objects, so that malicious
- /// files cannot consume CPU time arbitrarily.
- InstancingLimit,
+ /// A particular implementation-defined limit was exceeded.
+ LimitExceeded(String),
/// Tried to reference an SVG element from a fragment identifier that is incorrect.
InvalidId(DefsLookupErrorKind),
@@ -144,7 +141,7 @@ impl error::Error for RenderingError {}
impl fmt::Display for RenderingError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {
- RenderingError::InstancingLimit => write!(f, "instancing limit"),
+ RenderingError::LimitExceeded(ref s) => write!(f, "limit exceeded: {}", s),
RenderingError::OutOfMemory => write!(f, "out of memory"),
RenderingError::HandleIsNotLoaded => write!(f, "SVG data is not loaded into handle"),
RenderingError::Cairo(ref status) => write!(f, "cairo error: {:?}", status),
diff --git a/src/paint_server.rs b/src/paint_server.rs
index 974477f7..017dfd2b 100644
--- a/src/paint_server.rs
+++ b/src/paint_server.rs
@@ -103,8 +103,10 @@ impl PaintServer {
})
.or_else(|err| match (err, alternate) {
(AcquireError::MaxReferencesExceeded, _) => {
- rsvg_log!("maximum number of references exceeded");
- Err(RenderingError::InstancingLimit)
+ rsvg_log!("exceeded maximum number of referenced objects");
+ Err(RenderingError::LimitExceeded(String::from(
+ "maximum number of referenced objects",
+ )))
}
// The following two cases catch AcquireError::CircularReference, which for
diff --git a/tests/src/errors.rs b/tests/src/errors.rs
index 19ce3578..6ef35603 100644
--- a/tests/src/errors.rs
+++ b/tests/src/errors.rs
@@ -45,7 +45,7 @@ fn rendering_instancing_limit(name: &str) {
height: 500.0,
},
),
- Err(RenderingError::InstancingLimit)
+ Err(RenderingError::LimitExceeded(_))
));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]