Fedora 30 packaging fix issu
[src/app-framework-binder.git] / src / afb-api-so-v3.c
index b02f3c8..727e9b6 100644 (file)
@@ -105,7 +105,7 @@ int afb_api_so_v3_add(const char *path, void *handle, struct afb_apiset *declare
                        goto error;
                }
 
-               api = afb_api_v3_create(declare_set, call_set, a.desc->api, a.desc->info, a.desc->noconcurrency, init, &a, 0);
+               api = afb_api_v3_create(declare_set, call_set, a.desc->api, a.desc->info, a.desc->noconcurrency, init, &a, 0, NULL, path);
                if (api)
                        return 1;
        } else {
@@ -116,8 +116,17 @@ int afb_api_so_v3_add(const char *path, void *handle, struct afb_apiset *declare
                }
 
                export = afb_export_create_none_for_path(declare_set, call_set, path, init, &a);
-               if (export)
+               if (export) {
+                       /*
+                        *  No call is done to afb_export_unref(export) because:
+                        *   - legacy applications may use the root API emitting messages
+                        *   - it allows writting applications like bindings without API
+                        *  But this has the sad effect to introduce a kind of leak.
+                        *  To avoid this, if necessary further developement should list bindings
+                        *  and their data.
+                        */
                        return 1;
+               }
        }
 
        ERROR("binding [%s] initialisation failed", path);