X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-api-so-v3.c;h=c48ab74df51622e9b31b1a8a829c6b5e97adb9cc;hb=043c27c3a8fd323d59e41288b6fd24f0e9bfa9a3;hp=b02f3c8896fdc68d97494c5f8c6275fc96b669ed;hpb=cd6d4492a271951c856ce611b88df0b4cc0ae7f0;p=src%2Fapp-framework-binder.git diff --git a/src/afb-api-so-v3.c b/src/afb-api-so-v3.c index b02f3c88..c48ab74d 100644 --- a/src/afb-api-so-v3.c +++ b/src/afb-api-so-v3.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018 "IoT.bzh" + * Copyright (C) 2018, 2019 "IoT.bzh" * Author José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -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);