summaryrefslogtreecommitdiff
path: root/lib/VMCore/Metadata.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2010-01-12 18:57:56 +0000
committerDevang Patel <dpatel@apple.com>2010-01-12 18:57:56 +0000
commitd77fdba5737ee71b63681160fba5b2fc200583f4 (patch)
tree439a3bebb3a363451b240d917cd313ed5e1a9270 /lib/VMCore/Metadata.cpp
parent26028f27ddd132b3284943e11aca130c2911abc4 (diff)
downloadllvm-d77fdba5737ee71b63681160fba5b2fc200583f4.tar.gz
llvm-d77fdba5737ee71b63681160fba5b2fc200583f4.tar.bz2
llvm-d77fdba5737ee71b63681160fba5b2fc200583f4.tar.xz
Use Twine, instead of StringRef, for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93249 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Metadata.cpp')
-rw-r--r--lib/VMCore/Metadata.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp
index 5ea7bd45e5..e6a962bbca 100644
--- a/lib/VMCore/Metadata.cpp
+++ b/lib/VMCore/Metadata.cpp
@@ -18,6 +18,7 @@
#include "llvm/Instruction.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/StringMap.h"
+#include "llvm/ADT/SmallString.h"
#include "SymbolTableListTraitsImpl.h"
#include "llvm/Support/ValueHandle.h"
using namespace llvm;
@@ -263,7 +264,7 @@ static SmallVector<WeakVH, 4> &getNMDOps(void *Operands) {
return *(SmallVector<WeakVH, 4>*)Operands;
}
-NamedMDNode::NamedMDNode(LLVMContext &C, StringRef N,
+NamedMDNode::NamedMDNode(LLVMContext &C, const Twine &N,
MDNode *const *MDs,
unsigned NumMDs, Module *ParentModule)
: Value(Type::getMetadataTy(C), Value::NamedMDNodeVal), Parent(0) {
@@ -322,11 +323,23 @@ void NamedMDNode::dropAllReferences() {
}
/// setName - Set the name of this named metadata.
-void NamedMDNode::setName(StringRef N) {
- assert (!N.empty() && "Invalid named metadata name!");
- Name = N.str();
+void NamedMDNode::setName(const Twine &NewName) {
+ assert (!NewName.isTriviallyEmpty() && "Invalid named metadata name!");
+
+ SmallString<256> NameData;
+ NewName.toVector(NameData);
+
+ const char *NameStr = NameData.data();
+ unsigned NameLen = NameData.size();
+
+ StringRef NameRef = StringRef(NameStr, NameLen);
+ // Name isn't changing?
+ if (getName() == NameRef)
+ return;
+
+ Name = NameRef.str();
if (Parent)
- Parent->getMDSymbolTable().insert(N, this);
+ Parent->getMDSymbolTable().insert(NameRef, this);
}
/// getName - Return a constant reference to this named metadata's name.