mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 06:44:46 +01:00
[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:
committed by
Raphael Isemann
parent
76b70f6f75
commit
4f728bfc13
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
Reference in New Issue
Block a user