Add a convenience API SourceManager::addMemBufferCopy() to simplify adding a

buffer in case the client does not need a pointer to the buffer.


Swift SVN r14777
This commit is contained in:
Dmitri Hrybenko
2014-03-07 11:41:08 +00:00
parent b9c87184ea
commit ef0942c69c
6 changed files with 34 additions and 24 deletions

View File

@@ -23,11 +23,22 @@ SourceLoc SourceManager::getCodeCompletionLoc() const {
}
size_t SourceManager::addNewSourceBuffer(llvm::MemoryBuffer *Buffer) {
assert(Buffer);
auto ID = LLVMSourceMgr.AddNewSourceBuffer(Buffer, llvm::SMLoc());
BufIdentIDMap[Buffer->getBufferIdentifier()] = ID;
return ID;
}
size_t SourceManager::addMemBufferCopy(llvm::MemoryBuffer *Buffer) {
return addMemBufferCopy(Buffer->getBuffer(), Buffer->getBufferIdentifier());
}
size_t SourceManager::addMemBufferCopy(StringRef InputData,
StringRef BufIdentifier) {
auto Buffer = llvm::MemoryBuffer::getMemBufferCopy(InputData, BufIdentifier);
return addNewSourceBuffer(Buffer);
}
Optional<unsigned> SourceManager::getIDForBufferIdentifier(
StringRef BufIdentifier) {
auto It = BufIdentIDMap.find(BufIdentifier);