[lldb][NFC] Use raw_ostream instead of Stream in Baton::GetDescription

Removing raw_ostream here is getting us closer to removing LLDB's Stream
class.
This commit is contained in:
Raphael Isemann
2019-12-02 13:27:21 +01:00
committed by Raphael Isemann
parent 76b70f6f75
commit 4f728bfc13
8 changed files with 56 additions and 49 deletions
@@ -88,7 +88,8 @@ public:
explicit CommandBaton(std::unique_ptr<CommandData> Data)
: TypedBaton(std::move(Data)) {}
void GetDescription(Stream *s, lldb::DescriptionLevel level) const override;
void GetDescription(llvm::raw_ostream &s, lldb::DescriptionLevel level,
unsigned indentation) const override;
};
typedef std::shared_ptr<CommandBaton> CommandBatonSP;
@@ -180,7 +180,8 @@ public:
CommandBaton(std::unique_ptr<CommandData> Data)
: TypedBaton(std::move(Data)) {}
void GetDescription(Stream *s, lldb::DescriptionLevel level) const override;
void GetDescription(llvm::raw_ostream &s, lldb::DescriptionLevel level,
unsigned indentation) const override;
};
protected:
+9 -4
View File
@@ -12,6 +12,8 @@
#include "lldb/lldb-enumerations.h"
#include "lldb/lldb-public.h"
#include "llvm/Support/raw_ostream.h"
#include <memory>
namespace lldb_private {
@@ -37,8 +39,9 @@ public:
virtual void *data() = 0;
virtual void GetDescription(Stream *s,
lldb::DescriptionLevel level) const = 0;
virtual void GetDescription(llvm::raw_ostream &s,
lldb::DescriptionLevel level,
unsigned indentation) const = 0;
};
class UntypedBaton : public Baton {
@@ -50,7 +53,8 @@ public:
}
void *data() override { return m_data; }
void GetDescription(Stream *s, lldb::DescriptionLevel level) const override;
void GetDescription(llvm::raw_ostream &s, lldb::DescriptionLevel level,
unsigned indentation) const override;
void *m_data; // Leave baton public for easy access
};
@@ -63,7 +67,8 @@ public:
const T *getItem() const { return Item.get(); }
void *data() override { return Item.get(); }
void GetDescription(Stream *s, lldb::DescriptionLevel level) const override {}
void GetDescription(llvm::raw_ostream &s, lldb::DescriptionLevel level,
unsigned indentation) const override {}
protected:
std::unique_ptr<T> Item;
+18 -19
View File
@@ -566,7 +566,8 @@ void BreakpointOptions::GetDescription(Stream *s,
if (m_callback_baton_sp.get()) {
if (level != eDescriptionLevelBrief) {
s->EOL();
m_callback_baton_sp->GetDescription(s, level);
m_callback_baton_sp->GetDescription(s->AsRawOstream(), level,
s->GetIndentLevel());
}
}
if (!m_condition_text.empty()) {
@@ -578,35 +579,33 @@ void BreakpointOptions::GetDescription(Stream *s,
}
void BreakpointOptions::CommandBaton::GetDescription(
Stream *s, lldb::DescriptionLevel level) const {
llvm::raw_ostream &s, lldb::DescriptionLevel level,
unsigned indentation) const {
const CommandData *data = getItem();
if (level == eDescriptionLevelBrief) {
s->Printf(", commands = %s",
(data && data->user_source.GetSize() > 0) ? "yes" : "no");
s << ", commands = "
<< ((data && data->user_source.GetSize() > 0) ? "yes" : "no");
return;
}
s->IndentMore();
s->Indent("Breakpoint commands");
indentation += 2;
s.indent(indentation);
s << "Breakpoint commands";
if (data->interpreter != eScriptLanguageNone)
s->Printf(" (%s):\n",
ScriptInterpreter::LanguageToString(data->interpreter).c_str());
s << llvm::formatv(" ({0}):\n",
ScriptInterpreter::LanguageToString(data->interpreter));
else
s->PutCString(":\n");
s << ":\n";
s->IndentMore();
indentation += 2;
if (data && data->user_source.GetSize() > 0) {
const size_t num_strings = data->user_source.GetSize();
for (size_t i = 0; i < num_strings; ++i) {
s->Indent(data->user_source.GetStringAtIndex(i));
s->EOL();
for (llvm::StringRef str : data->user_source) {
s.indent(indentation);
s << str << "\n";
}
} else {
s->PutCString("No commands.\n");
}
s->IndentLess();
s->IndentLess();
} else
s << "No commands.\n";
}
void BreakpointOptions::SetCommandDataCallback(
+14 -14
View File
@@ -121,7 +121,8 @@ void WatchpointOptions::GetCallbackDescription(
Stream *s, lldb::DescriptionLevel level) const {
if (m_callback_baton_sp.get()) {
s->EOL();
m_callback_baton_sp->GetDescription(s, level);
m_callback_baton_sp->GetDescription(s->AsRawOstream(), level,
s->GetIndentLevel());
}
}
@@ -156,27 +157,26 @@ void WatchpointOptions::GetDescription(Stream *s,
}
void WatchpointOptions::CommandBaton::GetDescription(
Stream *s, lldb::DescriptionLevel level) const {
llvm::raw_ostream &s, lldb::DescriptionLevel level,
unsigned indentation) const {
const CommandData *data = getItem();
if (level == eDescriptionLevelBrief) {
s->Printf(", commands = %s",
(data && data->user_source.GetSize() > 0) ? "yes" : "no");
s << ", commands = %s"
<< ((data && data->user_source.GetSize() > 0) ? "yes" : "no");
return;
}
s->IndentMore();
s->Indent("watchpoint commands:\n");
indentation += 2;
s.indent(indentation);
s << "watchpoint commands:\n";
s->IndentMore();
indentation += 2;
if (data && data->user_source.GetSize() > 0) {
for (const std::string &line : data->user_source) {
s->Indent(line);
s->EOL();
s.indent(indentation);
s << line << "\n";
}
} else {
s->PutCString("No commands.\n");
}
s->IndentLess();
s->IndentLess();
} else
s << "No commands.\n";
}
@@ -674,10 +674,10 @@ protected:
if (baton) {
result.GetOutputStream().Printf("Breakpoint %s:\n",
id_str.GetData());
result.GetOutputStream().IndentMore();
baton->GetDescription(&result.GetOutputStream(),
eDescriptionLevelFull);
result.GetOutputStream().IndentLess();
baton->GetDescription(result.GetOutputStream().AsRawOstream(),
eDescriptionLevelFull,
result.GetOutputStream().GetIndentLevel() +
2);
} else {
result.AppendMessageWithFormat(
"Breakpoint %s does not have an associated command.\n",
@@ -611,10 +611,10 @@ protected:
const Baton *baton = wp_options->GetBaton();
if (baton) {
result.GetOutputStream().Printf("Watchpoint %u:\n", cur_wp_id);
result.GetOutputStream().IndentMore();
baton->GetDescription(&result.GetOutputStream(),
eDescriptionLevelFull);
result.GetOutputStream().IndentLess();
baton->GetDescription(result.GetOutputStream().AsRawOstream(),
eDescriptionLevelFull,
result.GetOutputStream().GetIndentLevel() +
2);
} else {
result.AppendMessageWithFormat(
"Watchpoint %u does not have an associated command.\n",
+3 -2
View File
@@ -8,5 +8,6 @@
#include "lldb/Utility/Baton.h"
void lldb_private::UntypedBaton::GetDescription(
Stream *s, lldb::DescriptionLevel level) const {}
void lldb_private::UntypedBaton::GetDescription(llvm::raw_ostream &s,
lldb::DescriptionLevel level,
unsigned indentation) const {}