aboutsummaryrefslogtreecommitdiffstats
path: root/src/model.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-09-11 01:28:39 -0400
committerDavid Robillard <d@drobilla.net>2022-01-28 21:57:07 -0500
commit56cceb103dc633d6af957472945e792187a5dd4e (patch)
tree154a7b228f4f2bfda422d16feb9863d8a6d6992a /src/model.c
parenteb804125430e3445e85c423b28e1c41346772ed0 (diff)
downloadserd-56cceb103dc633d6af957472945e792187a5dd4e.tar.gz
serd-56cceb103dc633d6af957472945e792187a5dd4e.tar.bz2
serd-56cceb103dc633d6af957472945e792187a5dd4e.zip
Update zix and make it a proper subproject
Diffstat (limited to 'src/model.c')
-rw-r--r--src/model.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/model.c b/src/model.c
index 0cf3b842..4e79fa77 100644
--- a/src/model.c
+++ b/src/model.c
@@ -73,7 +73,7 @@ serd_model_add_index(SerdModel* const model, const SerdStatementOrder order)
const unsigned* const ordering = orderings[order];
const ZixComparator comparator = serd_model_index_comparator(model, order);
- model->indices[order] = zix_btree_new(comparator, ordering);
+ model->indices[order] = zix_btree_new(NULL, comparator, ordering);
ZixStatus zst = model->indices[order] ? ZIX_STATUS_SUCCESS : ZIX_STATUS_ERROR;
@@ -103,7 +103,7 @@ serd_model_drop_index(SerdModel* const model, const SerdStatementOrder order)
return SERD_BAD_CALL;
}
- zix_btree_free(model->indices[order], NULL);
+ zix_btree_free(model->indices[order], NULL, NULL);
model->indices[order] = NULL;
return SERD_SUCCESS;
}
@@ -246,6 +246,13 @@ serd_model_drop_statement(SerdModel* const model,
serd_statement_free(statement);
}
+static void
+destroy_tree_statement(void* ptr, const void* user_data)
+{
+ (void)user_data;
+ serd_statement_free((SerdStatement*)ptr);
+}
+
void
serd_model_free(SerdModel* const model)
{
@@ -255,11 +262,11 @@ serd_model_free(SerdModel* const model)
// Free all statements (which are owned by the default index)
ZixBTree* const default_index = model->indices[model->default_order];
- zix_btree_clear(default_index, (ZixDestroyFunc)serd_statement_free);
+ zix_btree_clear(default_index, destroy_tree_statement, NULL);
// Free indices themselves
for (unsigned i = 0u; i < N_STATEMENT_ORDERS; ++i) {
- zix_btree_free(model->indices[i], NULL);
+ zix_btree_free(model->indices[i], NULL, NULL);
}
serd_nodes_free(model->nodes);