[cfe-commits] r62403 - in /cfe/trunk: include/clang/Basic/SourceManager.h lib/Basic/SourceManager.cpp
Chris Lattner
sabre at nondot.org
Fri Jan 16 19:54:16 PST 2009
Author: lattner
Date: Fri Jan 16 21:54:16 2009
New Revision: 62403
URL: http://llvm.org/viewvc/llvm-project?rev=62403&view=rev
Log:
make "ContentCache::Buffer" mutable to avoid a const_cast.
Modified:
cfe/trunk/include/clang/Basic/SourceManager.h
cfe/trunk/lib/Basic/SourceManager.cpp
Modified: cfe/trunk/include/clang/Basic/SourceManager.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/SourceManager.h?rev=62403&r1=62402&r2=62403&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/SourceManager.h (original)
+++ cfe/trunk/include/clang/Basic/SourceManager.h Fri Jan 16 21:54:16 2009
@@ -51,24 +51,24 @@
class ContentCache {
/// Buffer - The actual buffer containing the characters from the input
/// file. This is owned by the ContentCache object.
- const llvm::MemoryBuffer* Buffer;
+ mutable const llvm::MemoryBuffer *Buffer;
public:
/// Reference to the file entry. This reference does not own
/// the FileEntry object. It is possible for this to be NULL if
/// the ContentCache encapsulates an imaginary text buffer.
- const FileEntry* Entry;
+ const FileEntry *Entry;
/// SourceLineCache - A new[]'d array of offsets for each source line. This
/// is lazily computed. This is owned by the ContentCache object.
- unsigned* SourceLineCache;
+ unsigned *SourceLineCache;
/// NumLines - The number of lines in this ContentCache. This is only valid
/// if SourceLineCache is non-null.
unsigned NumLines;
/// getBuffer - Returns the memory buffer for the associated content.
- const llvm::MemoryBuffer* getBuffer() const;
+ const llvm::MemoryBuffer *getBuffer() const;
/// getSize - Returns the size of the content encapsulated by this
/// ContentCache. This can be the size of the source file or the size of an
@@ -81,12 +81,12 @@
/// instantiated.
unsigned getSizeBytesMapped() const;
- void setBuffer(const llvm::MemoryBuffer* B) {
+ void setBuffer(const llvm::MemoryBuffer *B) {
assert(!Buffer && "MemoryBuffer already set.");
Buffer = B;
}
- ContentCache(const FileEntry* e = NULL)
+ ContentCache(const FileEntry *e = NULL)
: Buffer(NULL), Entry(e), SourceLineCache(NULL), NumLines(0) {}
~ContentCache();
@@ -94,7 +94,7 @@
/// The copy ctor does not allow copies where source object has either
/// a non-NULL Buffer or SourceLineCache. Ownership of allocated memory
/// is not transfered, so this is a logical error.
- ContentCache(const ContentCache& RHS) : Buffer(NULL),SourceLineCache(NULL) {
+ ContentCache(const ContentCache &RHS) : Buffer(NULL),SourceLineCache(NULL) {
Entry = RHS.Entry;
assert (RHS.Buffer == NULL && RHS.SourceLineCache == NULL
@@ -104,16 +104,16 @@
}
/// Emit - Emit this ContentCache to Bitcode.
- void Emit(llvm::Serializer& S) const;
+ void Emit(llvm::Serializer &S) const;
/// ReadToSourceManager - Reconstitute a ContentCache from Bitcode
// and store it in the specified SourceManager.
- static void ReadToSourceManager(llvm::Deserializer& D, SourceManager& SMgr,
- FileManager* FMgr, std::vector<char>& Buf);
+ static void ReadToSourceManager(llvm::Deserializer &D, SourceManager &SM,
+ FileManager *FMgr, std::vector<char> &Buf);
private:
// Disable assignments.
- ContentCache& operator=(const ContentCache& RHS);
+ ContentCache &operator=(const ContentCache& RHS);
};
/// FileIDInfo - Information about a FileID, basically just the logical file
@@ -150,7 +150,7 @@
unsigned FileCharacteristic : 2;
/// Content - Information about the source buffer itself.
- const ContentCache* Content;
+ const ContentCache *Content;
public:
/// get - Return a FileIDInfo object.
Modified: cfe/trunk/lib/Basic/SourceManager.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/SourceManager.cpp?rev=62403&r1=62402&r2=62403&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/SourceManager.cpp (original)
+++ cfe/trunk/lib/Basic/SourceManager.cpp Fri Jan 16 21:54:16 2009
@@ -56,9 +56,7 @@
if (!Buffer && Entry) {
// FIXME: Should we support a way to not have to do this check over
// and over if we cannot open the file?
- // FIXME: This const_cast is ugly. Should we make getBuffer() non-const?
- const_cast<ContentCache*>(this)->Buffer =
- MemoryBuffer::getFile(Entry->getName(), 0, Entry->getSize());
+ Buffer = MemoryBuffer::getFile(Entry->getName(), 0, Entry->getSize());
}
#endif
return Buffer;
More information about the cfe-commits
mailing list