summaryrefslogtreecommitdiffhomepage
path: root/mixlib/mix_predicate_list.c
diff options
context:
space:
mode:
Diffstat (limited to 'mixlib/mix_predicate_list.c')
-rw-r--r--mixlib/mix_predicate_list.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/mixlib/mix_predicate_list.c b/mixlib/mix_predicate_list.c
index 3e4fe08..42f6ea6 100644
--- a/mixlib/mix_predicate_list.c
+++ b/mixlib/mix_predicate_list.c
@@ -85,13 +85,19 @@ mix_predicate_list_add (mix_predicate_list_t *list, mix_predicate_t *predicate)
(void)mix_predicate_eval (predicate, list->vm);
}
-void
+gboolean
mix_predicate_list_remove (mix_predicate_list_t *list,
mix_predicate_t *predicate)
{
- g_return_if_fail (list != NULL);
- g_return_if_fail (predicate != NULL);
- list->predicates = g_slist_remove (list->predicates, predicate);
+ g_return_val_if_fail (list != NULL, FALSE);
+ g_return_val_if_fail (predicate != NULL, FALSE);
+ if (g_slist_find (list->predicates, predicate))
+ {
+ list->predicates = g_slist_remove (list->predicates, predicate);
+ return TRUE;
+ }
+ else
+ return FALSE;
}
void