Skip to content

Commit 5779483

Browse files
authored
[lldb][nfc] Move broadcaster class strings away from ConstString (llvm#89690)
These are hardcoded strings that are already present in the data section of the binary, no need to immediately place them in the ConstString StringPools. Lots of code still calls `GetBroadcasterClass` and places the return value into a ConstString. Changing that would be a good follow-up. Additionally, calls to these functions are still wrapped in ConstStrings at the SBAPI layer. This is because we must guarantee the lifetime of all strings handed out publicly.
1 parent 2575cd8 commit 5779483

23 files changed

+50
-47
lines changed

lldb/include/lldb/Core/Debugger.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class Debugger : public std::enable_shared_from_this<Debugger>,
8989

9090
using DebuggerList = std::vector<lldb::DebuggerSP>;
9191

92-
static ConstString GetStaticBroadcasterClass();
92+
static llvm::StringRef GetStaticBroadcasterClass();
9393

9494
/// Get the public broadcaster for this debugger.
9595
Broadcaster &GetBroadcaster() { return m_broadcaster; }

lldb/include/lldb/Core/ThreadedCommunication.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,9 +216,9 @@ class ThreadedCommunication : public Communication, public Broadcaster {
216216
///
217217
void SynchronizeWithReadThread();
218218

219-
static ConstString &GetStaticBroadcasterClass();
219+
static llvm::StringRef GetStaticBroadcasterClass();
220220

221-
ConstString &GetBroadcasterClass() const override {
221+
llvm::StringRef GetBroadcasterClass() const override {
222222
return GetStaticBroadcasterClass();
223223
}
224224

lldb/include/lldb/Interpreter/CommandInterpreter.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,9 @@ class CommandInterpreter : public Broadcaster,
255255

256256
// These two functions fill out the Broadcaster interface:
257257

258-
static ConstString &GetStaticBroadcasterClass();
258+
static llvm::StringRef GetStaticBroadcasterClass();
259259

260-
ConstString &GetBroadcasterClass() const override {
260+
llvm::StringRef GetBroadcasterClass() const override {
261261
return GetStaticBroadcasterClass();
262262
}
263263

lldb/include/lldb/Target/Process.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ class Process : public std::enable_shared_from_this<Process>,
381381

382382
// These two functions fill out the Broadcaster interface:
383383

384-
static ConstString &GetStaticBroadcasterClass();
384+
static llvm::StringRef GetStaticBroadcasterClass();
385385

386386
static constexpr llvm::StringRef AttachSynchronousHijackListenerName =
387387
"lldb.internal.Process.AttachSynchronous.hijack";
@@ -390,7 +390,7 @@ class Process : public std::enable_shared_from_this<Process>,
390390
static constexpr llvm::StringRef ResumeSynchronousHijackListenerName =
391391
"lldb.internal.Process.ResumeSynchronous.hijack";
392392

393-
ConstString &GetBroadcasterClass() const override {
393+
llvm::StringRef GetBroadcasterClass() const override {
394394
return GetStaticBroadcasterClass();
395395
}
396396

lldb/include/lldb/Target/Target.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,9 +499,9 @@ class Target : public std::enable_shared_from_this<Target>,
499499

500500
// These two functions fill out the Broadcaster interface:
501501

502-
static ConstString &GetStaticBroadcasterClass();
502+
static llvm::StringRef GetStaticBroadcasterClass();
503503

504-
ConstString &GetBroadcasterClass() const override {
504+
llvm::StringRef GetBroadcasterClass() const override {
505505
return GetStaticBroadcasterClass();
506506
}
507507

lldb/include/lldb/Target/TargetList.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ class TargetList : public Broadcaster {
3737

3838
// These two functions fill out the Broadcaster interface:
3939

40-
static ConstString &GetStaticBroadcasterClass();
40+
static llvm::StringRef GetStaticBroadcasterClass();
4141

42-
ConstString &GetBroadcasterClass() const override {
42+
llvm::StringRef GetBroadcasterClass() const override {
4343
return GetStaticBroadcasterClass();
4444
}
4545

lldb/include/lldb/Target/Thread.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ class Thread : public std::enable_shared_from_this<Thread>,
7474
eBroadcastBitThreadSelected = (1 << 4)
7575
};
7676

77-
static ConstString &GetStaticBroadcasterClass();
77+
static llvm::StringRef GetStaticBroadcasterClass();
7878

79-
ConstString &GetBroadcasterClass() const override {
79+
llvm::StringRef GetBroadcasterClass() const override {
8080
return GetStaticBroadcasterClass();
8181
}
8282

lldb/include/lldb/Utility/Broadcaster.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ namespace lldb_private {
3939
/// Debugger maintains a list of BroadcastEventSpec's and when it is made
4040
class BroadcastEventSpec {
4141
public:
42-
BroadcastEventSpec(const ConstString &broadcaster_class, uint32_t event_bits)
42+
BroadcastEventSpec(llvm::StringRef broadcaster_class, uint32_t event_bits)
4343
: m_broadcaster_class(broadcaster_class), m_event_bits(event_bits) {}
4444

4545
~BroadcastEventSpec() = default;
4646

47-
ConstString GetBroadcasterClass() const { return m_broadcaster_class; }
47+
const std::string &GetBroadcasterClass() const { return m_broadcaster_class; }
4848

4949
uint32_t GetEventBits() const { return m_event_bits; }
5050

@@ -67,7 +67,7 @@ class BroadcastEventSpec {
6767
bool operator<(const BroadcastEventSpec &rhs) const;
6868

6969
private:
70-
ConstString m_broadcaster_class;
70+
std::string m_broadcaster_class;
7171
uint32_t m_event_bits;
7272
};
7373

@@ -307,7 +307,7 @@ class Broadcaster {
307307
/// FIXME: Probably should make a ManagedBroadcaster subclass with all the
308308
/// bits needed to work with the BroadcasterManager, so that it is clearer
309309
/// how to add one.
310-
virtual ConstString &GetBroadcasterClass() const;
310+
virtual llvm::StringRef GetBroadcasterClass() const;
311311

312312
lldb::BroadcasterManagerSP GetManager();
313313

lldb/source/API/SBCommandInterpreter.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,8 @@ SBBroadcaster SBCommandInterpreter::GetBroadcaster() {
512512
const char *SBCommandInterpreter::GetBroadcasterClass() {
513513
LLDB_INSTRUMENT();
514514

515-
return CommandInterpreter::GetStaticBroadcasterClass().AsCString();
515+
return ConstString(CommandInterpreter::GetStaticBroadcasterClass())
516+
.AsCString();
516517
}
517518

518519
const char *SBCommandInterpreter::GetArgumentTypeAsCString(

lldb/source/API/SBCommunication.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,5 +170,6 @@ SBBroadcaster SBCommunication::GetBroadcaster() {
170170
const char *SBCommunication::GetBroadcasterClass() {
171171
LLDB_INSTRUMENT();
172172

173-
return ThreadedCommunication::GetStaticBroadcasterClass().AsCString();
173+
return ConstString(ThreadedCommunication::GetStaticBroadcasterClass())
174+
.AsCString();
174175
}

lldb/source/API/SBDebugger.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ SBDebugger &SBDebugger::operator=(const SBDebugger &rhs) {
112112
const char *SBDebugger::GetBroadcasterClass() {
113113
LLDB_INSTRUMENT();
114114

115-
return Debugger::GetStaticBroadcasterClass().AsCString();
115+
return ConstString(Debugger::GetStaticBroadcasterClass()).AsCString();
116116
}
117117

118118
const char *SBDebugger::GetProgressFromEvent(const lldb::SBEvent &event,

lldb/source/API/SBEvent.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ const char *SBEvent::GetBroadcasterClass() const {
9595

9696
const Event *lldb_event = get();
9797
if (lldb_event)
98-
return lldb_event->GetBroadcaster()->GetBroadcasterClass().AsCString();
98+
return ConstString(lldb_event->GetBroadcaster()->GetBroadcasterClass())
99+
.AsCString();
99100
else
100101
return "unknown class";
101102
}

lldb/source/API/SBProcess.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ SBProcess::~SBProcess() = default;
7777
const char *SBProcess::GetBroadcasterClassName() {
7878
LLDB_INSTRUMENT();
7979

80-
return Process::GetStaticBroadcasterClass().AsCString();
80+
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
8181
}
8282

8383
const char *SBProcess::GetPluginName() {
@@ -807,7 +807,7 @@ SBBroadcaster SBProcess::GetBroadcaster() const {
807807
const char *SBProcess::GetBroadcasterClass() {
808808
LLDB_INSTRUMENT();
809809

810-
return Process::GetStaticBroadcasterClass().AsCString();
810+
return ConstString(Process::GetStaticBroadcasterClass()).AsCString();
811811
}
812812

813813
size_t SBProcess::ReadMemory(addr_t addr, void *dst, size_t dst_len,

lldb/source/API/SBTarget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ SBModule SBTarget::GetModuleAtIndexFromEvent(const uint32_t idx,
147147
const char *SBTarget::GetBroadcasterClassName() {
148148
LLDB_INSTRUMENT();
149149

150-
return Target::GetStaticBroadcasterClass().AsCString();
150+
return ConstString(Target::GetStaticBroadcasterClass()).AsCString();
151151
}
152152

153153
bool SBTarget::IsValid() const {

lldb/source/API/SBThread.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ using namespace lldb_private;
5353
const char *SBThread::GetBroadcasterClassName() {
5454
LLDB_INSTRUMENT();
5555

56-
return Thread::GetStaticBroadcasterClass().AsCString();
56+
return ConstString(Thread::GetStaticBroadcasterClass()).AsCString();
5757
}
5858

5959
// Constructors

lldb/source/Core/Debugger.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -823,8 +823,8 @@ TargetSP Debugger::FindTargetWithProcess(Process *process) {
823823
return target_sp;
824824
}
825825

826-
ConstString Debugger::GetStaticBroadcasterClass() {
827-
static ConstString class_name("lldb.debugger");
826+
llvm::StringRef Debugger::GetStaticBroadcasterClass() {
827+
static constexpr llvm::StringLiteral class_name("lldb.debugger");
828828
return class_name;
829829
}
830830

@@ -846,7 +846,7 @@ Debugger::Debugger(lldb::LogOutputCallback log_callback, void *baton)
846846
m_loaded_plugins(), m_event_handler_thread(), m_io_handler_thread(),
847847
m_sync_broadcaster(nullptr, "lldb.debugger.sync"),
848848
m_broadcaster(m_broadcaster_manager_sp,
849-
GetStaticBroadcasterClass().AsCString()),
849+
GetStaticBroadcasterClass().str()),
850850
m_forward_listener_sp(), m_clear_once() {
851851
// Initialize the debugger properties as early as possible as other parts of
852852
// LLDB will start querying them during construction.

lldb/source/Core/ThreadedCommunication.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
using namespace lldb;
3333
using namespace lldb_private;
3434

35-
ConstString &ThreadedCommunication::GetStaticBroadcasterClass() {
36-
static ConstString class_name("lldb.communication");
35+
llvm::StringRef ThreadedCommunication::GetStaticBroadcasterClass() {
36+
static constexpr llvm::StringLiteral class_name("lldb.communication");
3737
return class_name;
3838
}
3939

lldb/source/Interpreter/CommandInterpreter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,15 @@ enum {
119119
#include "InterpreterPropertiesEnum.inc"
120120
};
121121

122-
ConstString &CommandInterpreter::GetStaticBroadcasterClass() {
123-
static ConstString class_name("lldb.commandInterpreter");
122+
llvm::StringRef CommandInterpreter::GetStaticBroadcasterClass() {
123+
static constexpr llvm::StringLiteral class_name("lldb.commandInterpreter");
124124
return class_name;
125125
}
126126

127127
CommandInterpreter::CommandInterpreter(Debugger &debugger,
128128
bool synchronous_execution)
129129
: Broadcaster(debugger.GetBroadcasterManager(),
130-
CommandInterpreter::GetStaticBroadcasterClass().AsCString()),
130+
CommandInterpreter::GetStaticBroadcasterClass().str()),
131131
Properties(
132132
OptionValuePropertiesSP(new OptionValueProperties("interpreter"))),
133133
IOHandlerDelegate(IOHandlerDelegate::Completion::LLDBCommand),

lldb/source/Target/Process.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -408,8 +408,8 @@ ProcessSP Process::FindPlugin(lldb::TargetSP target_sp,
408408
return process_sp;
409409
}
410410

411-
ConstString &Process::GetStaticBroadcasterClass() {
412-
static ConstString class_name("lldb.process");
411+
llvm::StringRef Process::GetStaticBroadcasterClass() {
412+
static constexpr llvm::StringLiteral class_name("lldb.process");
413413
return class_name;
414414
}
415415

@@ -423,7 +423,7 @@ Process::Process(lldb::TargetSP target_sp, ListenerSP listener_sp,
423423
const UnixSignalsSP &unix_signals_sp)
424424
: ProcessProperties(this),
425425
Broadcaster((target_sp->GetDebugger().GetBroadcasterManager()),
426-
Process::GetStaticBroadcasterClass().AsCString()),
426+
Process::GetStaticBroadcasterClass().str()),
427427
m_target_wp(target_sp), m_public_state(eStateUnloaded),
428428
m_private_state(eStateUnloaded),
429429
m_private_state_broadcaster(nullptr,

lldb/source/Target/Target.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,16 @@ const Target::Arch &Target::Arch::operator=(const ArchSpec &spec) {
8787
return *this;
8888
}
8989

90-
ConstString &Target::GetStaticBroadcasterClass() {
91-
static ConstString class_name("lldb.target");
90+
llvm::StringRef Target::GetStaticBroadcasterClass() {
91+
static constexpr llvm::StringLiteral class_name("lldb.target");
9292
return class_name;
9393
}
9494

9595
Target::Target(Debugger &debugger, const ArchSpec &target_arch,
9696
const lldb::PlatformSP &platform_sp, bool is_dummy_target)
9797
: TargetProperties(this),
9898
Broadcaster(debugger.GetBroadcasterManager(),
99-
Target::GetStaticBroadcasterClass().AsCString()),
99+
Target::GetStaticBroadcasterClass().str()),
100100
ExecutionContextScope(), m_debugger(debugger), m_platform_sp(platform_sp),
101101
m_mutex(), m_arch(target_arch), m_images(this), m_section_load_history(),
102102
m_breakpoint_list(false), m_internal_breakpoint_list(true),

lldb/source/Target/TargetList.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@
2929
using namespace lldb;
3030
using namespace lldb_private;
3131

32-
ConstString &TargetList::GetStaticBroadcasterClass() {
33-
static ConstString class_name("lldb.targetList");
32+
llvm::StringRef TargetList::GetStaticBroadcasterClass() {
33+
static constexpr llvm::StringLiteral class_name("lldb.targetList");
3434
return class_name;
3535
}
3636

3737
// TargetList constructor
3838
TargetList::TargetList(Debugger &debugger)
3939
: Broadcaster(debugger.GetBroadcasterManager(),
40-
TargetList::GetStaticBroadcasterClass().AsCString()),
40+
TargetList::GetStaticBroadcasterClass().str()),
4141
m_target_list(), m_target_list_mutex(), m_selected_target_idx(0) {
4242
CheckInWithManager();
4343
}

lldb/source/Target/Thread.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,15 +205,15 @@ Thread::ThreadEventData::GetStackFrameFromEvent(const Event *event_ptr) {
205205

206206
// Thread class
207207

208-
ConstString &Thread::GetStaticBroadcasterClass() {
209-
static ConstString class_name("lldb.thread");
208+
llvm::StringRef Thread::GetStaticBroadcasterClass() {
209+
static constexpr llvm::StringLiteral class_name("lldb.thread");
210210
return class_name;
211211
}
212212

213213
Thread::Thread(Process &process, lldb::tid_t tid, bool use_invalid_index_id)
214214
: ThreadProperties(false), UserID(tid),
215215
Broadcaster(process.GetTarget().GetDebugger().GetBroadcasterManager(),
216-
Thread::GetStaticBroadcasterClass().AsCString()),
216+
Thread::GetStaticBroadcasterClass().str()),
217217
m_process_wp(process.shared_from_this()), m_stop_info_sp(),
218218
m_stop_info_stop_id(0), m_stop_info_override_stop_id(0),
219219
m_should_run_before_public_stop(false),

lldb/source/Utility/Broadcaster.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,8 +373,8 @@ void Broadcaster::BroadcasterImpl::RestoreBroadcaster() {
373373
m_hijacking_masks.pop_back();
374374
}
375375

376-
ConstString &Broadcaster::GetBroadcasterClass() const {
377-
static ConstString class_name("lldb.anonymous");
376+
llvm::StringRef Broadcaster::GetBroadcasterClass() const {
377+
static constexpr llvm::StringLiteral class_name("lldb.anonymous");
378378
return class_name;
379379
}
380380

0 commit comments

Comments
 (0)