# HG changeset patch # User William Pitcock # Date 1186648475 18000 # Node ID a26138e391ee9e790950b8f93f54777bf66914c7 # Parent 065ae09902471e9b3dce7b20585a97d607239889 Tuple engine cleanups. diff -r 065ae0990247 -r a26138e391ee src/audacious/tuple.c --- a/src/audacious/tuple.c Thu Aug 09 03:13:25 2007 -0500 +++ b/src/audacious/tuple.c Thu Aug 09 03:34:35 2007 -0500 @@ -40,10 +40,22 @@ static mowgli_heap_t *tuple_value_heap = NULL; static mowgli_object_class_t tuple_klass; +/* iterative destructor of tuple values. */ +static void +tuple_value_destroy(mowgli_dictionary_elem_t *delem, void *privdata) +{ + TupleValue *value = (TupleValue *) delem->data; + + if (value->type == TUPLE_STRING) + g_free(value->value.string); + + mowgli_heap_free(tuple_value_heap, value); +} + static void tuple_destroy(Tuple *tuple) { - mowgli_dictionary_destroy(tuple->dict); + mowgli_dictionary_destroy(tuple->dict, tuple_value_destroy, NULL); mowgli_heap_free(tuple_heap, tuple); } @@ -133,8 +145,8 @@ { TupleValue *value; - g_return_if_fail(tuple != NULL); - g_return_if_fail(field != NULL); + g_return_val_if_fail(tuple != NULL, TUPLE_UNKNOWN); + g_return_val_if_fail(field != NULL, TUPLE_UNKNOWN); if ((value = mowgli_dictionary_retrieve(tuple->dict, field)) == NULL) return TUPLE_UNKNOWN; @@ -147,8 +159,8 @@ { TupleValue *value; - g_return_if_fail(tuple != NULL); - g_return_if_fail(field != NULL); + g_return_if_fail(tuple != NULL, NULL); + g_return_if_fail(field != NULL, NULL); if ((value = mowgli_dictionary_retrieve(tuple->dict, field)) == NULL) return NULL; @@ -164,8 +176,8 @@ { TupleValue *value; - g_return_if_fail(tuple != NULL); - g_return_if_fail(field != NULL); + g_return_if_fail(tuple != NULL, 0); + g_return_if_fail(field != NULL, 0); if ((value = mowgli_dictionary_retrieve(tuple->dict, field)) == NULL) return NULL;