diff --git a/include/llvm/Metadata.h b/include/llvm/Metadata.h index 49c5b3c87a1..3cb34f9ec6e 100644 --- a/include/llvm/Metadata.h +++ b/include/llvm/Metadata.h @@ -287,14 +287,14 @@ private: public: /// registerMDKind - Register a new metadata kind and return its ID. /// A metadata kind can be registered only once. - unsigned registerMDKind(const char *Name); + unsigned registerMDKind(const StringRef Name); /// getMDKind - Return metadata kind. If the requested metadata kind /// is not registered then return 0. - unsigned getMDKind(const char *Name); + unsigned getMDKind(const StringRef Name) const; /// isValidName - Return true if Name is a valid custom metadata handler name. - bool isValidName(const char *Name); + static bool isValidName(const StringRef Name); /// getMD - Get the metadata of given kind attached to an Instruction. /// If the metadata is not found then return 0. diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp index 6da3ec1a5d7..ce5cc7eed14 100644 --- a/lib/VMCore/Metadata.cpp +++ b/lib/VMCore/Metadata.cpp @@ -250,7 +250,7 @@ NamedMDNode::~NamedMDNode() { /// registerMDKind - Register a new metadata kind and return its ID. /// A metadata kind can be registered only once. -unsigned MetadataContext::registerMDKind(const char *Name) { +unsigned MetadataContext::registerMDKind(const StringRef Name) { assert(isValidName(Name) && "Invalid custome metadata name!"); unsigned Count = MDHandlerNames.size(); assert(MDHandlerNames.count(Name) == 0 && "Already registered MDKind!"); @@ -258,7 +258,8 @@ unsigned MetadataContext::registerMDKind(const char *Name) { } /// isValidName - Return true if Name is a valid custom metadata handler name. -bool MetadataContext::isValidName(const char *Name) { +bool MetadataContext::isValidName(const StringRef MDName) { + const char *Name = MDName.data(); if (!Name) return false; @@ -280,8 +281,8 @@ bool MetadataContext::isValidName(const char *Name) { /// getMDKind - Return metadata kind. If the requested metadata kind /// is not registered then return 0. -unsigned MetadataContext::getMDKind(const char *Name) { - StringMap::iterator I = MDHandlerNames.find(Name); +unsigned MetadataContext::getMDKind(const StringRef Name) const { + StringMap::const_iterator I = MDHandlerNames.find(Name); if (I == MDHandlerNames.end()) { assert(isValidName(Name) && "Invalid custome metadata name!"); return 0;