[librsvg: 4/10] text: remove usage of NodeType::Chars



commit e4c216adbfa34ead3a2891a9abab139297870d91
Author: Paolo Borelli <pborelli gnome org>
Date:   Mon Mar 16 07:51:40 2020 +0100

    text: remove usage of NodeType::Chars

 rsvg_internals/src/text.rs | 62 ++++++++++++++++++++++++----------------------
 1 file changed, 33 insertions(+), 29 deletions(-)
---
diff --git a/rsvg_internals/src/text.rs b/rsvg_internals/src/text.rs
index 1b4345dc..fcf25cef 100644
--- a/rsvg_internals/src/text.rs
+++ b/rsvg_internals/src/text.rs
@@ -428,38 +428,42 @@ fn children_to_chunks(
     depth: usize,
 ) {
     for child in node.children() {
-        match child.borrow().get_type() {
-            NodeType::Chars => {
-                let values = cascaded.get();
-                child
-                    .borrow_chars()
-                    .to_chunks(&child, values, chunks, dx, dy, depth);
-            }
+        if child.is_chars() {
+            let values = cascaded.get();
+            child
+                .borrow_chars()
+                .to_chunks(&child, values, chunks, dx, dy, depth);
+        } else {
+            assert!(child.is_element());
 
-            NodeType::TSpan => {
-                let cascaded = CascadedValues::new(cascaded, &child);
-                child.borrow_element().get_impl::<TSpan>().to_chunks(
-                    &child,
-                    acquired_nodes,
-                    &cascaded,
-                    draw_ctx,
-                    chunks,
-                    depth + 1,
-                );
-            }
+            let elt = child.borrow_element();
 
-            NodeType::TRef => {
-                let cascaded = CascadedValues::new(cascaded, &child);
-                child.borrow_element().get_impl::<TRef>().to_chunks(
-                    &child,
-                    acquired_nodes,
-                    &cascaded,
-                    chunks,
-                    depth + 1,
-                );
-            }
+            match elt.get_type() {
+                NodeType::TSpan => {
+                    let cascaded = CascadedValues::new(cascaded, &child);
+                    elt.get_impl::<TSpan>().to_chunks(
+                        &child,
+                        acquired_nodes,
+                        &cascaded,
+                        draw_ctx,
+                        chunks,
+                        depth + 1,
+                    );
+                }
+
+                NodeType::TRef => {
+                    let cascaded = CascadedValues::new(cascaded, &child);
+                    elt.get_impl::<TRef>().to_chunks(
+                        &child,
+                        acquired_nodes,
+                        &cascaded,
+                        chunks,
+                        depth + 1,
+                    );
+                }
 
-            _ => (),
+                _ => (),
+            }
         }
     }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]