[clang-tools-extra] [clang-doc] refactor JSONGenerator array usage (PR #145595)
Paul Kirth via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 25 10:27:24 PDT 2025
================
@@ -454,27 +417,19 @@ static void serializeInfo(const RecordInfo &I, json::Object &Obj,
Obj["ProtectedMembers"] = ProtectedMembersArray;
}
- if (!I.Bases.empty()) {
- json::Value BasesArray = Array();
- json::Array &BasesArrayRef = *BasesArray.getAsArray();
- BasesArrayRef.reserve(I.Bases.size());
- for (const auto &BaseInfo : I.Bases) {
- json::Value BaseInfoVal = Object();
- auto &BaseInfoObj = *BaseInfoVal.getAsObject();
- serializeInfo(BaseInfo, BaseInfoObj, RepositoryUrl);
- BaseInfoObj["IsVirtual"] = BaseInfo.IsVirtual;
- BaseInfoObj["Access"] = getAccessSpelling(BaseInfo.Access);
- BaseInfoObj["IsParent"] = BaseInfo.IsParent;
- BasesArrayRef.push_back(BaseInfoVal);
- }
- Obj["Bases"] = BasesArray;
- }
+ if (!I.Bases.empty())
+ serializeArray(
+ I.Bases, Obj, "Bases",
+ [RepositoryUrl](const BaseRecordInfo &Base, Object &BaseObj) {
----------------
ilovepi wrote:
Doesn't the capture copy the string? Is there a lifetime issue?
https://github.com/llvm/llvm-project/pull/145595
More information about the cfe-commits
mailing list