[gtk/wip/ebassi/constraint-layout: 61/69] constraints: Add some internal apis
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/ebassi/constraint-layout: 61/69] constraints: Add some internal apis
- Date: Sun, 30 Jun 2019 23:15:14 +0000 (UTC)
commit e3c4fb67cac173e37be320f48566d410eca87fed
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Jun 29 14:21:58 2019 +0000
constraints: Add some internal apis
Checking if a set is empty or a singleton can
be done more efficiently than determining its size.
gtk/gtkconstraintexpression.c | 12 ++++++++++++
gtk/gtkconstraintexpressionprivate.h | 6 ++++++
gtk/gtkconstraintsolver.c | 4 ++--
3 files changed, 20 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkconstraintexpression.c b/gtk/gtkconstraintexpression.c
index 382d9514b9..f3a0a37f79 100644
--- a/gtk/gtkconstraintexpression.c
+++ b/gtk/gtkconstraintexpression.c
@@ -505,6 +505,18 @@ gtk_constraint_variable_set_size (GtkConstraintVariableSet *set)
return g_sequence_get_length (set->set);
}
+gboolean
+gtk_constraint_variable_set_is_empty (GtkConstraintVariableSet *set)
+{
+ return g_sequence_is_empty (set->set);
+}
+
+gboolean
+gtk_constraint_variable_set_is_singleton (GtkConstraintVariableSet *set)
+{
+ return g_sequence_iter_next (g_sequence_get_begin_iter (set->set)) == g_sequence_get_end_iter (set->set);
+}
+
/*< private >
* GtkConstraintVariableSetIter:
*
diff --git a/gtk/gtkconstraintexpressionprivate.h b/gtk/gtkconstraintexpressionprivate.h
index b498f88594..942915ad38 100644
--- a/gtk/gtkconstraintexpressionprivate.h
+++ b/gtk/gtkconstraintexpressionprivate.h
@@ -94,6 +94,12 @@ gboolean
gtk_constraint_variable_set_remove (GtkConstraintVariableSet *set,
GtkConstraintVariable *variable);
+gboolean
+gtk_constraint_variable_set_is_empty (GtkConstraintVariableSet *set);
+
+gboolean
+gtk_constraint_variable_set_is_singleton (GtkConstraintVariableSet *set);
+
int
gtk_constraint_variable_set_size (GtkConstraintVariableSet *set);
diff --git a/gtk/gtkconstraintsolver.c b/gtk/gtkconstraintsolver.c
index 278e2e4984..e0f3e418cd 100644
--- a/gtk/gtkconstraintsolver.c
+++ b/gtk/gtkconstraintsolver.c
@@ -1168,7 +1168,7 @@ gtk_constraint_solver_choose_subject (GtkConstraintSolver *self,
GtkConstraintVariableSet *cset = g_hash_table_lookup (self->columns, t_v);
if (cset == NULL ||
- (gtk_constraint_variable_set_size (cset) == 1 &&
+ (gtk_constraint_variable_set_is_singleton (cset) &&
g_hash_table_contains (self->columns, self->objective)))
{
subject = t_v;
@@ -1865,7 +1865,7 @@ gtk_constraint_solver_remove_constraint (GtkConstraintSolver *self,
if (exit_var == NULL)
{
- if (gtk_constraint_variable_set_size (set) == 0)
+ if (gtk_constraint_variable_set_is_empty (set))
gtk_constraint_solver_remove_column (self, marker);
else
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]