@@ -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 ();
0 commit comments