Skip to content

Commit d02a99d

Browse files
author
Sebastian Holtermann
committed
Autogen: Modernize code to use cm::string_view for the info writer
1 parent bbf4a57 commit d02a99d

File tree

2 files changed

+23
-27
lines changed

2 files changed

+23
-27
lines changed

Source/cmQtAutoGenInitializer.cxx

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -156,62 +156,57 @@ std::string cmQtAutoGenInitializer::InfoWriter::ListJoin(IT it_begin,
156156
return res;
157157
}
158158

159-
std::string cmQtAutoGenInitializer::InfoWriter::ConfigKey(
160-
const char* key, std::string const& config)
159+
inline std::string cmQtAutoGenInitializer::InfoWriter::ConfigKey(
160+
cm::string_view key, std::string const& config)
161161
{
162-
std::string ckey = key;
163-
ckey += '_';
164-
ckey += config;
165-
return ckey;
162+
return cmStrCat(key, "_", config);
166163
}
167164

168-
void cmQtAutoGenInitializer::InfoWriter::Write(const char* key,
165+
void cmQtAutoGenInitializer::InfoWriter::Write(cm::string_view key,
169166
std::string const& value)
170167
{
171168
Ofs_ << "set(" << key << " " << cmOutputConverter::EscapeForCMake(value)
172169
<< ")\n";
173170
};
174171

175-
void cmQtAutoGenInitializer::InfoWriter::WriteUInt(const char* key,
172+
void cmQtAutoGenInitializer::InfoWriter::WriteUInt(cm::string_view key,
176173
unsigned int value)
177174
{
178175
Ofs_ << "set(" << key << " " << value << ")\n";
179176
};
180177

181178
template <class C>
182-
void cmQtAutoGenInitializer::InfoWriter::WriteStrings(const char* key,
179+
void cmQtAutoGenInitializer::InfoWriter::WriteStrings(cm::string_view key,
183180
C const& container)
184181
{
185182
Ofs_ << "set(" << key << " \""
186183
<< ListJoin(container.begin(), container.end()) << "\")\n";
187184
}
188185

189186
void cmQtAutoGenInitializer::InfoWriter::WriteConfig(
190-
const char* key, std::map<std::string, std::string> const& map)
187+
cm::string_view key, std::map<std::string, std::string> const& map)
191188
{
192189
for (auto const& item : map) {
193-
Write(ConfigKey(key, item.first).c_str(), item.second);
190+
Write(ConfigKey(key, item.first), item.second);
194191
}
195192
};
196193

197194
template <class C>
198195
void cmQtAutoGenInitializer::InfoWriter::WriteConfigStrings(
199-
const char* key, std::map<std::string, C> const& map)
196+
cm::string_view key, std::map<std::string, C> const& map)
200197
{
201198
for (auto const& item : map) {
202-
WriteStrings(ConfigKey(key, item.first).c_str(), item.second);
199+
WriteStrings(ConfigKey(key, item.first), item.second);
203200
}
204201
}
205202

206203
void cmQtAutoGenInitializer::InfoWriter::WriteNestedLists(
207-
const char* key, std::vector<std::vector<std::string>> const& lists)
204+
cm::string_view key, std::vector<std::vector<std::string>> const& lists)
208205
{
209206
std::vector<std::string> seplist;
210-
for (const std::vector<std::string>& list : lists) {
211-
std::string blist = "{";
212-
blist += ListJoin(list.begin(), list.end());
213-
blist += "}";
214-
seplist.push_back(std::move(blist));
207+
seplist.reserve(lists.size());
208+
for (std::vector<std::string> const& list : lists) {
209+
seplist.push_back(cmStrCat("{", ListJoin(list.begin(), list.end()), "}"));
215210
}
216211
Write(key, cmJoin(seplist, cmQtAutoGen::ListSep));
217212
};

Source/cmQtAutoGenInitializer.h

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "cmConfigure.h" // IWYU pragma: keep
77
#include "cmGeneratedFileStream.h"
88
#include "cmQtAutoGen.h"
9+
#include "cm_string_view.hxx"
910

1011
#include <map>
1112
#include <memory>
@@ -85,24 +86,24 @@ class cmQtAutoGenInitializer : public cmQtAutoGen
8586
/// @return True if the file is open
8687
explicit operator bool() const { return static_cast<bool>(Ofs_); }
8788

88-
void Write(const char* text) { Ofs_ << text; }
89-
void Write(const char* key, std::string const& value);
90-
void WriteUInt(const char* key, unsigned int value);
89+
void Write(cm::string_view text) { Ofs_ << text; }
90+
void Write(cm::string_view, std::string const& value);
91+
void WriteUInt(cm::string_view, unsigned int value);
9192

9293
template <class C>
93-
void WriteStrings(const char* key, C const& container);
94-
void WriteConfig(const char* key,
94+
void WriteStrings(cm::string_view, C const& container);
95+
void WriteConfig(cm::string_view,
9596
std::map<std::string, std::string> const& map);
9697
template <class C>
97-
void WriteConfigStrings(const char* key,
98+
void WriteConfigStrings(cm::string_view,
9899
std::map<std::string, C> const& map);
99-
void WriteNestedLists(const char* key,
100+
void WriteNestedLists(cm::string_view,
100101
std::vector<std::vector<std::string>> const& lists);
101102

102103
private:
103104
template <class IT>
104105
static std::string ListJoin(IT it_begin, IT it_end);
105-
static std::string ConfigKey(const char* key, std::string const& config);
106+
static std::string ConfigKey(cm::string_view, std::string const& config);
106107

107108
private:
108109
cmGeneratedFileStream Ofs_;

0 commit comments

Comments
 (0)