diff options
-rw-r--r-- | include/clang/Basic/SourceManager.h | 8 | ||||
-rw-r--r-- | lib/Basic/SourceManager.cpp | 5 |
2 files changed, 4 insertions, 9 deletions
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h index 270fba668e..41fa04183c 100644 --- a/include/clang/Basic/SourceManager.h +++ b/include/clang/Basic/SourceManager.h @@ -403,14 +403,6 @@ public: return PLoc.getFileLocWithOffset(Loc.getMacroSpellingOffs()); } - /// getContentCacheForLoc - Return the ContentCache for the spelling loc of - /// the specified SourceLocation, if one exists. - const SrcMgr::ContentCache* getContentCacheForLoc(SourceLocation Loc) const { - Loc = getSpellingLoc(Loc); - unsigned ChunkID = Loc.getChunkID(); - assert(ChunkID-1 < FileIDs.size() && "Invalid FileID!"); - return FileIDs[ChunkID-1].getContentCache(); - } /// getFileEntryForID - Returns the FileEntry record for the provided FileID. const FileEntry *getFileEntryForID(FileID FID) const { diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp index 989c3ac1fd..35c350ebba 100644 --- a/lib/Basic/SourceManager.cpp +++ b/lib/Basic/SourceManager.cpp @@ -228,9 +228,12 @@ unsigned SourceManager::getColumnNumber(SourceLocation Loc) const { const char *SourceManager::getSourceName(SourceLocation Loc) const { if (Loc.getChunkID() == 0) return ""; + Loc = getSpellingLoc(Loc); + unsigned ChunkID = Loc.getChunkID(); + const SrcMgr::ContentCache *C = getFIDInfo(ChunkID)->getContentCache(); + // To get the source name, first consult the FileEntry (if one exists) before // the MemBuffer as this will avoid unnecessarily paging in the MemBuffer. - const SrcMgr::ContentCache *C = getContentCacheForLoc(Loc); return C->Entry ? C->Entry->getName() : C->getBuffer()->getBufferIdentifier(); } |