diff options
author | Devang Patel <dpatel@apple.com> | 2009-09-09 17:44:26 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2009-09-09 17:44:26 +0000 |
commit | 88cfd964a3341ad7c89dd5e176f24db1fef6f287 (patch) | |
tree | 2c9b0a733cf60fd60c4b2195216cc43feb82ba93 | |
parent | 740fce30206ad3e1759c71ae04af9a5859857af9 (diff) |
Take lock before removing a node from MDNodeSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81356 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/VMCore/Metadata.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp index 8e025b6d7a..1163b4709c 100644 --- a/lib/VMCore/Metadata.cpp +++ b/lib/VMCore/Metadata.cpp @@ -115,7 +115,11 @@ void MDNode::dropAllReferences() { } MDNode::~MDNode() { - getType()->getContext().pImpl->MDNodeSet.RemoveNode(this); + { + LLVMContextImpl *pImpl = getType()->getContext().pImpl; + sys::SmartScopedWriter<true> Writer(pImpl->ConstantsLock); + pImpl->MDNodeSet.RemoveNode(this); + } dropAllReferences(); } |