aboutsummaryrefslogtreecommitdiffhomepage
path: root/backends/loopback.c
diff options
context:
space:
mode:
Diffstat (limited to 'backends/loopback.c')
-rw-r--r--backends/loopback.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/backends/loopback.c b/backends/loopback.c
index 085d1df..4274832 100644
--- a/backends/loopback.c
+++ b/backends/loopback.c
@@ -34,19 +34,14 @@ static int loopback_configure_instance(instance* inst, char* option, char* value
return 0;
}
-static instance* loopback_instance(){
- instance* i = mm_instance();
- if(!i){
- return NULL;
- }
-
- i->impl = calloc(1, sizeof(loopback_instance_data));
- if(!i->impl){
+static int loopback_instance(instance* inst){
+ inst->impl = calloc(1, sizeof(loopback_instance_data));
+ if(!inst->impl){
LOG("Failed to allocate memory");
- return NULL;
+ return 1;
}
- return i;
+ return 0;
}
static channel* loopback_channel(instance* inst, char* spec, uint8_t flags){
@@ -107,6 +102,7 @@ static int loopback_shutdown(size_t n, instance** inst){
}
free(data->name);
free(inst[u]->impl);
+ inst[u]->impl = NULL;
}
LOG("Backend shut down");