aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Collignon <loic.collignon@iot.bzh>2019-07-08 14:47:30 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2019-07-09 08:18:40 +0000
commit3aa80df989dc52a010a40b247975fd779a43157f (patch)
tree0f0ee0d38ee686c608564e02860054078fb50424
parent28720882da28205568591a8b59f6565200d201af (diff)
Fix syntax error in a constexpr function
The function declaration contains a syntax error that was somehow ignored but raise an error about an illegal cast in a constexpr function. Fixed this error and clean up a bit surrounding code to be more concise. Bug-AGL: SPEC-2615 Change-Id: I931b086c96b093b3de4465c51dfc3e865f7ece3b Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
-rw-r--r--include/afb/c++/binding-wrap.hpp32
1 files changed, 7 insertions, 25 deletions
diff --git a/include/afb/c++/binding-wrap.hpp b/include/afb/c++/binding-wrap.hpp
index 6af3f845..9a9ad85c 100644
--- a/include/afb/c++/binding-wrap.hpp
+++ b/include/afb/c++/binding-wrap.hpp
@@ -753,15 +753,7 @@ constexpr afb_verb_t verb(
void *vcbdata = nullptr
)
{
- afb_verb_t r = { 0, 0, 0, 0, 0, 0, 0 };
- r.verb = name;
- r.callback = callback;
- r.info = info;
- r.session = session;
- r.auth = auth;
- r.glob = (uint16_t)glob;
- r.vcbdata = vcbdata;
- return r;
+ return { name, callback, auth, info, vcbdata, session, glob };
}
void __attribute__((weak)) __afb__verb__cb__for__global__(afb_req_t r)
@@ -776,12 +768,11 @@ void __attribute__((weak)) __afb__verb__cb__for__global__(afb_req_t r)
constexpr afb_verb_t verb(
const char *name,
- void (&callback)(req),
+ void (*callback)(req),
const char *info = nullptr,
uint16_t session = 0,
const afb_auth *auth = nullptr,
- bool glob = false,
- void *vcbdata = nullptr
+ bool glob = false
)
{
return verb(
@@ -797,8 +788,7 @@ constexpr afb_verb_t verb(
constexpr afb_verb_t verbend()
{
- afb_verb_t r = verb(nullptr, nullptr);
- return r;
+ return { 0, 0, 0, 0, 0, 0, 0 };
}
constexpr afb_binding_t binding(
@@ -813,17 +803,9 @@ constexpr afb_binding_t binding(
void *userdata = nullptr
)
{
- afb_binding_t r = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
- r.api = name;
- r.specification = specification;
- r.info = info;
- r.verbs = verbs;
- r.preinit = preinit;
- r.init = init;
- r.onevent = onevent;
- r.noconcurrency = noconcurrency ? 1 : 0;
- r.userdata = userdata;
- return r;
+ return {
+ name, specification, info, verbs, preinit, init, onevent, userdata,
+ nullptr, nullptr, nullptr, static_cast<unsigned int>(noconcurrency) };
};
/*************************************************************************/