Skip to content
Snippets Groups Projects
Commit 7955a25c authored by Douglas Gregor's avatar Douglas Gregor
Browse files

Add missing initialization in the ContentCache. Seriously, when do

constructors go below public member functions?


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144991 91177308-0d34-0410-b5e6-96231b3b80d8
parent 9d38dbc9
No related branches found
No related tags found
No related merge requests found
...@@ -111,6 +111,31 @@ namespace SrcMgr { ...@@ -111,6 +111,31 @@ namespace SrcMgr {
/// exist. /// exist.
unsigned BufferOverridden : 1; unsigned BufferOverridden : 1;
ContentCache(const FileEntry *Ent = 0)
: Buffer(0, false), OrigEntry(Ent), ContentsEntry(Ent),
SourceLineCache(0), NumLines(0), BufferOverridden(false) {}
ContentCache(const FileEntry *Ent, const FileEntry *contentEnt)
: Buffer(0, false), OrigEntry(Ent), ContentsEntry(contentEnt),
SourceLineCache(0), NumLines(0), BufferOverridden(false) {}
~ContentCache();
/// The copy ctor does not allow copies where source object has either
/// a non-NULL Buffer or SourceLineCache. Ownership of allocated memory
/// is not transferred, so this is a logical error.
ContentCache(const ContentCache &RHS)
: Buffer(0, false), SourceLineCache(0), BufferOverridden(false)
{
OrigEntry = RHS.OrigEntry;
ContentsEntry = RHS.ContentsEntry;
assert (RHS.Buffer.getPointer() == 0 && RHS.SourceLineCache == 0 &&
"Passed ContentCache object cannot own a buffer.");
NumLines = RHS.NumLines;
}
/// getBuffer - Returns the memory buffer for the associated content. /// getBuffer - Returns the memory buffer for the associated content.
/// ///
/// \param Diag Object through which diagnostics will be emitted if the /// \param Diag Object through which diagnostics will be emitted if the
...@@ -166,31 +191,6 @@ namespace SrcMgr { ...@@ -166,31 +191,6 @@ namespace SrcMgr {
return (Buffer.getInt() & DoNotFreeFlag) == 0; return (Buffer.getInt() & DoNotFreeFlag) == 0;
} }
ContentCache(const FileEntry *Ent = 0)
: Buffer(0, false), OrigEntry(Ent), ContentsEntry(Ent),
SourceLineCache(0), NumLines(0) {}
ContentCache(const FileEntry *Ent, const FileEntry *contentEnt)
: Buffer(0, false), OrigEntry(Ent), ContentsEntry(contentEnt),
SourceLineCache(0), NumLines(0) {}
~ContentCache();
/// The copy ctor does not allow copies where source object has either
/// a non-NULL Buffer or SourceLineCache. Ownership of allocated memory
/// is not transferred, so this is a logical error.
ContentCache(const ContentCache &RHS)
: Buffer(0, false), SourceLineCache(0)
{
OrigEntry = RHS.OrigEntry;
ContentsEntry = RHS.ContentsEntry;
assert (RHS.Buffer.getPointer() == 0 && RHS.SourceLineCache == 0 &&
"Passed ContentCache object cannot own a buffer.");
NumLines = RHS.NumLines;
}
private: private:
// Disable assignments. // Disable assignments.
ContentCache &operator=(const ContentCache& RHS); ContentCache &operator=(const ContentCache& RHS);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment