aboutsummaryrefslogtreecommitdiffstats
path: root/src/sink.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-10-27 14:15:31 -0400
committerDavid Robillard <d@drobilla.net>2022-01-28 21:57:24 -0500
commit30487c277ac5d4be5786733ca7b98adb4c810ae9 (patch)
treef1b00a7725d74a594fcd91de2aea924485356528 /src/sink.c
parent56cceb103dc633d6af957472945e792187a5dd4e (diff)
downloadserd-30487c277ac5d4be5786733ca7b98adb4c810ae9.tar.gz
serd-30487c277ac5d4be5786733ca7b98adb4c810ae9.tar.bz2
serd-30487c277ac5d4be5786733ca7b98adb4c810ae9.zip
Add custom allocator support
Diffstat (limited to 'src/sink.c')
-rw-r--r--src/sink.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/sink.c b/src/sink.c
index 3e22f11c..f9c46f09 100644
--- a/src/sink.c
+++ b/src/sink.c
@@ -16,6 +16,7 @@
#include "sink.h"
+#include "memory.h"
#include "statement.h"
#include "serd/serd.h"
@@ -29,13 +30,16 @@ serd_sink_new(const SerdWorld* const world,
SerdEventFunc event_func,
SerdFreeFunc free_handle)
{
- (void)world;
+ assert(world);
- SerdSink* sink = (SerdSink*)calloc(1, sizeof(SerdSink));
+ SerdSink* sink = (SerdSink*)serd_wcalloc(world, 1, sizeof(SerdSink));
- sink->handle = handle;
- sink->on_event = event_func;
- sink->free_handle = free_handle;
+ if (sink) {
+ sink->world = world;
+ sink->handle = handle;
+ sink->on_event = event_func;
+ sink->free_handle = free_handle;
+ }
return sink;
}
@@ -48,7 +52,7 @@ serd_sink_free(SerdSink* sink)
sink->free_handle(sink->handle);
}
- free(sink);
+ serd_wfree(sink->world, sink);
}
}