Skip to content

Commit 2626305

Browse files
committed
address review comments
1 parent 9995fe0 commit 2626305

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ static void serializeCommonAttributes(const Info &I, json::Object &Obj,
9393
if (!I.Description.empty()) {
9494
json::Value DescArray = json::Array();
9595
auto &DescArrayRef = *DescArray.getAsArray();
96+
DescArrayRef.reserve(I.Description.size());
9697
for (const auto &Comment : I.Description)
9798
DescArrayRef.push_back(serializeComment(Comment));
9899
Obj["Description"] = DescArray;
@@ -122,6 +123,7 @@ static void serializeReference(const SmallVector<Reference, 4> &References,
122123
Object &Obj, std::string Key) {
123124
json::Value ReferencesArray = Array();
124125
json::Array &ReferencesArrayRef = *ReferencesArray.getAsArray();
126+
ReferencesArrayRef.reserve(References.size());
125127
for (const auto& Reference : References) {
126128
json::Value ReferenceVal = Object();
127129
auto &ReferenceObj = *ReferenceVal.getAsObject();
@@ -140,6 +142,7 @@ static void serializeCommonChildren(const ScopeChildren &Children,
140142
if (!Children.Enums.empty()) {
141143
json::Value EnumsArray = Array();
142144
auto &EnumsArrayRef = *EnumsArray.getAsArray();
145+
EnumsArrayRef.reserve(Children.Enums.size());
143146
for (const auto &Enum : Children.Enums) {
144147
json::Value EnumVal = Object();
145148
auto &EnumObj = *EnumVal.getAsObject();
@@ -152,6 +155,7 @@ static void serializeCommonChildren(const ScopeChildren &Children,
152155
if (!Children.Typedefs.empty()) {
153156
json::Value TypedefsArray = Array();
154157
auto &TypedefsArrayRef = *TypedefsArray.getAsArray();
158+
TypedefsArrayRef.reserve(Children.Typedefs.size());
155159
for (const auto &Typedef : Children.Typedefs) {
156160
json::Value TypedefVal = Object();
157161
auto &TypedefObj = *TypedefVal.getAsObject();
@@ -164,6 +168,7 @@ static void serializeCommonChildren(const ScopeChildren &Children,
164168
if (!Children.Records.empty()) {
165169
json::Value RecordsArray = Array();
166170
auto &RecordsArrayRef = *RecordsArray.getAsArray();
171+
RecordsArrayRef.reserve(Children.Records.size());
167172
for (const auto &Record : Children.Records) {
168173
json::Value RecordVal = Object();
169174
auto &RecordObj = *RecordVal.getAsObject();
@@ -187,6 +192,7 @@ static void serializeInfo(const TemplateInfo &Template, Object &Obj) {
187192
if (!Template.Specialization->Params.empty()) {
188193
json::Value ParamsArray = Array();
189194
auto &ParamsArrayRef = *ParamsArray.getAsArray();
195+
ParamsArrayRef.reserve(Template.Specialization->Params.size());
190196
for (const auto &Param : Template.Specialization->Params)
191197
ParamsArrayRef.push_back(Param.Contents);
192198
TemplateSpecializationObj["Parameters"] = ParamsArray;
@@ -197,6 +203,7 @@ static void serializeInfo(const TemplateInfo &Template, Object &Obj) {
197203
if (!Template.Params.empty()) {
198204
json::Value ParamsArray = Array();
199205
auto &ParamsArrayRef = *ParamsArray.getAsArray();
206+
ParamsArrayRef.reserve(Template.Params.size());
200207
for (const auto &Param : Template.Params)
201208
ParamsArrayRef.push_back(Param.Contents);
202209
TemplateObj["Parameters"] = ParamsArray;
@@ -225,6 +232,7 @@ static void serializeInfo(const FunctionInfo &F, json::Object &Obj,
225232
if (!F.Params.empty()) {
226233
json::Value ParamsArray = json::Array();
227234
auto &ParamsArrayRef = *ParamsArray.getAsArray();
235+
ParamsArrayRef.reserve(F.Params.size());
228236
for (const auto &Param : F.Params) {
229237
json::Value ParamVal = Object();
230238
auto &ParamObj = *ParamVal.getAsObject();
@@ -256,6 +264,7 @@ static void serializeInfo(const EnumInfo &I, json::Object &Obj,
256264
if (!I.Members.empty()) {
257265
json::Value MembersArray = Array();
258266
auto &MembersArrayRef = *MembersArray.getAsArray();
267+
MembersArrayRef.reserve(I.Members.size());
259268
for (const auto &Member : I.Members) {
260269
json::Value MemberVal = Object();
261270
auto &MemberObj = *MemberVal.getAsObject();
@@ -338,6 +347,7 @@ static void serializeInfo(const RecordInfo &I, json::Object &Obj,
338347
if (!I.Bases.empty()) {
339348
json::Value BasesArray = Array();
340349
json::Array &BasesArrayRef = *BasesArray.getAsArray();
350+
BasesArrayRef.reserve(I.Bases.size());
341351
for (const auto &BaseInfo : I.Bases) {
342352
json::Value BaseInfoVal = Object();
343353
auto &BaseInfoObj = *BaseInfoVal.getAsObject();

clang-tools-extra/test/clang-doc/json/method-template.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,4 @@ struct MyClass {
3737
// CHECK-NEXT: "class T"
3838
// CHECK-NEXT: ]
3939
// CHECK-NEXT: },
40-
// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"
40+
// CHECK-NEXT: "USR": "{{[0-9A-F]*}}"

0 commit comments

Comments
 (0)