diff options
author | Loïc Collignon <loic.collignon@iot.bzh> | 2019-01-04 15:49:18 +0100 |
---|---|---|
committer | Loïc Collignon <loic.collignon@iot.bzh> | 2019-03-11 13:40:28 +0100 |
commit | 9383ae1d276484f273cb11b6e5d92d1509118c96 (patch) | |
tree | 8655b6de646b4dbb20af737bc8bf2f26b55d17ed /include/afb/c++ | |
parent | 3abc75dfa35fa36c0f5f55cd4aed4d443620b3a9 (diff) |
c++: Fix multiple definition and cast
The function was defined as many time as the header was included.
Making it a weak function fix the issue.
Also, a plain old C cast is required to make this constexpr valid.
Change-Id: I278f376e00ec6728272df4fde8ca8984195dd533
Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
Diffstat (limited to 'include/afb/c++')
-rw-r--r-- | include/afb/c++/binding-wrap.hpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/include/afb/c++/binding-wrap.hpp b/include/afb/c++/binding-wrap.hpp index 8eddc58b..81122cbc 100644 --- a/include/afb/c++/binding-wrap.hpp +++ b/include/afb/c++/binding-wrap.hpp @@ -571,8 +571,7 @@ constexpr afb_verb_t verb( return r; } -#if AFB_BINDING_VERSION >= 3 -void __afb__verb__cb__for__global__(afb_req_t r) +void __attribute__((weak)) __afb__verb__cb__for__global__(afb_req_t r) { void *vcbdata; void (*callback)(req); @@ -587,8 +586,7 @@ constexpr afb_verb_t verb( void (&callback)(req), const char *info = nullptr, uint16_t session = 0, - const afb_auth *auth = nullptr - , + const afb_auth *auth = nullptr, bool glob = false, void *vcbdata = nullptr ) @@ -600,10 +598,9 @@ constexpr afb_verb_t verb( session, auth, glob, - reinterpret_cast<void*>(&callback) + (void*)(&callback) ); } -#endif constexpr afb_verb_t verbend() { |