diff include/llvm/Support/FormattedStream.h @ 95:afa8332a0e37

LLVM 3.8
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 13 Oct 2015 17:48:58 +0900
parents 54457678186b
children
line wrap: on
line diff
--- a/include/llvm/Support/FormattedStream.h	Wed Feb 18 14:56:07 2015 +0900
+++ b/include/llvm/Support/FormattedStream.h	Tue Oct 13 17:48:58 2015 +0900
@@ -25,27 +25,11 @@
 /// boundaries and querying the number of lines written to the stream.
 ///
 class formatted_raw_ostream : public raw_ostream {
-public:
-  /// DELETE_STREAM - Tell the destructor to delete the held stream.
-  ///
-  static const bool DELETE_STREAM = true;
-
-  /// PRESERVE_STREAM - Tell the destructor to not delete the held
-  /// stream.
-  ///
-  static const bool PRESERVE_STREAM = false;
-
-private:
   /// TheStream - The real stream we output to. We set it to be
   /// unbuffered, since we're already doing our own buffering.
   ///
   raw_ostream *TheStream;
 
-  /// DeleteStream - Do we need to delete TheStream in the
-  /// destructor?
-  ///
-  bool DeleteStream;
-
   /// Position - The current output column and line of the data that's
   /// been flushed and the portion of the buffer that's been
   /// scanned.  The line and column scheme is zero-based.
@@ -73,36 +57,10 @@
   ///
   void ComputePosition(const char *Ptr, size_t size);
 
-public:
-  /// formatted_raw_ostream - Open the specified file for
-  /// writing. If an error occurs, information about the error is
-  /// put into ErrorInfo, and the stream should be immediately
-  /// destroyed; the string will be empty if no error occurred.
-  ///
-  /// As a side effect, the given Stream is set to be Unbuffered.
-  /// This is because formatted_raw_ostream does its own buffering,
-  /// so it doesn't want another layer of buffering to be happening
-  /// underneath it.
-  ///
-  formatted_raw_ostream(raw_ostream &Stream, bool Delete = false) 
-    : raw_ostream(), TheStream(nullptr), DeleteStream(false), Position(0, 0) {
-    setStream(Stream, Delete);
-  }
-  explicit formatted_raw_ostream()
-    : raw_ostream(), TheStream(nullptr), DeleteStream(false), Position(0, 0) {
-    Scanned = nullptr;
-  }
-
-  ~formatted_raw_ostream() {
-    flush();
-    releaseStream();
-  }
-
-  void setStream(raw_ostream &Stream, bool Delete = false) {
+  void setStream(raw_ostream &Stream) {
     releaseStream();
 
     TheStream = &Stream;
-    DeleteStream = Delete;
 
     // This formatted_raw_ostream inherits from raw_ostream, so it'll do its
     // own buffering, and it doesn't need or want TheStream to do another
@@ -117,6 +75,30 @@
     Scanned = nullptr;
   }
 
+public:
+  /// formatted_raw_ostream - Open the specified file for
+  /// writing. If an error occurs, information about the error is
+  /// put into ErrorInfo, and the stream should be immediately
+  /// destroyed; the string will be empty if no error occurred.
+  ///
+  /// As a side effect, the given Stream is set to be Unbuffered.
+  /// This is because formatted_raw_ostream does its own buffering,
+  /// so it doesn't want another layer of buffering to be happening
+  /// underneath it.
+  ///
+  formatted_raw_ostream(raw_ostream &Stream)
+      : TheStream(nullptr), Position(0, 0) {
+    setStream(Stream);
+  }
+  explicit formatted_raw_ostream() : TheStream(nullptr), Position(0, 0) {
+    Scanned = nullptr;
+  }
+
+  ~formatted_raw_ostream() override {
+    flush();
+    releaseStream();
+  }
+
   /// PadToColumn - Align the output to some column number.  If the current
   /// column is already equal to or more than NewCol, PadToColumn inserts one
   /// space.
@@ -151,13 +133,11 @@
 
 private:
   void releaseStream() {
-    // Delete the stream if needed. Otherwise, transfer the buffer
-    // settings from this raw_ostream back to the underlying stream.
+    // Transfer the buffer settings from this raw_ostream back to the underlying
+    // stream.
     if (!TheStream)
       return;
-    if (DeleteStream)
-      delete TheStream;
-    else if (size_t BufferSize = GetBufferSize())
+    if (size_t BufferSize = GetBufferSize())
       TheStream->SetBufferSize(BufferSize);
     else
       TheStream->SetUnbuffered();