From 05f16803604fc53d4931cf9481be947a26cc2007 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 20 Aug 2019 14:24:27 +0200 Subject: [PATCH] work around to fix build failure with clang 3.4 --- src/App/PropertyExpressionEngine.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/App/PropertyExpressionEngine.cpp b/src/App/PropertyExpressionEngine.cpp index 68001e43ce..1e2ede8822 100644 --- a/src/App/PropertyExpressionEngine.cpp +++ b/src/App/PropertyExpressionEngine.cpp @@ -810,7 +810,11 @@ Property *PropertyExpressionEngine::CopyOnImportExternal( { std::unique_ptr engine; for(auto it=expressions.begin();it!=expressions.end();++it) { +#ifdef BOOST_NO_CXX11_SMART_PTR + boost::shared_ptr expr(it->second.expression->importSubNames(nameMap).release()); +#else boost::shared_ptr expr(it->second.expression->importSubNames(nameMap)); +#endif if(!expr && !engine) continue; if(!engine) { @@ -834,7 +838,11 @@ Property *PropertyExpressionEngine::CopyOnLabelChange(App::DocumentObject *obj, { std::unique_ptr engine; for(auto it=expressions.begin();it!=expressions.end();++it) { +#ifdef BOOST_NO_CXX11_SMART_PTR + boost::shared_ptr expr(it->second.expression->updateLabelReference(obj,ref,newLabel).release()); +#else boost::shared_ptr expr(it->second.expression->updateLabelReference(obj,ref,newLabel)); +#endif if(!expr && !engine) continue; if(!engine) { @@ -858,8 +866,13 @@ Property *PropertyExpressionEngine::CopyOnLinkReplace(const App::DocumentObject { std::unique_ptr engine; for(auto it=expressions.begin();it!=expressions.end();++it) { +#ifdef BOOST_NO_CXX11_SMART_PTR + boost::shared_ptr expr( + it->second.expression->replaceObject(parent,oldObj,newObj).release()); +#else boost::shared_ptr expr( it->second.expression->replaceObject(parent,oldObj,newObj)); +#endif if(!expr && !engine) continue; if(!engine) { @@ -891,8 +904,13 @@ void PropertyExpressionEngine::setExpressions( std::map &&exprs) { AtomicPropertyChange signaller(*this); +#ifdef BOOST_NO_CXX11_SMART_PTR + for(auto &v : exprs) + setValue(v.first,boost::shared_ptr(v.second.release())); +#else for(auto &v : exprs) setValue(v.first,std::move(v.second)); +#endif } void PropertyExpressionEngine::onRelabeledDocument(const App::Document &doc)