From c91bc005358982d3c1804bd7617b3414a40e8b47 Mon Sep 17 00:00:00 2001
From: scott snyder <sss@karma>
Date: Wed, 7 Oct 2020 14:55:18 -0400
Subject: [PATCH] CollectionBase: Fix cppcheck warnings.

 - Pass class instances by const reference, not by value.
---
 .../CollectionBase/CollectionBase/CollectionDescription.h  | 4 ++--
 .../CollectionBase/ICollectionSchemaEditor.h               | 6 +++---
 Database/APR/CollectionBase/src/CollectionDescription.cpp  | 7 +++++--
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/Database/APR/CollectionBase/CollectionBase/CollectionDescription.h b/Database/APR/CollectionBase/CollectionBase/CollectionDescription.h
index 115a0a20b3c..6d41d5f1b84 100755
--- a/Database/APR/CollectionBase/CollectionBase/CollectionDescription.h
+++ b/Database/APR/CollectionBase/CollectionBase/CollectionDescription.h
@@ -278,7 +278,7 @@ namespace pool {
      *
      * @param columnName Name of column for which constraint is applied.
      */
-    virtual void setUniqueConstraint( std::string constraintName, const std::string& columnName );
+    virtual void setUniqueConstraint( const std::string& constraintName, const std::string& columnName );
 
     /**
      * Sets a unique constraint on one or more columns of the collection description. Automatically generates
@@ -286,7 +286,7 @@ namespace pool {
      *
      * @param columnNames Names of columns for which constraint is applied.
      */
-    virtual void setUniqueConstraint( std::string constraintName, const std::vector<std::string>& columnNames );
+    virtual void setUniqueConstraint( const std::string& constraintName, const std::vector<std::string>& columnNames );
 
     /**
      * Unsets an existing unique constraint on a single column of the collection description, 
diff --git a/Database/APR/CollectionBase/CollectionBase/ICollectionSchemaEditor.h b/Database/APR/CollectionBase/CollectionBase/ICollectionSchemaEditor.h
index 6986bc9338c..fc8ca2b7d39 100755
--- a/Database/APR/CollectionBase/CollectionBase/ICollectionSchemaEditor.h
+++ b/Database/APR/CollectionBase/CollectionBase/ICollectionSchemaEditor.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef COLLECTIONBASE_ICOLLECTIONSCHEMAEDITOR_H
@@ -177,7 +177,7 @@ namespace pool {
      *
      * @param columnName Name of column for which constraint is applied.
      */
-    virtual void setUniqueConstraint( std::string constraintName, const std::string& columnName ) = 0;
+    virtual void setUniqueConstraint( const std::string& constraintName, const std::string& columnName ) = 0;
 
     /**
      * Sets a unique constraint on one or more columns of the collection. Automatically generates a
@@ -185,7 +185,7 @@ namespace pool {
      *
      * @param columnNames Names of columns for which constraint is applied.
      */
-    virtual void setUniqueConstraint( std::string constraintName, const std::vector<std::string>& columnNames ) = 0;
+    virtual void setUniqueConstraint( const std::string& constraintName, const std::vector<std::string>& columnNames ) = 0;
 
     /**
      * Unsets an existing unique constraint on a single column of the collection, 
diff --git a/Database/APR/CollectionBase/src/CollectionDescription.cpp b/Database/APR/CollectionBase/src/CollectionDescription.cpp
index 846898560a2..d701f02565e 100755
--- a/Database/APR/CollectionBase/src/CollectionDescription.cpp
+++ b/Database/APR/CollectionBase/src/CollectionDescription.cpp
@@ -923,7 +923,7 @@ pool::CollectionDescription::dropIndex( const std::vector<std::string>& columnNa
 
 
 void
-pool::CollectionDescription::setUniqueConstraint( std::string constraintName, const std::string& columnName )
+pool::CollectionDescription::setUniqueConstraint( const std::string& constraintNameIn, const std::string& columnName )
 {
    const std::string& methodName("setUniqueConstraint");
    // Check that column is defined in collection description and get its description object.
@@ -933,6 +933,7 @@ pool::CollectionDescription::setUniqueConstraint( std::string constraintName, co
    std::string fragmentName = collectionFragmentName( columnName );
 
   // Generate unique name for unique constraint.
+   std::string constraintName = constraintNameIn;
    if( !constraintName.size() ) {
       constraintName = fragmentName + columnName + "_UC";
    }
@@ -953,8 +954,10 @@ pool::CollectionDescription::setUniqueConstraint( std::string constraintName, co
 
 void
 pool::CollectionDescription::
-setUniqueConstraint( std::string constraintName, const std::vector< std::string >& columnNames )
+setUniqueConstraint( const std::string& constraintNameIn, const std::vector< std::string >& columnNames )
 {
+    std::string constraintName = constraintNameIn;
+
     const std::string& methodName("setUniqueConstraint");
     // Check if constraint is on a single column.
     if ( columnNames.size() == 1 ){
-- 
GitLab