void ags_recall_dependency_test_find_dependency() { AgsRecall *recall[3]; AgsRecallDependency *recall_dependency[3]; GList *list, *current; list = NULL; /* dependency #0 */ recall[0] = g_object_new(AGS_TYPE_RECALL, NULL); recall_dependency[0] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall[0], NULL); list = g_list_prepend(list, recall_dependency[0]); /* dependency #1 */ recall[1] = g_object_new(AGS_TYPE_RECALL, NULL); recall_dependency[1] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall[1], NULL); list = g_list_prepend(list, recall_dependency[1]); /* dependency #2 */ recall[2] = g_object_new(AGS_TYPE_RECALL, NULL); recall_dependency[2] = g_object_new(AGS_TYPE_RECALL_DEPENDENCY, "dependency", recall[2], NULL); list = g_list_prepend(list, recall_dependency[2]); /* find and assert */ CU_ASSERT((current = ags_recall_dependency_find_dependency(list, recall[0])) != NULL && AGS_RECALL_DEPENDENCY(current->data)->dependency == recall[0]); CU_ASSERT((current = ags_recall_dependency_find_dependency(list, recall[1])) != NULL && AGS_RECALL_DEPENDENCY(current->data)->dependency == recall[1]); CU_ASSERT((current = ags_recall_dependency_find_dependency(list, recall[2])) != NULL && AGS_RECALL_DEPENDENCY(current->data)->dependency == recall[2]); }
/** * ags_recall_remove_dependency: * @recall an #AgsRecall * @dependency an #AgsRecall * * Remove a prior associated dependency. */ void ags_recall_remove_dependency(AgsRecall *recall, AgsRecall *dependency) { AgsRecallDependency *recall_dependency; GList *dependencies; if(recall == NULL || dependency == NULL) return; dependencies = ags_recall_dependency_find_dependency(recall->dependencies, (GObject *) dependency); if(dependencies == NULL) return; recall_dependency = AGS_RECALL_DEPENDENCY(dependencies->data); recall->dependencies = g_list_delete_link(recall->dependencies, dependencies); g_object_unref(G_OBJECT(recall_dependency)); }