From 69aacf788df846fa3bccee9c1b3127bbcdb549d3 Mon Sep 17 00:00:00 2001 From: Joao Rui Leal Date: Mon, 16 Mar 2020 23:59:37 +0000 Subject: [PATCH] Fix missing unique_ptr get() (#52) --- CMakeLists.txt | 2 +- debian/changelog | 6 ++++++ .../dynamic_lib/dynamic_library_processor.hpp | 2 +- .../cppad/cg/model/functor_model_library.hpp | 3 +-- .../cg/CppADCGDynamicAtomicNestedTest.hpp | 1 - test/cppad/cg/CppADCGDynamicTest.hpp | 18 ++++++++++++++++++ 6 files changed, 27 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 592ab65c..cd30fc2c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(cppadcg CXX C) -SET(cppadcg_version "2.4.2" ) +SET(cppadcg_version "2.4.3" ) SET(cppadcg_url "https://github.com/joaoleal/CppADCodeGen" ) SET(cppadcg_description "A C++ Algorithmic Differentiation Package with Source Code Generation" ) diff --git a/debian/changelog b/debian/changelog index 587c1c10..9535dbb6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cppadcodegen (2.4.3-1) unstable; urgency=low + + * fix getCustomLibraryExtension() + + -- Joao Leal Mon, 16 Mar 2020 18:00:00 +0000 + cppadcodegen (2.4.2-1) unstable; urgency=low * fix missing inline diff --git a/include/cppad/cg/model/dynamic_lib/dynamic_library_processor.hpp b/include/cppad/cg/model/dynamic_lib/dynamic_library_processor.hpp index e84d9e7f..9f40a4fb 100644 --- a/include/cppad/cg/model/dynamic_lib/dynamic_library_processor.hpp +++ b/include/cppad/cg/model/dynamic_lib/dynamic_library_processor.hpp @@ -81,7 +81,7 @@ class DynamicModelLibraryProcessor : public ModelLibraryProcessor { * @return a custom library extension */ inline const std::string* getCustomLibraryExtension() const { - return _customLibExtension; + return _customLibExtension.get(); } /** diff --git a/include/cppad/cg/model/functor_model_library.hpp b/include/cppad/cg/model/functor_model_library.hpp index b12e37e7..36e36a4c 100644 --- a/include/cppad/cg/model/functor_model_library.hpp +++ b/include/cppad/cg/model/functor_model_library.hpp @@ -51,7 +51,6 @@ class FunctorModelLibrary : public ModelLibrary { /** * Creates a new FunctorGenericModel object that can be used to evaluate * the model. - * This object must be released by the user! * * @param modelName The model name. * @return The model object or nullptr if no model exists with the provided @@ -94,7 +93,7 @@ class FunctorModelLibrary : public ModelLibrary { } } - virtual bool isThreadPoolDisabled() const override { + bool isThreadPoolDisabled() const override { if(_isThreadPoolDisabled != nullptr) { return bool((*_isThreadPoolDisabled)()); } diff --git a/test/cppad/cg/CppADCGDynamicAtomicNestedTest.hpp b/test/cppad/cg/CppADCGDynamicAtomicNestedTest.hpp index d950323d..ca8b2984 100644 --- a/test/cppad/cg/CppADCGDynamicAtomicNestedTest.hpp +++ b/test/cppad/cg/CppADCGDynamicAtomicNestedTest.hpp @@ -468,7 +468,6 @@ class CppADCGDynamicAtomicNestedTest : public CppADCGTest { * (compile source code) */ DynamicModelLibraryProcessor p(compDynHelp, "innerModel"); - GccCompiler compiler1; prepareTestCompilerFlags(compiler1); diff --git a/test/cppad/cg/CppADCGDynamicTest.hpp b/test/cppad/cg/CppADCGDynamicTest.hpp index 21b5f64c..c9916ea8 100644 --- a/test/cppad/cg/CppADCGDynamicTest.hpp +++ b/test/cppad/cg/CppADCGDynamicTest.hpp @@ -137,6 +137,23 @@ class CppADCGDynamicTest : public CppADCGModelTest { SaveFilesModelLibraryProcessor::saveLibrarySourcesTo(libSourceGen, "sources_" + _name + "_1"); DynamicModelLibraryProcessor p(libSourceGen); + + // some additional tests + ASSERT_EQ(p.getLibraryName(), "cppad_cg_model"); + p.setLibraryName("cppad_cg_lib"); + ASSERT_EQ(p.getLibraryName(), "cppad_cg_lib"); + + ASSERT_EQ(p.getCustomLibraryExtension(), nullptr); + p.setCustomLibraryExtension(".so.123"); + ASSERT_NE(p.getCustomLibraryExtension(), nullptr); + ASSERT_EQ(*p.getCustomLibraryExtension(), ".so.123"); + + p.removeCustomLibraryExtension(); + ASSERT_EQ(p.getCustomLibraryExtension(), nullptr); + + const auto& cp = p; + ASSERT_TRUE(cp.getOptions().empty()); + GccCompiler compiler; //compiler.setSaveToDiskFirst(true); // useful to detect problem prepareTestCompilerFlags(compiler); @@ -148,6 +165,7 @@ class CppADCGDynamicTest : public CppADCGModelTest { #ifdef CPPAD_CG_SYSTEM_LINUX // this is required because the OpenMP implementation in GCC causes a segmentation fault on dlclose p.getOptions()["dlOpenMode"] = std::to_string(RTLD_NOW | RTLD_NODELETE); + ASSERT_TRUE(!p.getOptions().empty()); #endif } else if(libSourceGen.getMultiThreading() == MultiThreadingType::PTHREADS) { compiler.addCompileFlag("-pthread");