Skip to content

Commit 153d9b0

Browse files
committed
fix: avoid infinite recursion in OverloadsFinalizer
1 parent 287e588 commit 153d9b0

File tree

5 files changed

+1360
-2
lines changed

5 files changed

+1360
-2
lines changed

src/lib/Metadata/Finalizers/OverloadsFinalizer.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,8 @@ void
188188
OverloadsFinalizer::
189189
operator()(RecordInfo& I)
190190
{
191-
MRDOCS_CHECK_OR(!finalized_.contains(I.id));
191+
MRDOCS_CHECK_OR(finalized_.emplace(I.id).second);
192+
192193
for (auto& b: I.Bases)
193194
{
194195
auto& BT = b.Type;
@@ -213,7 +214,6 @@ operator()(RecordInfo& I)
213214
foldRecordMembers(I.Interface.Public.Records);
214215
foldRecordMembers(I.Interface.Protected.Records);
215216
foldRecordMembers(I.Interface.Private.Records);
216-
finalized_.emplace(I.id);
217217
}
218218

219219
} // clang::mrdocs

0 commit comments

Comments
 (0)