diff options
Diffstat (limited to 'src/instance.c')
-rw-r--r-- | src/instance.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/instance.c b/src/instance.c index 5fa47fa..ea109d5 100644 --- a/src/instance.c +++ b/src/instance.c @@ -31,12 +31,6 @@ lilv_plugin_instantiate(const LilvPlugin* plugin, LilvInstance* result = NULL; - const LV2_Feature** local_features = NULL; - if (features == NULL) { - local_features = (const LV2_Feature**)malloc(sizeof(LV2_Feature)); - local_features[0] = NULL; - } - const LilvNode* const lib_uri = lilv_plugin_get_library_uri(plugin); const LilvNode* const bundle_uri = lilv_plugin_get_bundle_uri(plugin); @@ -56,6 +50,12 @@ lilv_plugin_instantiate(const LilvPlugin* plugin, return NULL; } + const LV2_Feature** local_features = NULL; + if (features == NULL) { + local_features = (const LV2_Feature**)malloc(sizeof(LV2_Feature)); + local_features[0] = NULL; + } + // Search for plugin by URI for (uint32_t i = 0; true; ++i) { const LV2_Descriptor* ld = lilv_lib_get_plugin(lib, i); @@ -93,6 +93,8 @@ lilv_plugin_instantiate(const LilvPlugin* plugin, } } + free(local_features); + if (result) { // Failed to instantiate if (result->lv2_handle == NULL) { @@ -105,8 +107,6 @@ lilv_plugin_instantiate(const LilvPlugin* plugin, result->lv2_descriptor->connect_port(result->lv2_handle, i, NULL); } - free(local_features); - return result; } |