Rebuild with automatic stripping and fix tests
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: "Jan Alexander Steffens (heftig)" <[email protected]>
|
||||
Date: Fri, 17 Oct 2025 23:54:50 +0200
|
||||
Subject: [PATCH] xml: Treat user stop errors as successful parses
|
||||
|
||||
An attempt at fixing
|
||||
https://gitlab.gnome.org/GNOME/librsvg/-/issues/1201.
|
||||
---
|
||||
rsvg/src/xml/xml2.rs | 2 ++
|
||||
rsvg/src/xml/xml2_load.rs | 9 +++++++--
|
||||
2 files changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/rsvg/src/xml/xml2.rs b/rsvg/src/xml/xml2.rs
|
||||
index b2f9785ff6d3..5da2fbddc31e 100644
|
||||
--- a/rsvg/src/xml/xml2.rs
|
||||
+++ b/rsvg/src/xml/xml2.rs
|
||||
@@ -15,6 +15,8 @@ pub const XML_PARSE_BIG_LINES: libc::c_int = 1 << 22;
|
||||
|
||||
pub const XML_SAX2_MAGIC: libc::c_uint = 0xDEEDBEAF;
|
||||
|
||||
+pub const XML_ERR_USER_STOP: libc::c_int = 111;
|
||||
+
|
||||
pub type xmlDocPtr = gpointer;
|
||||
|
||||
pub type xmlEntityPtr = gpointer;
|
||||
diff --git a/rsvg/src/xml/xml2_load.rs b/rsvg/src/xml/xml2_load.rs
|
||||
index d9e4f3926db0..28e81e0e7ff7 100644
|
||||
--- a/rsvg/src/xml/xml2_load.rs
|
||||
+++ b/rsvg/src/xml/xml2_load.rs
|
||||
@@ -473,8 +473,13 @@ impl<'a> Xml2Parser<'a> {
|
||||
Err(LoadingError::from(io_error))
|
||||
} else if !xml_parse_success {
|
||||
let xerr = xmlCtxtGetLastError(parser as *mut _);
|
||||
- let msg = xml2_error_to_string(xerr);
|
||||
- Err(LoadingError::XmlParseError(msg))
|
||||
+ if !xerr.is_null() && (*xerr).code == XML_ERR_USER_STOP {
|
||||
+ // We stopped the parse ourselves
|
||||
+ Ok(())
|
||||
+ } else {
|
||||
+ let msg = xml2_error_to_string(xerr);
|
||||
+ Err(LoadingError::XmlParseError(msg))
|
||||
+ }
|
||||
} else {
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user