summaryrefslogtreecommitdiffstats
path: root/lldb/source/API/SBStream.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-11-16 21:15:24 +0000
committerZachary Turner <zturner@google.com>2016-11-16 21:15:24 +0000
commitc156427ded1dfa7686c90cc56ad16013a079a742 (patch)
treef4912beeebd9e7a04e9c20a8e05d64e25bde192d /lldb/source/API/SBStream.cpp
parent725dc14bb21da8a01709a6b3370a658d071689dc (diff)
downloadbcm5719-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.cpp11
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();
}
}
OpenPOWER on IntegriCloud