Pārlūkot izejas kodu

Merge pull request #15883 from ghalliday/issue27336b

HPCC-27336 Remove call to StringArray copy constructor

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 3 gadi atpakaļ
vecāks
revīzija
4e85582764
3 mainītis faili ar 9 papildinājumiem un 1 dzēšanām
  1. 2 1
      system/jlib/jlog.hpp
  2. 6 0
      system/jlib/jutil.cpp
  3. 1 0
      system/jlib/jutil.hpp

+ 2 - 1
system/jlib/jlog.hpp

@@ -1515,7 +1515,8 @@ public:
 
     void setLogFieldNames(const StringArray &logFieldNames)
     {
-        this->logFieldNames = logFieldNames;
+        this->logFieldNames.kill();
+        this->logFieldNames.appendArray(logFieldNames);
     }
 
     offset_t getStartFrom() const

+ 6 - 0
system/jlib/jutil.cpp

@@ -1562,6 +1562,12 @@ static void DelimToStringArray(const char *csl, StringArray &dst, const char *de
     }
 }
 
+void StringArray::appendArray(const StringArray & other)
+{
+    ForEachItemIn(i, other)
+        append(other.item(i));
+}
+
 void StringArray::appendList(const char *list, const char *delim, bool trimSpaces)
 {
     DelimToStringArray(list, *this, delim, false, trimSpaces);

+ 1 - 0
system/jlib/jutil.hpp

@@ -241,6 +241,7 @@ class jlib_decl StringArray : public ArrayOf<const char *, const char *, StringP
     };
     typedef ArrayOf<const char *, const char *, StringPointerArrayMapper> PARENT;
 public:
+    void appendArray(const StringArray & other);
     // Appends a list in a string delimited by 'delim'
     void appendList(const char *list, const char *delim, bool trimSpaces = true);
     // Appends a list in a string delimited by 'delim' without duplicates