From fc75fdef794a58dadaa6602bb6508a5c9d0d8773 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Tue, 26 Sep 2017 12:12:36 +0200 Subject: [PATCH] feat(c-wrapper): L_GET_CPP_PTR_FROM_C_OBJECT supports optional cpp type parameter --- src/c-wrapper/internal/c-tools.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/c-wrapper/internal/c-tools.h b/src/c-wrapper/internal/c-tools.h index 6690f308e..bbaed56d7 100644 --- a/src/c-wrapper/internal/c-tools.h +++ b/src/c-wrapper/internal/c-tools.h @@ -429,8 +429,16 @@ LINPHONE_END_NAMESPACE #define L_INIT(C_TYPE) _linphone_ ## C_TYPE ## _init () // Get/set the cpp-ptr of a wrapped C object. -#define L_GET_CPP_PTR_FROM_C_OBJECT(C_OBJECT) \ - LINPHONE_NAMESPACE::Wrapper::getCppPtrFromC(C_OBJECT) +#define L_GET_CPP_PTR_FROM_C_OBJECT_1_ARGS(C_OBJECT) \ + L_GET_CPP_PTR_FROM_C_OBJECT_2_ARGS(C_OBJECT, ) +#define L_GET_CPP_PTR_FROM_C_OBJECT_2_ARGS(C_OBJECT, CPP_TYPE) \ + LINPHONE_NAMESPACE::Wrapper::getCppPtrFromC(C_OBJECT) + +#define L_GET_CPP_PTR_FROM_C_OBJECT_MACRO_CHOOSER(...) \ + L_GET_ARG_3(__VA_ARGS__, L_GET_CPP_PTR_FROM_C_OBJECT_2_ARGS, L_GET_CPP_PTR_FROM_C_OBJECT_1_ARGS) + +#define L_GET_CPP_PTR_FROM_C_OBJECT(...) \ + L_GET_CPP_PTR_FROM_C_OBJECT_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__) // Set the cpp-ptr of a wrapped C object. #define L_SET_CPP_PTR_FROM_C_OBJECT(C_OBJECT, CPP_OBJECT) \