Skip to content

Commit c973e47

Browse files
authored
Merge pull request swiftlang#5706 from DougGregor/fix-defaultwitnesses-leak
2 parents 7a451a6 + d223a18 commit c973e47

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

lib/AST/Decl.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2973,6 +2973,10 @@ Witness ProtocolDecl::getDefaultWitness(ValueDecl *requirement) const {
29732973
/// Record the default witness for a requirement.
29742974
void ProtocolDecl::setDefaultWitness(ValueDecl *requirement, Witness witness) {
29752975
assert(witness);
2976+
// The first type we insert a default witness, register a destructor for
2977+
// this type.
2978+
if (DefaultWitnesses.empty())
2979+
getASTContext().addDestructorCleanup(DefaultWitnesses);
29762980
auto pair = DefaultWitnesses.insert(std::make_pair(requirement, witness));
29772981
assert(pair.second && "Already have a default witness!");
29782982
(void) pair;

0 commit comments

Comments
 (0)