[librsvg: 4/11] NodeData.new_element - consume the Attributes, all the way up and down
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 4/11] NodeData.new_element - consume the Attributes, all the way up and down
- Date: Thu, 10 Sep 2020 17:45:22 +0000 (UTC)
commit 0c8a9584944eed6aa6d9954d943f6cbf1b26aa82
Author: Federico Mena Quintero <federico gnome org>
Date: Fri Sep 4 19:27:01 2020 -0500
NodeData.new_element - consume the Attributes, all the way up and down
rsvg_internals/src/document.rs | 2 +-
rsvg_internals/src/element.rs | 6 +++---
rsvg_internals/src/gradient.rs | 6 ++++--
rsvg_internals/src/node.rs | 2 +-
rsvg_internals/src/pattern.rs | 2 +-
rsvg_internals/src/xml.rs | 8 ++++----
rsvg_internals/src/xml2_load.rs | 2 +-
7 files changed, 15 insertions(+), 13 deletions(-)
---
diff --git a/rsvg_internals/src/document.rs b/rsvg_internals/src/document.rs
index 9f3ebda6..1675f2ce 100644
--- a/rsvg_internals/src/document.rs
+++ b/rsvg_internals/src/document.rs
@@ -395,7 +395,7 @@ impl DocumentBuilder {
pub fn append_element(
&mut self,
name: &QualName,
- attrs: &Attributes,
+ attrs: Attributes,
parent: Option<Node>,
) -> Node {
let node = Node::new(NodeData::new_element(name, attrs));
diff --git a/rsvg_internals/src/element.rs b/rsvg_internals/src/element.rs
index be886d02..c528963e 100644
--- a/rsvg_internals/src/element.rs
+++ b/rsvg_internals/src/element.rs
@@ -452,14 +452,14 @@ macro_rules! call_inner {
}
impl Element {
- /// Takes an XML element name and a list of attribute/value pairs and creates an [`Element`].
+ /// Takes an XML element name and consumes a list of attribute/value pairs to create an [`Element`].
///
/// This operation does not fail. Unknown element names simply produce a [`NonRendering`]
/// element.
///
/// [`Element`]: type.Element.html
/// [`NonRendering`]: ../structure/struct.NonRendering.html
- pub fn new(name: &QualName, attrs: &Attributes) -> Element {
+ pub fn new(name: &QualName, attrs: Attributes) -> Element {
let mut id = None;
let mut class = None;
@@ -499,7 +499,7 @@ impl Element {
let mut element = create_fn(name, id, class);
- if let Err(e) = element.set_attributes(attrs) {
+ if let Err(e) = element.set_attributes(&attrs) {
element.set_error(e);
}
diff --git a/rsvg_internals/src/gradient.rs b/rsvg_internals/src/gradient.rs
index 529e4656..64bd5977 100644
--- a/rsvg_internals/src/gradient.rs
+++ b/rsvg_internals/src/gradient.rs
@@ -710,16 +710,18 @@ mod tests {
let node = Node::new(NodeData::new_element(
&QualName::new(None, ns!(svg), local_name!("linearGradient")),
- &attrs,
+ attrs,
));
let unresolved = borrow_element_as!(node, LinearGradient).get_unresolved(&node);
let gradient = unresolved.gradient.resolve_from_defaults();
assert!(gradient.is_resolved());
+ let attrs = unsafe { Attributes::new_from_xml2_attributes(0, ptr::null()) };
+
let node = Node::new(NodeData::new_element(
&QualName::new(None, ns!(svg), local_name!("radialGradient")),
- &attrs,
+ attrs,
));
let unresolved = borrow_element_as!(node, RadialGradient).get_unresolved(&node);
diff --git a/rsvg_internals/src/node.rs b/rsvg_internals/src/node.rs
index f12c2917..4a811ed6 100644
--- a/rsvg_internals/src/node.rs
+++ b/rsvg_internals/src/node.rs
@@ -68,7 +68,7 @@ pub enum NodeData {
}
impl NodeData {
- pub fn new_element(name: &QualName, attrs: &Attributes) -> NodeData {
+ pub fn new_element(name: &QualName, attrs: Attributes) -> NodeData {
NodeData::Element(Element::new(name, attrs))
}
diff --git a/rsvg_internals/src/pattern.rs b/rsvg_internals/src/pattern.rs
index ad8a1436..e6071e9a 100644
--- a/rsvg_internals/src/pattern.rs
+++ b/rsvg_internals/src/pattern.rs
@@ -429,7 +429,7 @@ mod tests {
let node = Node::new(NodeData::new_element(
&QualName::new(None, ns!(svg), local_name!("pattern")),
- &attrs,
+ attrs,
));
let unresolved = borrow_element_as!(node, Pattern).get_unresolved(&node);
diff --git a/rsvg_internals/src/xml.rs b/rsvg_internals/src/xml.rs
index 6cbbeea3..a497481e 100644
--- a/rsvg_internals/src/xml.rs
+++ b/rsvg_internals/src/xml.rs
@@ -166,7 +166,7 @@ impl XmlState {
}
}
- pub fn start_element(&self, name: QualName, attrs: &Attributes) -> Result<(), ()> {
+ pub fn start_element(&self, name: QualName, attrs: Attributes) -> Result<(), ()> {
self.check_limits()?;
let context = self.inner.borrow().context();
@@ -312,7 +312,7 @@ impl XmlState {
}
}
- fn element_creation_start_element(&self, name: &QualName, attrs: &Attributes) -> Context {
+ fn element_creation_start_element(&self, name: &QualName, attrs: Attributes) -> Context {
if name.expanded() == xinclude_name!("include") {
self.xinclude_start_element(name, attrs)
} else {
@@ -388,7 +388,7 @@ impl XmlState {
Context::UnsupportedStyleChild
}
- fn xinclude_start_element(&self, _name: &QualName, attrs: &Attributes) -> Context {
+ fn xinclude_start_element(&self, _name: &QualName, attrs: Attributes) -> Context {
let mut href = None;
let mut parse = None;
let mut encoding = None;
@@ -443,7 +443,7 @@ impl XmlState {
&self,
ctx: &XIncludeContext,
name: &QualName,
- attrs: &Attributes,
+ attrs: Attributes,
) -> Context {
if ctx.need_fallback {
if name.expanded() == xinclude_name!("include") {
diff --git a/rsvg_internals/src/xml2_load.rs b/rsvg_internals/src/xml2_load.rs
index aeae2359..771b5e02 100644
--- a/rsvg_internals/src/xml2_load.rs
+++ b/rsvg_internals/src/xml2_load.rs
@@ -216,7 +216,7 @@ unsafe extern "C" fn sax_start_element_ns_cb(
let nb_attributes = nb_attributes as usize;
let attrs = Attributes::new_from_xml2_attributes(nb_attributes, attributes as *const *const _);
- if let Err(e) = xml2_parser.state.start_element(qual_name, &attrs) {
+ if let Err(e) = xml2_parser.state.start_element(qual_name, attrs) {
let _: () = e; // guard in case we change the error type later
let parser = xml2_parser.parser.get();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]