[librsvg] pattern_apply_fallback(): Don't access node->children->len directly
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] pattern_apply_fallback(): Don't access node->children->len directly
- Date: Fri, 27 Jan 2017 02:29:39 +0000 (UTC)
commit 3449c93c7fbb696d4217fd74cfbe68cc43f4353f
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Jan 26 20:28:13 2017 -0600
pattern_apply_fallback(): Don't access node->children->len directly
Use a helper function to see if a node has any children at all.
rsvg-paint-server.c | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
---
diff --git a/rsvg-paint-server.c b/rsvg-paint-server.c
index 07860d8..c465c29 100644
--- a/rsvg-paint-server.c
+++ b/rsvg-paint-server.c
@@ -545,6 +545,24 @@ pattern_get_fallback (RsvgNode *node)
return NULL;
}
+static gboolean
+has_children_foreach (RsvgNode *node, gpointer data)
+{
+ gboolean *has_child = data;
+
+ *has_child = TRUE;
+ return FALSE; /* stop since we found a child */
+}
+
+static gboolean
+has_children (RsvgNode *node)
+{
+ gboolean has_child = FALSE;
+
+ rsvg_node_foreach_child (node, has_children_foreach, &has_child);
+ return has_child;
+}
+
static void
pattern_apply_fallback (RsvgNode *pattern_node, RsvgNode *fallback_node)
{
@@ -594,7 +612,7 @@ pattern_apply_fallback (RsvgNode *pattern_node, RsvgNode *fallback_node)
pattern->hascbox = TRUE;
pattern->obj_cbbox = fallback->obj_cbbox;
}
- if (!pattern->super.children->len && fallback->super.children->len) {
+ if (!has_children (pattern_node) && has_children (fallback_node)) {
pattern->super.children = fallback->super.children;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]