Remove the MappedFile::charBase member, rename base -> getBase() and
authorChris Lattner <sabre@nondot.org>
Tue, 1 Apr 2008 03:40:53 +0000 (03:40 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 1 Apr 2008 03:40:53 +0000 (03:40 +0000)
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
lib/Debugger/SourceFile.cpp
lib/Support/MemoryBuffer.cpp

index 82ed8403320d672697aa15d3e7cc6cebfe14114d..c46491ee7dae18f296065f7d76bef8131e9fc41b 100644 (file)
@@ -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<char*>(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
index 820fc67f846da1832233428f7122eb6ea4121155..75248cd10da69c86688d6fd290866c569d19e21b 100644 (file)
@@ -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'))
index 8cea07fdb5451f8a95d437c507b200670a48a6fe..185008402c3f0f22423dbc000dd9c9ebda9899fa 100644 (file)
@@ -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<const char*>(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();