From d1dc5af4ea119f3864bc75bf13af6d74cf51a9a5 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Fri, 22 Sep 2017 17:13:33 +0200 Subject: [PATCH] fix(c-wrapper): return correctly cObject in getCBackPtr --- src/c-wrapper/internal/c-tools.h | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) 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; } // ---------------------------------------------------------------------------