From: José Bollo Date: Thu, 21 Apr 2016 15:49:30 +0000 (+0200) Subject: manages reference counting for events X-Git-Tag: blowfish_2.0.1~168 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=3bbfb37bb4572a110122b1a83e21261108a65460;p=src%2Fapp-framework-binder.git manages reference counting for events Events are sent to an unknown count of receivers. For this reason, the function push should not consume the json object given. Change-Id: Ie6c60074bd3822e7107d670f905cc86f56f826bf Signed-off-by: José Bollo --- diff --git a/plugins/samples/HelloWorld.c b/plugins/samples/HelloWorld.c index ec060e97..2714ef4e 100644 --- a/plugins/samples/HelloWorld.c +++ b/plugins/samples/HelloWorld.c @@ -54,7 +54,7 @@ static void pingBug (struct afb_req request) static void pingEvent(struct afb_req request) { json_object *query = afb_req_json(request); - afb_evmgr_push(afb_daemon_get_evmgr(interface->daemon), "event", json_object_get(query)); + afb_evmgr_push(afb_daemon_get_evmgr(interface->daemon), "event", query); ping(request, json_object_get(query), "event"); } diff --git a/src/session.c b/src/session.c index 3e08808f..d4abde65 100644 --- a/src/session.c +++ b/src/session.c @@ -25,6 +25,8 @@ #include #include +#include + #include "session.h" #define NOW (time(NULL)) @@ -351,7 +353,7 @@ static int send(struct AFB_clientCtx *clientCtx, const char *event, struct json_ result = 0; iter = clientCtx->senders; while (iter != NULL) { - iter->sender.itf->send(iter->sender.closure, event, object); + iter->sender.itf->send(iter->sender.closure, event, json_object_get(object)); result++; iter = iter->next; }