diff options
| author | Zachary Turner <zturner@google.com> | 2016-11-16 21:15:24 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2016-11-16 21:15:24 +0000 |
| commit | c156427ded1dfa7686c90cc56ad16013a079a742 (patch) | |
| tree | f4912beeebd9e7a04e9c20a8e05d64e25bde192d /lldb/source/API/SBStream.cpp | |
| parent | 725dc14bb21da8a01709a6b3370a658d071689dc (diff) | |
| download | bcm5719-llvm-c156427ded1dfa7686c90cc56ad16013a079a742.tar.gz bcm5719-llvm-c156427ded1dfa7686c90cc56ad16013a079a742.zip | |
Don't allow direct access to StreamString's internal buffer.
This is a large API change that removes the two functions from
StreamString that return a std::string& and a const std::string&,
and instead provide one function which returns a StringRef.
Direct access to the underlying buffer violates the concept of
a "stream" which is intended to provide forward only access,
and makes porting to llvm::raw_ostream more difficult in the
future.
Differential Revision: https://reviews.llvm.org/D26698
llvm-svn: 287152
Diffstat (limited to 'lldb/source/API/SBStream.cpp')
| -rw-r--r-- | lldb/source/API/SBStream.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/lldb/source/API/SBStream.cpp b/lldb/source/API/SBStream.cpp index 0ade453f845..858e949206f 100644 --- a/lldb/source/API/SBStream.cpp +++ b/lldb/source/API/SBStream.cpp @@ -63,8 +63,7 @@ void SBStream::RedirectToFile(const char *path, bool append) { // See if we have any locally backed data. If so, copy it so we can then // redirect it to the file so we don't lose the data if (!m_is_file) - local_data.swap( - static_cast<StreamString *>(m_opaque_ap.get())->GetString()); + local_data = static_cast<StreamString *>(m_opaque_ap.get())->GetString(); } StreamFile *stream_file = new StreamFile; uint32_t open_options = File::eOpenOptionWrite | File::eOpenOptionCanCreate; @@ -97,8 +96,7 @@ void SBStream::RedirectToFileHandle(FILE *fh, bool transfer_fh_ownership) { // See if we have any locally backed data. If so, copy it so we can then // redirect it to the file so we don't lose the data if (!m_is_file) - local_data.swap( - static_cast<StreamString *>(m_opaque_ap.get())->GetString()); + local_data = static_cast<StreamString *>(m_opaque_ap.get())->GetString(); } m_opaque_ap.reset(new StreamFile(fh, transfer_fh_ownership)); @@ -119,8 +117,7 @@ void SBStream::RedirectToFileDescriptor(int fd, bool transfer_fh_ownership) { // See if we have any locally backed data. If so, copy it so we can then // redirect it to the file so we don't lose the data if (!m_is_file) - local_data.swap( - static_cast<StreamString *>(m_opaque_ap.get())->GetString()); + local_data = static_cast<StreamString *>(m_opaque_ap.get())->GetString(); } m_opaque_ap.reset(new StreamFile(::fdopen(fd, "w"), transfer_fh_ownership)); @@ -152,6 +149,6 @@ void SBStream::Clear() { if (m_is_file) m_opaque_ap.reset(); else - static_cast<StreamString *>(m_opaque_ap.get())->GetString().clear(); + static_cast<StreamString *>(m_opaque_ap.get())->Clear(); } } |

