summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Interpreter')
-rw-r--r--lldb/source/Interpreter/CommandInterpreter.cpp6
-rw-r--r--lldb/source/Interpreter/CommandReturnObject.cpp37
2 files changed, 18 insertions, 25 deletions
diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp
index b6cd3c73818..a6906709340 100644
--- a/lldb/source/Interpreter/CommandInterpreter.cpp
+++ b/lldb/source/Interpreter/CommandInterpreter.cpp
@@ -1518,6 +1518,8 @@ CommandInterpreter::HandleCommands (StringList &commands,
{
size_t num_lines = commands.GetSize();
CommandReturnObject tmp_result;
+ tmp_result.SetImmediateOutputStream (result.GetImmediateOutputStream ());
+ tmp_result.SetImmediateErrorStream (result.GetImmediateErrorStream ());
// If we are going to continue past a "continue" then we need to run the commands synchronously.
// Make sure you reset this value anywhere you return from the function.
@@ -1554,7 +1556,7 @@ CommandInterpreter::HandleCommands (StringList &commands,
if (print_results)
{
if (tmp_result.Succeeded())
- result.AppendMessageWithFormat("%s", tmp_result.GetOutputStream().GetData());
+ result.AppendMessageWithFormat("%s", tmp_result.GetOutputData());
}
if (!success || !tmp_result.Succeeded())
@@ -1572,7 +1574,7 @@ CommandInterpreter::HandleCommands (StringList &commands,
result.AppendMessageWithFormat ("Command #%d '%s' failed with error: %s.\n",
idx + 1,
cmd,
- tmp_result.GetErrorStream().GetData());
+ tmp_result.GetErrorData());
}
}
diff --git a/lldb/source/Interpreter/CommandReturnObject.cpp b/lldb/source/Interpreter/CommandReturnObject.cpp
index f634e3c7df5..3faf912bd7d 100644
--- a/lldb/source/Interpreter/CommandReturnObject.cpp
+++ b/lldb/source/Interpreter/CommandReturnObject.cpp
@@ -19,6 +19,8 @@ using namespace lldb;
using namespace lldb_private;
CommandReturnObject::CommandReturnObject () :
+ m_error_stream_string_sp (),
+ m_output_stream_string_sp (),
m_output_stream (),
m_error_stream (),
m_status (eReturnStatusStarted),
@@ -30,18 +32,6 @@ CommandReturnObject::~CommandReturnObject ()
{
}
-StreamString &
-CommandReturnObject::GetOutputStream ()
-{
- return m_output_stream;
-}
-
-StreamString &
-CommandReturnObject::GetErrorStream ()
-{
- return m_error_stream;
-}
-
void
CommandReturnObject::AppendErrorWithFormat (const char *format, ...)
{
@@ -51,10 +41,9 @@ CommandReturnObject::AppendErrorWithFormat (const char *format, ...)
sstrm.PrintfVarArg(format, args);
va_end (args);
- m_error_stream.Printf("error: %s", sstrm.GetData());
+ GetErrorStream().Printf("error: %s", sstrm.GetData());
}
-
void
CommandReturnObject::AppendMessageWithFormat (const char *format, ...)
{
@@ -64,7 +53,7 @@ CommandReturnObject::AppendMessageWithFormat (const char *format, ...)
sstrm.PrintfVarArg(format, args);
va_end (args);
- m_output_stream.Printf("%s", sstrm.GetData());
+ GetOutputStream().Printf("%s", sstrm.GetData());
}
void
@@ -76,7 +65,7 @@ CommandReturnObject::AppendWarningWithFormat (const char *format, ...)
sstrm.PrintfVarArg(format, args);
va_end (args);
- m_error_stream.Printf("warning: %s", sstrm.GetData());
+ GetErrorStream().Printf("warning: %s", sstrm.GetData());
}
void
@@ -84,7 +73,7 @@ CommandReturnObject::AppendMessage (const char *in_string, int len)
{
if (len < 0)
len = ::strlen (in_string);
- m_output_stream.Printf("%*.*s\n", len, len, in_string);
+ GetOutputStream().Printf("%*.*s\n", len, len, in_string);
}
void
@@ -92,7 +81,7 @@ CommandReturnObject::AppendWarning (const char *in_string, int len)
{
if (len < 0)
len = ::strlen (in_string);
- m_error_stream.Printf("warning: %*.*s\n", len, len, in_string);
+ GetErrorStream().Printf("warning: %*.*s\n", len, len, in_string);
}
// Similar to AppendWarning, but do not prepend 'warning: ' to message, and
@@ -103,7 +92,7 @@ CommandReturnObject::AppendRawWarning (const char *in_string, int len)
{
if (len < 0)
len = ::strlen (in_string);
- m_error_stream.Printf("%*.*s", len, len, in_string);
+ GetErrorStream().Printf("%*.*s", len, len, in_string);
}
void
@@ -114,7 +103,7 @@ CommandReturnObject::AppendError (const char *in_string, int len)
if (len < 0)
len = ::strlen (in_string);
- m_error_stream.Printf ("error: %*.*s\n", len, len, in_string);
+ GetErrorStream().Printf ("error: %*.*s\n", len, len, in_string);
}
// Similar to AppendError, but do not prepend 'Error: ' to message, and
@@ -125,7 +114,7 @@ CommandReturnObject::AppendRawError (const char *in_string, int len)
{
if (len < 0)
len = ::strlen (in_string);
- m_error_stream.Printf ("%*.*s", len, len, in_string);
+ GetErrorStream().Printf ("%*.*s", len, len, in_string);
}
void
@@ -156,8 +145,10 @@ CommandReturnObject::HasResult ()
void
CommandReturnObject::Clear()
{
- m_output_stream.Clear();
- m_error_stream.Clear();
+ if (m_output_stream_string_sp)
+ static_cast<StreamString *>(m_output_stream_string_sp.get())->Clear();
+ if (m_error_stream_string_sp)
+ static_cast<StreamString *>(m_error_stream_string_sp.get())->Clear();
m_status = eReturnStatusStarted;
}
OpenPOWER on IntegriCloud