Skip to content

Commit 46a2abb

Browse files
authored
[clang-doc][nfc] Avoid constructing SmallString in ToString method (llvm#96921)
This patch updates the return type of HTMLTag::toString from SmallString<16> to StringRef, since this API only returns string literals. As a result, there is no need to construct a full heap allocated or owned string. Additionally, this patch renames ToString to toString to match the LLVM style guide.
1 parent c959357 commit 46a2abb

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

clang-tools-extra/clang-doc/HTMLGenerator.cpp

+21-21
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class HTMLTag {
5656
operator bool() = delete;
5757

5858
bool isSelfClosing() const;
59-
llvm::SmallString<16> ToString() const;
59+
StringRef toString() const;
6060

6161
private:
6262
TagType Value;
@@ -137,42 +137,42 @@ bool HTMLTag::isSelfClosing() const {
137137
llvm_unreachable("Unhandled HTMLTag::TagType");
138138
}
139139

140-
llvm::SmallString<16> HTMLTag::ToString() const {
140+
StringRef HTMLTag::toString() const {
141141
switch (Value) {
142142
case HTMLTag::TAG_A:
143-
return llvm::SmallString<16>("a");
143+
return "a";
144144
case HTMLTag::TAG_DIV:
145-
return llvm::SmallString<16>("div");
145+
return "div";
146146
case HTMLTag::TAG_FOOTER:
147-
return llvm::SmallString<16>("footer");
147+
return "footer";
148148
case HTMLTag::TAG_H1:
149-
return llvm::SmallString<16>("h1");
149+
return "h1";
150150
case HTMLTag::TAG_H2:
151-
return llvm::SmallString<16>("h2");
151+
return "h2";
152152
case HTMLTag::TAG_H3:
153-
return llvm::SmallString<16>("h3");
153+
return "h3";
154154
case HTMLTag::TAG_HEADER:
155-
return llvm::SmallString<16>("header");
155+
return "header";
156156
case HTMLTag::TAG_LI:
157-
return llvm::SmallString<16>("li");
157+
return "li";
158158
case HTMLTag::TAG_LINK:
159-
return llvm::SmallString<16>("link");
159+
return "link";
160160
case HTMLTag::TAG_MAIN:
161-
return llvm::SmallString<16>("main");
161+
return "main";
162162
case HTMLTag::TAG_META:
163-
return llvm::SmallString<16>("meta");
163+
return "meta";
164164
case HTMLTag::TAG_OL:
165-
return llvm::SmallString<16>("ol");
165+
return "ol";
166166
case HTMLTag::TAG_P:
167-
return llvm::SmallString<16>("p");
167+
return "p";
168168
case HTMLTag::TAG_SCRIPT:
169-
return llvm::SmallString<16>("script");
169+
return "script";
170170
case HTMLTag::TAG_SPAN:
171-
return llvm::SmallString<16>("span");
171+
return "span";
172172
case HTMLTag::TAG_TITLE:
173-
return llvm::SmallString<16>("title");
173+
return "title";
174174
case HTMLTag::TAG_UL:
175-
return llvm::SmallString<16>("ul");
175+
return "ul";
176176
}
177177
llvm_unreachable("Unhandled HTMLTag::TagType");
178178
}
@@ -191,7 +191,7 @@ void TagNode::render(llvm::raw_ostream &OS, int IndentationLevel) {
191191
break;
192192
}
193193
OS.indent(IndentationLevel * 2);
194-
OS << "<" << Tag.ToString();
194+
OS << "<" << Tag.toString();
195195
for (const auto &A : Attributes)
196196
OS << " " << A.first << "=\"" << A.second << "\"";
197197
if (Tag.isSelfClosing()) {
@@ -216,7 +216,7 @@ void TagNode::render(llvm::raw_ostream &OS, int IndentationLevel) {
216216
}
217217
if (!InlineChildren)
218218
OS.indent(IndentationLevel * 2);
219-
OS << "</" << Tag.ToString() << ">";
219+
OS << "</" << Tag.toString() << ">";
220220
}
221221

222222
template <typename Derived, typename Base,

0 commit comments

Comments
 (0)