From 37db5d67f92504226c17cfbf98c07c7bbe3afc3b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 1 Apr 2008 03:40:53 +0000 Subject: [PATCH] Remove the MappedFile::charBase member, rename base -> getBase() and make getBase() return a const-correct pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49025 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/System/MappedFile.h | 16 +++------------- lib/Debugger/SourceFile.cpp | 8 ++++---- lib/Support/MemoryBuffer.cpp | 7 ++++--- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/include/llvm/System/MappedFile.h b/include/llvm/System/MappedFile.h index 82ed8403320..c46491ee7da 100644 --- a/include/llvm/System/MappedFile.h +++ b/include/llvm/System/MappedFile.h @@ -25,7 +25,7 @@ namespace sys { /// This class provides an abstraction for a memory mapped file in the /// operating system's filesystem. It provides platform independent operations - /// for mapping a file into memory for both read access. + /// for mapping a file into memory for read access. class MappedFile { sys::PathWithStatus Path; ///< Path to the file. void *BasePtr; ///< Pointer to the base memory address @@ -44,19 +44,9 @@ namespace sys { /// This function determines if the file is currently mapped or not. bool isMapped() const { return BasePtr != 0; } - /// This function returns a void* pointer to the base address of the file + /// getBase - Returns a const void* pointer to the base address of the file /// mapping. This is the memory address of the first byte in the file. - /// Note that although a non-const pointer is returned, the memory might - /// not actually be writable, depending on the MappingOptions used when - /// the MappedFile was opened. - void* base() const { return BasePtr; } - - /// This function returns a char* pointer to the base address of the file - /// mapping. This is the memory address of the first byte in the file. - /// Note that although a non-const pointer is returned, the memory might - /// not actually be writable, depending on the MappingOptions used when - /// the MappedFile was opened. - char* charBase() const { return reinterpret_cast(BasePtr); } + const void *getBase() const { return BasePtr; } /// This function returns a reference to the sys::Path object kept by the /// MappedFile object. This contains the path to the file that is or diff --git a/lib/Debugger/SourceFile.cpp b/lib/Debugger/SourceFile.cpp index 820fc67f846..75248cd10da 100644 --- a/lib/Debugger/SourceFile.cpp +++ b/lib/Debugger/SourceFile.cpp @@ -28,7 +28,7 @@ void SourceFile::readFile() { /// void SourceFile::calculateLineOffsets() const { assert(LineOffset.empty() && "Line offsets already computed!"); - const char *BufPtr = File.charBase(); + const char *BufPtr = (const char *)File.getBase(); const char *FileStart = BufPtr; const char *FileEnd = FileStart + File.size(); do { @@ -61,12 +61,12 @@ void SourceFile::getSourceLine(unsigned LineNo, const char *&LineStart, if (LineNo >= LineOffset.size()) return; // Otherwise, they are asking for a valid line, which we can fulfill. - LineStart = File.charBase()+LineOffset[LineNo]; + LineStart = (const char *)File.getBase()+LineOffset[LineNo]; if (LineNo+1 < LineOffset.size()) - LineEnd = File.charBase()+LineOffset[LineNo+1]; + LineEnd = (const char *)File.getBase()+LineOffset[LineNo+1]; else - LineEnd = File.charBase() + File.size(); + LineEnd = (const char *)File.getBase() + File.size(); // If the line ended with a newline, strip it off. while (LineEnd != LineStart && (LineEnd[-1] == '\n' || LineEnd[-1] == '\r')) diff --git a/lib/Support/MemoryBuffer.cpp b/lib/Support/MemoryBuffer.cpp index 8cea07fdb54..185008402c3 100644 --- a/lib/Support/MemoryBuffer.cpp +++ b/lib/Support/MemoryBuffer.cpp @@ -173,11 +173,12 @@ bool MemoryBufferMMapFile::open(const sys::Path &Filename, // If this file is not an exact multiple of the system page size (common // case), then the OS has zero terminated the buffer for us. - if ((Size & (PageSize-1))) { - init(File.charBase(), File.charBase()+Size); + const char *FileBase = static_cast(File.getBase()); + if ((Size & (PageSize-1)) != 0) { + init(FileBase, FileBase+Size); } else { // Otherwise, we allocate a new memory buffer and copy the data over - initCopyOf(File.charBase(), File.charBase()+Size); + initCopyOf(FileBase, FileBase+Size); // No need to keep the file mapped any longer. File.unmap();