diff options
author | cbdev <cb@cbcdn.com> | 2019-12-11 23:20:34 +0100 |
---|---|---|
committer | cbdev <cb@cbcdn.com> | 2019-12-11 23:20:34 +0100 |
commit | f6d6eefe9bb9934f4fa3e665734d746f02471cdb (patch) | |
tree | 4f177149cd7a39ba0214b0edf337362c7ead3234 /backend.c | |
parent | f65fb8baaba285f5ff4b02af111420ba4479f5d9 (diff) | |
download | midimonster-f6d6eefe9bb9934f4fa3e665734d746f02471cdb.tar.gz midimonster-f6d6eefe9bb9934f4fa3e665734d746f02471cdb.tar.bz2 midimonster-f6d6eefe9bb9934f4fa3e665734d746f02471cdb.zip |
Simplify plugin_stop API
Diffstat (limited to 'backend.c')
-rw-r--r-- | backend.c | 22 |
1 files changed, 20 insertions, 2 deletions
@@ -150,6 +150,12 @@ MM_API int mm_backend_instances(char* name, size_t* ninst, instance*** inst){ } *ninst = n; + + if(!n){ + *inst = NULL; + return 0; + } + *inst = calloc(n, sizeof(instance*)); if(!*inst){ fprintf(stderr, "Failed to allocate memory\n"); @@ -290,10 +296,22 @@ int backends_start(){ } int backends_stop(){ - size_t u; + size_t u, n; + instance** inst = NULL; + for(u = 0; u < nbackends; u++){ - backends[u].shutdown(); + //fetch list of instances + if(mm_backend_instances(backends[u].name, &n, &inst)){ + fprintf(stderr, "Failed to fetch instance list for shutdown of backend %s\n", backends[u].name); + n = 0; + inst = NULL; + } + + backends[u].shutdown(n, inst); + free(inst); + inst = NULL; } + free(backends); nbackends = 0; return 0; |