diff --git a/src/c-wrapper/internal/c-tools.h b/src/c-wrapper/internal/c-tools.h index 3bb01844d..0e64a5c78 100644 --- a/src/c-wrapper/internal/c-tools.h +++ b/src/c-wrapper/internal/c-tools.h @@ -153,22 +153,22 @@ public: // Macro helpers. template - static T *getCppPtr (const std::shared_ptr &cppObject) { + static inline T *getCppPtr (const std::shared_ptr &cppObject) { return cppObject.get(); } template - static T *getCppPtr (T *cppObject) { + static inline T *getCppPtr (T *cppObject) { return cppObject; } template - static const T *getCppPtr (const std::shared_ptr &cppObject) { + static inline const T *getCppPtr (const std::shared_ptr &cppObject) { return cppObject.get(); } template - static const T *getCppPtr (const T *cppObject) { + static inline const T *getCppPtr (const T *cppObject) { return cppObject; } @@ -183,14 +183,14 @@ public: static inline typename CppTypeToCType::type *getCBackPtr (const std::shared_ptr &cppObject) { typedef typename CppTypeToCType::type RetType; - Variant v = cppObject->getProperty("LinphonePrivate::Wrapper::cBackPtr"); - void *value = v.getValue(); - if (!value) { - RetType *cObject = CObjectInitializer::init(); - setCppPtrFromC(cObject, cppObject); - } + Variant variant = cppObject->getProperty("LinphonePrivate::Wrapper::cBackPtr"); + void *value = variant.getValue(); + if (value) + return reinterpret_cast(value); - return reinterpret_cast(value); + RetType *cObject = CObjectInitializer::init(); + setCppPtrFromC(cObject, cppObject); + return cObject; } template< @@ -202,12 +202,12 @@ public: Variant v = cppObject->getProperty("LinphonePrivate::Wrapper::cBackPtr"); void *value = v.getValue(); - if (!value) { - RetType *cObject = CObjectInitializer::init(); - setCppPtrFromC(cObject, cppObject); - } + if (value) + return reinterpret_cast(value); - return reinterpret_cast(value); + RetType *cObject = CObjectInitializer::init(); + setCppPtrFromC(cObject, cppObject); + return cObject; } // ---------------------------------------------------------------------------