diff options
| author | Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> | 2010-03-12 08:23:34 +0000 |
|---|---|---|
| committer | Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> | 2010-03-12 08:23:34 +0000 |
| commit | 661a30993312238863d21d87f3525a2171a7c179 (patch) | |
| tree | f89f32b8ad84413d4bda7a2c73581f9461cdcb46 | |
| parent | 53ebf8a7cabb660100d4c67d43f9d87135885e35 (diff) | |
| download | bcm5719-llvm-661a30993312238863d21d87f3525a2171a7c179.tar.gz bcm5719-llvm-661a30993312238863d21d87f3525a2171a7c179.zip | |
Switch over IdentifierInfoLookup to StringRef
llvm-svn: 98337
| -rw-r--r-- | clang/include/clang/Basic/IdentifierTable.h | 9 | ||||
| -rw-r--r-- | clang/include/clang/Lex/PTHManager.h | 2 | ||||
| -rw-r--r-- | clang/lib/Lex/PTHLexer.cpp | 10 |
3 files changed, 10 insertions, 11 deletions
diff --git a/clang/include/clang/Basic/IdentifierTable.h b/clang/include/clang/Basic/IdentifierTable.h index 75a7b8192c5..edbfeccea3c 100644 --- a/clang/include/clang/Basic/IdentifierTable.h +++ b/clang/include/clang/Basic/IdentifierTable.h @@ -18,6 +18,7 @@ #include "clang/Basic/OperatorKinds.h" #include "clang/Basic/TokenKinds.h" #include "llvm/ADT/StringMap.h" +#include "llvm/ADT/StringRef.h" #include "llvm/ADT/SmallString.h" #include "llvm/ADT/OwningPtr.h" #include "llvm/Support/PointerLikeTypeTraits.h" @@ -236,9 +237,7 @@ public: /// Unlike the version in IdentifierTable, this returns a pointer instead /// of a reference. If the pointer is NULL then the IdentifierInfo cannot /// be found. - // - // FIXME: Move to StringRef API. - virtual IdentifierInfo* get(const char *NameStart, const char *NameEnd) = 0; + virtual IdentifierInfo* get(llvm::StringRef Name) = 0; }; /// \brief An abstract class used to resolve numerical identifier @@ -292,7 +291,7 @@ public: // No entry; if we have an external lookup, look there first. if (ExternalLookup) { - II = ExternalLookup->get(NameStart, NameEnd); + II = ExternalLookup->get(llvm::StringRef(NameStart, NameEnd-NameStart)); if (II) { // Cache in the StringMap for subsequent lookups. Entry.setValue(II); @@ -533,7 +532,7 @@ struct DenseMapInfo<clang::Selector> { return LHS == RHS; } }; - + template <> struct isPodLike<clang::Selector> { static const bool value = true; }; diff --git a/clang/include/clang/Lex/PTHManager.h b/clang/include/clang/Lex/PTHManager.h index ac5594e55d7..5e8a4f144c9 100644 --- a/clang/include/clang/Lex/PTHManager.h +++ b/clang/include/clang/Lex/PTHManager.h @@ -115,7 +115,7 @@ public: /// Unlike the version in IdentifierTable, this returns a pointer instead /// of a reference. If the pointer is NULL then the IdentifierInfo cannot /// be found. - IdentifierInfo *get(const char *NameStart, const char *NameEnd); + IdentifierInfo *get(llvm::StringRef Name); /// Create - This method creates PTHManager objects. The 'file' argument /// is the name of the PTH file. This method returns NULL upon failure. diff --git a/clang/lib/Lex/PTHLexer.cpp b/clang/lib/Lex/PTHLexer.cpp index a64008ab180..3b949d0ab40 100644 --- a/clang/lib/Lex/PTHLexer.cpp +++ b/clang/lib/Lex/PTHLexer.cpp @@ -549,12 +549,12 @@ IdentifierInfo* PTHManager::LazilyCreateIdentifierInfo(unsigned PersistentID) { return II; } -IdentifierInfo* PTHManager::get(const char *NameStart, const char *NameEnd) { +IdentifierInfo* PTHManager::get(llvm::StringRef Name) { PTHStringIdLookup& SL = *((PTHStringIdLookup*)StringIdLookup); // Double check our assumption that the last character isn't '\0'. - assert(NameEnd==NameStart || NameStart[NameEnd-NameStart-1] != '\0'); - PTHStringIdLookup::iterator I = SL.find(std::make_pair(NameStart, - NameEnd - NameStart)); + assert(Name.empty() || Name.data()[Name.size()-1] != '\0'); + PTHStringIdLookup::iterator I = SL.find(std::make_pair(Name.data(), + Name.size())); if (I == SL.end()) // No identifier found? return 0; @@ -662,7 +662,7 @@ public: CacheTy::iterator I = Cache.find(path); // If we don't get a hit in the PTH file just forward to 'stat'. - if (I == Cache.end()) + if (I == Cache.end()) return StatSysCallCache::stat(path, buf); const PTHStatData& Data = *I; |

