[librsvg: 6/10] rsvg_xml_state_steal_result(): Renamed from rsvg_xml_state_steal_tree()
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 6/10] rsvg_xml_state_steal_result(): Renamed from rsvg_xml_state_steal_tree()
- Date: Thu, 22 Nov 2018 20:22:02 +0000 (UTC)
commit 5568391d7bf5d0bc56e1c7133d5706bbb98f49f8
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Nov 22 12:36:59 2018 -0600
rsvg_xml_state_steal_result(): Renamed from rsvg_xml_state_steal_tree()
librsvg/rsvg-load.c | 4 ++--
rsvg_internals/src/lib.rs | 2 +-
rsvg_internals/src/xml.rs | 18 +++++++++++-------
3 files changed, 14 insertions(+), 10 deletions(-)
---
diff --git a/librsvg/rsvg-load.c b/librsvg/rsvg-load.c
index da58fb23..bb2861a9 100644
--- a/librsvg/rsvg-load.c
+++ b/librsvg/rsvg-load.c
@@ -51,7 +51,7 @@ typedef struct RsvgXmlState RsvgXmlState;
/* Implemented in rsvg_internals/src/xml.rs */
extern RsvgXmlState *rsvg_xml_state_new ();
extern void rsvg_xml_state_free (RsvgXmlState *xml);
-extern RsvgTree *rsvg_xml_state_steal_tree(RsvgXmlState *xml);
+extern void rsvg_xml_state_steal_result(RsvgXmlState *xml, RsvgTree **out_tree);
extern void rsvg_xml_state_start_element(RsvgXmlState *xml, RsvgHandle *handle, const char *name,
RsvgPropertyBag atts);
extern void rsvg_xml_state_end_element(RsvgXmlState *xml, RsvgHandle *handle, const char *name);
extern void rsvg_xml_state_characters(RsvgXmlState *xml, const char *unterminated_text, gsize len);
@@ -145,7 +145,7 @@ void
rsvg_load_steal_result (RsvgLoad *load,
RsvgTree **out_tree)
{
- *out_tree = rsvg_xml_state_steal_tree (load->xml.rust_state);
+ rsvg_xml_state_steal_result (load->xml.rust_state, out_tree);
}
static void
diff --git a/rsvg_internals/src/lib.rs b/rsvg_internals/src/lib.rs
index 627ddf0f..281b8442 100644
--- a/rsvg_internals/src/lib.rs
+++ b/rsvg_internals/src/lib.rs
@@ -71,7 +71,7 @@ pub use xml::{
rsvg_xml_state_free,
rsvg_xml_state_new,
rsvg_xml_state_start_element,
- rsvg_xml_state_steal_tree,
+ rsvg_xml_state_steal_result,
};
#[macro_use]
diff --git a/rsvg_internals/src/xml.rs b/rsvg_internals/src/xml.rs
index 8b0c6dee..269627c3 100644
--- a/rsvg_internals/src/xml.rs
+++ b/rsvg_internals/src/xml.rs
@@ -395,15 +395,19 @@ pub extern "C" fn rsvg_xml_state_free(xml: *mut RsvgXmlState) {
}
#[no_mangle]
-pub extern "C" fn rsvg_xml_state_steal_tree(xml: *mut RsvgXmlState) -> *mut RsvgTree {
+pub unsafe extern "C" fn rsvg_xml_state_steal_result(
+ xml: *mut RsvgXmlState,
+ out_tree: *mut *mut RsvgTree,
+) {
assert!(!xml.is_null());
- let xml = unsafe { &mut *(xml as *mut XmlState) };
+ assert!(!out_tree.is_null());
- if let Some(tree) = xml.steal_tree() {
- Box::into_raw(tree) as *mut RsvgTree
- } else {
- ptr::null_mut()
- }
+ let xml = &mut *(xml as *mut XmlState);
+
+ *out_tree = xml
+ .steal_tree()
+ .map(|tree| Box::into_raw(tree) as *mut RsvgTree)
+ .unwrap_or(ptr::null_mut());
}
#[no_mangle]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]