From e8eb2367d282160c24623110bc8ff7fbb098324d Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Wed, 24 Jun 2009 22:42:39 +0000 Subject: Add constructor to create MDString using std::string git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74133 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/Constants.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lib/VMCore') diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index c164a3b..ba8ab2e 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -1803,6 +1803,17 @@ MDString *MDString::get(const char *StrBegin, const char *StrEnd) { return S; } +MDString *MDString::get(const std::string &Str) { + sys::SmartScopedWriter Writer(&*ConstantsLock); + StringMapEntry &Entry = MDStringCache->GetOrCreateValue( + Str.data(), Str.data() + Str.size()); + MDString *&S = Entry.getValue(); + if (!S) S = new MDString(Entry.getKeyData(), + Entry.getKeyData() + Entry.getKeyLength()); + + return S; +} + void MDString::destroyConstant() { sys::SmartScopedWriter Writer(&*ConstantsLock); MDStringCache->erase(MDStringCache->find(StrBegin, StrEnd)); -- cgit v1.1