[gtk+/wip/matthiasc/gadget] css node: Warn more
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/gadget] css node: Warn more
- Date: Wed, 9 Dec 2015 02:46:04 +0000 (UTC)
commit 3bb15f874d0d51be0830aa34a652e254caeb335f
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Dec 8 16:51:21 2015 -0500
css node: Warn more
gtk_css_node_insert_before/after can easily create cycles
which later lead to stack overflows. Even if we're not
catching all cycles here, at least we can detect obviously
invalid arguments, such as inserting a node next to itself.
gtk/gtkcssnode.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c
index 560f306..39edee8 100644
--- a/gtk/gtkcssnode.c
+++ b/gtk/gtkcssnode.c
@@ -849,6 +849,7 @@ gtk_css_node_insert_after (GtkCssNode *parent,
GtkCssNode *previous_sibling)
{
g_return_if_fail (previous_sibling == NULL || previous_sibling->parent == parent);
+ g_return_if_fail (cssnode != previous_sibling);
if (cssnode->previous_sibling == previous_sibling &&
cssnode->parent == parent)
@@ -865,6 +866,7 @@ gtk_css_node_insert_before (GtkCssNode *parent,
GtkCssNode *next_sibling)
{
g_return_if_fail (next_sibling == NULL || next_sibling->parent == parent);
+ g_return_if_fail (cssnode != next_sibling);
if (cssnode->next_sibling == next_sibling &&
cssnode->parent == parent)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]