layers: parameter validation const refs

Change-Id: Ia1adab9fc2d38182cf4a798a68eb5a5c2fb48438
diff --git a/layers/parameter_validation.h b/layers/parameter_validation.h
index f5cb9cf..f62e98b 100644
--- a/layers/parameter_validation.h
+++ b/layers/parameter_validation.h
@@ -189,7 +189,7 @@
  * @return Boolean value indicating that the call should be skipped.
  */
 template <typename T>
-bool ValidateGreaterThan(const T value, const T lower_bound, const ParameterName &parameter_name, const std::string vuid,
+bool ValidateGreaterThan(const T value, const T lower_bound, const ParameterName &parameter_name, const std::string &vuid,
                          const LogMiscParams &misc) {
     bool skip_call = false;
 
@@ -205,7 +205,7 @@
 }
 
 template <typename T>
-bool ValidateGreaterThanZero(const T value, const ParameterName &parameter_name, const std::string vuid,
+bool ValidateGreaterThanZero(const T value, const ParameterName &parameter_name, const std::string &vuid,
                              const LogMiscParams &misc) {
     return ValidateGreaterThan(value, T{0}, parameter_name, vuid, misc);
 }
@@ -221,7 +221,7 @@
  * @return Boolean value indicating that the call should be skipped.
  */
 static bool validate_required_pointer(debug_report_data *report_data, const char *apiName, const ParameterName &parameterName,
-                                      const void *value, std::string vuid) {
+                                      const void *value, const std::string &vuid) {
     bool skip_call = false;
 
     if (value == NULL) {
@@ -252,7 +252,7 @@
 template <typename T1, typename T2>
 bool validate_array(debug_report_data *report_data, const char *apiName, const ParameterName &countName,
                     const ParameterName &arrayName, T1 count, const T2 *array, bool countRequired, bool arrayRequired,
-                    std::string count_required_vuid, std::string array_required_vuid) {
+                    const std::string &count_required_vuid, const std::string &array_required_vuid) {
     bool skip_call = false;
 
     // Count parameters not tagged as optional cannot be 0
@@ -295,7 +295,8 @@
 template <typename T1, typename T2>
 bool validate_array(debug_report_data *report_data, const char *apiName, const ParameterName &countName,
                     const ParameterName &arrayName, const T1 *count, const T2 *array, bool countPtrRequired,
-                    bool countValueRequired, bool arrayRequired, std::string count_required_vuid, std::string array_required_vuid) {
+                    bool countValueRequired, bool arrayRequired, const std::string &count_required_vuid,
+                    const std::string &array_required_vuid) {
     bool skip_call = false;
 
     if (count == NULL) {
@@ -330,7 +331,7 @@
  */
 template <typename T>
 bool validate_struct_type(debug_report_data *report_data, const char *apiName, const ParameterName &parameterName,
-                          const char *sTypeName, const T *value, VkStructureType sType, bool required, std::string vuid) {
+                          const char *sTypeName, const T *value, VkStructureType sType, bool required, const std::string &vuid) {
     bool skip_call = false;
 
     if (value == NULL) {
@@ -369,7 +370,7 @@
 template <typename T>
 bool validate_struct_type_array(debug_report_data *report_data, const char *apiName, const ParameterName &countName,
                                 const ParameterName &arrayName, const char *sTypeName, uint32_t count, const T *array,
-                                VkStructureType sType, bool countRequired, bool arrayRequired, std::string vuid) {
+                                VkStructureType sType, bool countRequired, bool arrayRequired, const std::string &vuid) {
     bool skip_call = false;
 
     if ((count == 0) || (array == NULL)) {
@@ -414,7 +415,7 @@
 bool validate_struct_type_array(debug_report_data *report_data, const char *apiName, const ParameterName &countName,
                                 const ParameterName &arrayName, const char *sTypeName, uint32_t *count, const T *array,
                                 VkStructureType sType, bool countPtrRequired, bool countValueRequired, bool arrayRequired,
-                                std::string vuid) {
+                                const std::string &vuid) {
     bool skip_call = false;
 
     if (count == NULL) {
@@ -520,7 +521,8 @@
  */
 static bool validate_string_array(debug_report_data *report_data, const char *apiName, const ParameterName &countName,
                                   const ParameterName &arrayName, uint32_t count, const char *const *array, bool countRequired,
-                                  bool arrayRequired, std::string count_required_vuid, std::string array_required_vuid) {
+                                  bool arrayRequired, const std::string &count_required_vuid,
+                                  const std::string &array_required_vuid) {
     bool skip_call = false;
 
     if ((count == 0) || (array == NULL)) {
@@ -559,7 +561,7 @@
  */
 static bool validate_struct_pnext(debug_report_data *report_data, const char *api_name, const ParameterName &parameter_name,
                                   const char *allowed_struct_names, const void *next, size_t allowed_type_count,
-                                  const VkStructureType *allowed_types, uint32_t header_version, std::string vuid) {
+                                  const VkStructureType *allowed_types, uint32_t header_version, const std::string &vuid) {
     bool skip_call = false;
     std::unordered_set<const void *> cycle_check;
     std::unordered_set<VkStructureType, std::hash<int>> unique_stype_check;
@@ -676,7 +678,7 @@
  */
 template <typename T>
 bool validate_ranged_enum(debug_report_data *report_data, const char *apiName, const ParameterName &parameterName,
-                          const char *enumName, const std::vector<T> &valid_values, T value, std::string vuid) {
+                          const char *enumName, const std::vector<T> &valid_values, T value, const std::string &vuid) {
     bool skip = false;
 
     if (std::find(valid_values.begin(), valid_values.end(), value) == valid_values.end()) {
@@ -748,7 +750,7 @@
  * @return Boolean value indicating that the call should be skipped.
  */
 static bool validate_reserved_flags(debug_report_data *report_data, const char *api_name, const ParameterName &parameter_name,
-                                    VkFlags value, std::string vuid) {
+                                    VkFlags value, const std::string &vuid) {
     bool skip_call = false;
 
     if (value != 0) {
@@ -777,7 +779,7 @@
  */
 static bool validate_flags(debug_report_data *report_data, const char *api_name, const ParameterName &parameter_name,
                            const char *flag_bits_name, VkFlags all_flags, VkFlags value, bool flags_required, bool singleFlag,
-                           std::string vuid) {
+                           const std::string &vuid) {
     bool skip_call = false;
 
     if (value == 0) {
diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp
index 4aba85c..295f1db 100644
--- a/layers/parameter_validation_utils.cpp
+++ b/layers/parameter_validation_utils.cpp
@@ -150,7 +150,7 @@
 }
 
 static bool ValidateDeviceQueueFamily(layer_data *device_data, uint32_t queue_family, const char *cmd_name,
-                                      const char *parameter_name, std::string error_code, bool optional = false) {
+                                      const char *parameter_name, const std::string &error_code, bool optional = false) {
     bool skip = false;
 
     if (!optional && queue_family == VK_QUEUE_FAMILY_IGNORED) {
@@ -171,8 +171,8 @@
 }
 
 static bool ValidateQueueFamilies(layer_data *device_data, uint32_t queue_family_count, const uint32_t *queue_families,
-                                  const char *cmd_name, const char *array_parameter_name, std::string unique_error_code,
-                                  std::string valid_error_code, bool optional = false) {
+                                  const char *cmd_name, const char *array_parameter_name, const std::string &unique_error_code,
+                                  const std::string &valid_error_code, bool optional = false) {
     bool skip = false;
     if (queue_families) {
         std::unordered_set<uint32_t> set;
@@ -216,8 +216,8 @@
 }
 
 template <typename ExtensionState>
-static bool validate_extension_reqs(const instance_layer_data *instance_data, const ExtensionState &extensions, std::string vuid,
-                                    const char *extension_type, const char *extension_name) {
+static bool validate_extension_reqs(const instance_layer_data *instance_data, const ExtensionState &extensions,
+                                    const std::string &vuid, const char *extension_type, const char *extension_name) {
     bool skip = false;
     if (!extension_name) {
         return skip;  // Robust to invalid char *