diff --git a/src/c-wrapper/internal/c-tools.h b/src/c-wrapper/internal/c-tools.h index 4cbea191b..96bfb4edf 100644 --- a/src/c-wrapper/internal/c-tools.h +++ b/src/c-wrapper/internal/c-tools.h @@ -559,8 +559,11 @@ public: > static inline bctbx_list_t *getResolvedCListFromCppList (const std::list &cppList) { bctbx_list_t *result = nullptr; - for (const auto &value : cppList) - result = bctbx_list_append(result, getCBackPtr(&value)); + for (const auto &value : cppList) { + auto cValue = getCBackPtr(new CppType(value)); + reinterpret_cast *>(cValue)->owner = WrappedObjectOwner::External; + result = bctbx_list_append(result, cValue); + } return result; }