summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Metadata.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2009-10-22 18:55:16 +0000
committerDevang Patel <dpatel@apple.com>2009-10-22 18:55:16 +0000
commit6da5dbf3c21a880ab05f7f60bece11d3c17a3bbd (patch)
tree22a37aa431bf00a89e3b8913094fd755e6606e97 /llvm/lib/VMCore/Metadata.cpp
parent084679e70a6462bd56aed8ebf48feec7065f122f (diff)
downloadbcm5719-llvm-6da5dbf3c21a880ab05f7f60bece11d3c17a3bbd.tar.gz
bcm5719-llvm-6da5dbf3c21a880ab05f7f60bece11d3c17a3bbd.zip
Fix getMDs() interface such that it does not expose implementation details.
llvm-svn: 84885
Diffstat (limited to 'llvm/lib/VMCore/Metadata.cpp')
-rw-r--r--llvm/lib/VMCore/Metadata.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/lib/VMCore/Metadata.cpp b/llvm/lib/VMCore/Metadata.cpp
index f4d60714f99..fdac408abec 100644
--- a/llvm/lib/VMCore/Metadata.cpp
+++ b/llvm/lib/VMCore/Metadata.cpp
@@ -294,13 +294,15 @@ MDNode *MetadataContext::getMD(unsigned MDKind, const Instruction *Inst) {
}
/// getMDs - Get the metadata attached to an Instruction.
-const MetadataContext::MDMapTy *
-MetadataContext::getMDs(const Instruction *Inst) {
+void MetadataContext::
+getMDs(const Instruction *Inst, SmallVectorImpl<MDPairTy> &MDs) const {
MDStoreTy::iterator I = MetadataStore.find(Inst);
if (I == MetadataStore.end())
- return NULL;
-
- return &I->second;
+ return;
+ for (MDMapTy::iterator MI = I->second.begin(), ME = I->second.end();
+ MI != ME; ++MI)
+ MDs.push_back(std::make_pair(MI->first, MI->second));
+ std::sort(MDs.begin(), MDs.end());
}
/// getHandlerNames - Populate client supplied smallvector using custome
OpenPOWER on IntegriCloud