From 9a380daa27e987f9443a9bc2f40200b081cd3c19 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Wed, 24 Apr 2019 23:10:25 +0200 Subject: [PATCH] apply some cppcheck proposed changes --- .../abstraction/AnyaryOperationAbstraction.hpp | 8 ++++---- .../src/registry/ContainerRegistry.cpp | 12 ++++++++---- .../src/registry/ContainerRegistry.hpp | 4 ++-- alib2std/src/extensions/container/ptr_value.hpp | 3 +++ aql2/src/prompt/ReadlinePromptHistory.h | 16 +++++++++------- 5 files changed, 26 insertions(+), 17 deletions(-) diff --git a/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.hpp b/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.hpp index f1208513aa..4d08220410 100644 --- a/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.hpp +++ b/alib2abstraction/src/abstraction/AnyaryOperationAbstraction.hpp @@ -52,11 +52,11 @@ public: } virtual bool inputsAttached ( ) const override { - for ( const std::pair < std::shared_ptr < OperationAbstraction >, bool > & param : m_params ) - if ( ! ( bool ) param.first ) - return false; + auto attached_lambda = [ ] ( const std::pair < std::shared_ptr < OperationAbstraction >, bool > & param ) { + return ( bool ) param.first; + }; - return true; + return std::all_of ( m_params.begin ( ), m_params.end ( ), attached_lambda ); } virtual bool eval ( ) override { diff --git a/alib2abstraction/src/registry/ContainerRegistry.cpp b/alib2abstraction/src/registry/ContainerRegistry.cpp index a1a4e7ea4b..21f317fdfe 100644 --- a/alib2abstraction/src/registry/ContainerRegistry.cpp +++ b/alib2abstraction/src/registry/ContainerRegistry.cpp @@ -25,11 +25,15 @@ std::shared_ptr < abstraction::OperationAbstraction > ContainerRegistry::getAbst if ( group == getEntries ( ).end ( ) ) throw std::invalid_argument ( "Entry " + container + " not available" ); - for ( const ext::pair < std::string, std::unique_ptr < Entry > > & entry : group->second ) - if ( ext::is_same_type ( param, ext::erase_template_info ( entry.first ) ) ) - return entry.second->getAbstraction ( ); + auto is_same_type_lambda = [ & ] ( const ext::pair < std::string, std::unique_ptr < Entry > > & entry ) { + return ext::is_same_type ( param, ext::erase_template_info ( entry.first ) ); + }; + + auto iter = std::find_if ( group->second.begin ( ), group->second.end ( ), is_same_type_lambda ); + if ( iter == group->second.end ( ) ) + throw std::invalid_argument ( "Entry for " + container + " parametrized with " + param + " not available." ); - throw std::invalid_argument ( "Entry for " + container + " parametrized with " + param + " not available." ); + return iter->second->getAbstraction ( ); } ext::set < std::string > ContainerRegistry::listOverloads ( const std::string & container ) { diff --git a/alib2abstraction/src/registry/ContainerRegistry.hpp b/alib2abstraction/src/registry/ContainerRegistry.hpp index 8360f4c530..538fb86c32 100644 --- a/alib2abstraction/src/registry/ContainerRegistry.hpp +++ b/alib2abstraction/src/registry/ContainerRegistry.hpp @@ -44,7 +44,7 @@ private: static ext::map < std::string, ext::list < ext::pair < std::string, std::unique_ptr < Entry > > > > & getEntries ( ); public: - static void unregisterSet ( std::string param ) { + static void unregisterSet ( const std::string & param ) { std::string container = "Set"; auto & group = getEntries ( ) [ container ]; @@ -71,7 +71,7 @@ public: if ( entry.first == param ) throw std::invalid_argument ( "Callback for " + param + " in contaier " + container + " already registered." ); - group.insert ( group.end ( ), ext::make_pair ( param, std::make_unique < SetEntryImpl < ParamTypes > > ( ) ) ); + group.insert ( group.end ( ), ext::make_pair ( std::move ( param ), std::make_unique < SetEntryImpl < ParamTypes > > ( ) ) ); } template < class ParamTypes > diff --git a/alib2std/src/extensions/container/ptr_value.hpp b/alib2std/src/extensions/container/ptr_value.hpp index 3606667c73..d66bf7302a 100644 --- a/alib2std/src/extensions/container/ptr_value.hpp +++ b/alib2std/src/extensions/container/ptr_value.hpp @@ -109,6 +109,9 @@ public: * \param other the other instance */ ptr_value & operator = ( const ptr_value & other ) { + if ( this == & other ) + return *this; + delete m_data; m_data = ext::clone ( other.m_data ); return * this; diff --git a/aql2/src/prompt/ReadlinePromptHistory.h b/aql2/src/prompt/ReadlinePromptHistory.h index 87d076bb93..4e37c80807 100644 --- a/aql2/src/prompt/ReadlinePromptHistory.h +++ b/aql2/src/prompt/ReadlinePromptHistory.h @@ -65,13 +65,15 @@ class ReadlinePromptHistory { template < class Callable > static void history_transform ( Callable callable ) { HIST_ENTRY ** history = history_list ( ); - int i = 0; - if ( history ) while ( * history ) { - char * tmp = callable ( ( * history )->line ); - replace_history_entry ( i, tmp, ( * history )->data ); - free ( tmp ); - ++ history; - ++ i; + if ( history ) { + unsigned i = 0; + while ( * history ) { + char * tmp = callable ( ( * history )->line ); + replace_history_entry ( i, tmp, ( * history )->data ); + free ( tmp ); + ++ history; + ++ i; + } } } -- GitLab