raw_ostream: Reduce FormattedStream's reliance on raw_ostream's implementation.

- Kill off begin(), end(), and iterator. It isn't clear what these
   mean. Instead provide getBufferStart(), which can be used with
   GetNumBytesInBuffer to the same effect.

 - Update ComputeColumn to take arguments for the buffer to scan, this
   simplifies the implementation of write_impl substantially.

 - This should also fix possible problems with the scanning pointer pointing
   outside of the current raw_ostream buffer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79379 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar
2009-08-18 23:36:04 +00:00
parent 233fd9cea0
commit ab81027544
3 changed files with 27 additions and 30 deletions

View File

@ -58,7 +58,7 @@ namespace llvm
/// Scanned - This points to one past the last character in the
/// buffer we've scanned.
///
iterator Scanned;
const char *Scanned;
virtual void write_impl(const char *Ptr, size_t Size);
@ -70,10 +70,10 @@ namespace llvm
return TheStream->tell() - TheStream->GetNumBytesInBuffer();
}
/// ComputeColumn - Examine the current output and figure out
/// which column we end up in after output.
/// ComputeColumn - Examine the given output buffer and figure out which
/// column we end up in after output.
///
void ComputeColumn();
void ComputeColumn(const char *Ptr, size_t size);
public:
/// formatted_raw_ostream - Open the specified file for
@ -92,7 +92,7 @@ namespace llvm
}
explicit formatted_raw_ostream()
: raw_ostream(), TheStream(0), DeleteStream(false), ColumnScanned(0) {
Scanned = begin();
Scanned = 0;
}
~formatted_raw_ostream() {
@ -116,7 +116,7 @@ namespace llvm
SetUnbuffered();
TheStream->SetUnbuffered();
Scanned = begin();
Scanned = 0;
}
/// PadToColumn - Align the output to some column number. If the current