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
diff --git a/lldb/source/Commands/CommandObjectProcess.cpp b/lldb/source/Commands/CommandObjectProcess.cpp
index 5d25521..dea996c 100644
--- a/lldb/source/Commands/CommandObjectProcess.cpp
+++ b/lldb/source/Commands/CommandObjectProcess.cpp
@@ -242,9 +242,9 @@
// a chance to call PushProcessIOHandler().
process_sp->SyncIOHandler(0, 2000);
- const char *data = stream.GetData();
- if (data && strlen(data) > 0)
- result.AppendMessage(stream.GetData());
+ llvm::StringRef data = stream.GetString();
+ if (!data.empty())
+ result.AppendMessage(data);
const char *archname =
exe_module_sp->GetArchitecture().GetArchitectureName();
result.AppendMessageWithFormat(
@@ -504,8 +504,7 @@
if (error.Success()) {
ProcessSP process_sp(target->GetProcessSP());
if (process_sp) {
- if (stream.GetData())
- result.AppendMessage(stream.GetData());
+ result.AppendMessage(stream.GetString());
result.SetStatus(eReturnStatusSuccessFinishNoResult);
result.SetDidChangeProcessState(true);
result.SetAbnormalStopWasExpected(true);
@@ -706,8 +705,7 @@
if (synchronous_execution) {
// If any state changed events had anything to say, add that to the
// result
- if (stream.GetData())
- result.AppendMessage(stream.GetData());
+ result.AppendMessage(stream.GetString());
result.SetDidChangeProcessState(true);
result.SetStatus(eReturnStatusSuccessFinishNoResult);