diff options
author | Devang Patel <dpatel@apple.com> | 2009-08-03 06:19:01 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2009-08-03 06:19:01 +0000 |
commit | a82f8838c60b7a3b240e185983dacb3291396f3e (patch) | |
tree | b9682c32f806ce7050af704b1df876388b7bc3e6 /lib | |
parent | 8d632c1e984c1d2810e0e78a73977fdb0b23e125 (diff) |
Add NamedMDNode destructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77959 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VMCore/Metadata.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp index bf0611f9e4..f548e54944 100644 --- a/lib/VMCore/Metadata.cpp +++ b/lib/VMCore/Metadata.cpp @@ -83,3 +83,20 @@ NamedMDNode::NamedMDNode(const Twine &N, MetadataBase*const* MDs, if (ParentModule) ParentModule->getNamedMDList().push_back(this); } + +/// eraseFromParent - Drop all references and remove the node from parent +/// module. +void NamedMDNode::eraseFromParent() { + dropAllReferences(); + getParent()->getNamedMDList().erase(this); +} + +/// dropAllReferences - Remove all uses and clear node vector. +void NamedMDNode::dropAllReferences() { + // FIXME: Update metadata use list. + Node.clear(); +} + +NamedMDNode::~NamedMDNode() { + dropAllReferences(); +} |