diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-09-22 07:39:49 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-10-09 14:08:32 +0200 |
commit | 39a955678ac5f16646e5841a720d1d358600dabb (patch) | |
tree | 0010dc84e54508eee74efce06d1c420361f47ae5 | |
parent | 5928e8fc14c2edabc0bc104fff7542819e06d45a (diff) |
Make addref for request return the pointer
Change-Id: I4286cbd9d02b406570185d265e7b925c43bbc42c
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r-- | include/afb/afb-request-itf.h | 2 | ||||
-rw-r--r-- | include/afb/afb-request.h | 4 | ||||
-rw-r--r-- | src/afb-xreq.c | 7 |
3 files changed, 7 insertions, 6 deletions
diff --git a/include/afb/afb-request-itf.h b/include/afb/afb-request-itf.h index f28788ee..4c62b3de 100644 --- a/include/afb/afb-request-itf.h +++ b/include/afb/afb-request-itf.h @@ -94,7 +94,7 @@ struct afb_request_itf void *value, void (*free_value)(void*)); - void (*addref)( + struct afb_request *(*addref)( struct afb_request *request); void (*unref)( diff --git a/include/afb/afb-request.h b/include/afb/afb-request.h index 052cbab9..c2585fc5 100644 --- a/include/afb/afb-request.h +++ b/include/afb/afb-request.h @@ -204,9 +204,9 @@ static inline void afb_request_context_clear(struct afb_request *request) * This function MUST be called by asynchronous implementations * of verbs if no reply was sent before returning. */ -static inline void afb_request_addref(struct afb_request *request) +static inline struct afb_request *afb_request_addref(struct afb_request *request) { - request->itf->addref(request); + return request->itf->addref(request); } /* diff --git a/src/afb-xreq.c b/src/afb-xreq.c index 8ff45c4e..b091bd1e 100644 --- a/src/afb-xreq.c +++ b/src/afb-xreq.c @@ -396,10 +396,11 @@ static void xreq_context_set_cb(struct afb_request *closure, void *value, void ( afb_context_set(&xreq->context, value, free_value); } -static void xreq_addref_cb(struct afb_request *closure) +static struct afb_request *xreq_addref_cb(struct afb_request *closure) { struct afb_xreq *xreq = from_request(closure); afb_xreq_unhooked_addref(xreq); + return closure; } static void xreq_unref_cb(struct afb_request *closure) @@ -610,11 +611,11 @@ static void xreq_hooked_context_set_cb(struct afb_request *closure, void *value, xreq_context_set_cb(closure, value, free_value); } -static void xreq_hooked_addref_cb(struct afb_request *closure) +static struct afb_request *xreq_hooked_addref_cb(struct afb_request *closure) { struct afb_xreq *xreq = from_request(closure); afb_hook_xreq_addref(xreq); - xreq_addref_cb(closure); + return xreq_addref_cb(closure); } static void xreq_hooked_unref_cb(struct afb_request *closure) |