Add support for MemoryBuffers that are not null terminated and add

support for creating buffers that cover only a part of a file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127409 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2011-03-10 16:10:30 +00:00
parent be2e1b50c4
commit 7deb187736
4 changed files with 86 additions and 32 deletions

View File

@ -40,7 +40,8 @@ class MemoryBuffer {
MemoryBuffer &operator=(const MemoryBuffer &); // DO NOT IMPLEMENT
protected:
MemoryBuffer() {}
void init(const char *BufStart, const char *BufEnd);
void init(const char *BufStart, const char *BufEnd,
bool RequiresNullTerminator);
public:
virtual ~MemoryBuffer();
@ -72,7 +73,10 @@ public:
/// return a MemoryBuffer.
static error_code getOpenFile(int FD, const char *Filename,
OwningPtr<MemoryBuffer> &result,
int64_t FileSize = -1);
size_t FileSize = -1,
size_t MapSize = -1,
off_t Offset = 0,
bool RequiresNullTerminator = true);
/// getMemBuffer - Open the specified memory range as a MemoryBuffer. Note
/// that InputData must be null terminated.