[Lldb-commits] [lldb] [lldb] Devirtualize GetValueProperties (NFC) (PR #126583)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Mon Feb 10 11:27:13 PST 2025
https://github.com/JDevlieghere created https://github.com/llvm/llvm-project/pull/126583
Nobody is overriding GetValueProperties, so in practice we're always using `m_collection_sp`, which means we don't need to check the pointer. The temlated helpers were already operating on `m_collection_sp` directly so this makes the rest of the class consistent.
>From 56965c286f108b717b804ea549f4cc43b96d3214 Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <jonas at devlieghere.com>
Date: Mon, 10 Feb 2025 11:25:41 -0800
Subject: [PATCH] [lldb] Devirtualize GetValueProperties (NFC)
Nobody is overriding GetValueProperties, so in practice we're always
using `m_collection_sp`, which means we don't need to check the pointer.
The temlated helpers were already operating on `m_collection_sp`
directly so this makes the rest of the class consistent.
---
.../lldb/Core/UserSettingsController.h | 4 +--
lldb/source/Core/UserSettingsController.cpp | 33 ++++---------------
2 files changed, 8 insertions(+), 29 deletions(-)
diff --git a/lldb/include/lldb/Core/UserSettingsController.h b/lldb/include/lldb/Core/UserSettingsController.h
index 32da7e05f7040f7..29e892fdba45bf3 100644
--- a/lldb/include/lldb/Core/UserSettingsController.h
+++ b/lldb/include/lldb/Core/UserSettingsController.h
@@ -38,9 +38,7 @@ class Properties {
virtual ~Properties();
- virtual lldb::OptionValuePropertiesSP GetValueProperties() const {
- // This function is virtual in case subclasses want to lazily implement
- // creating the properties.
+ lldb::OptionValuePropertiesSP GetValueProperties() const {
return m_collection_sp;
}
diff --git a/lldb/source/Core/UserSettingsController.cpp b/lldb/source/Core/UserSettingsController.cpp
index b57c1b0eef9b472..5408d64b406471f 100644
--- a/lldb/source/Core/UserSettingsController.cpp
+++ b/lldb/source/Core/UserSettingsController.cpp
@@ -40,64 +40,45 @@ Properties::~Properties() = default;
lldb::OptionValueSP
Properties::GetPropertyValue(const ExecutionContext *exe_ctx,
llvm::StringRef path, Status &error) const {
- OptionValuePropertiesSP properties_sp(GetValueProperties());
- if (properties_sp)
- return properties_sp->GetSubValue(exe_ctx, path, error);
- return lldb::OptionValueSP();
+ return m_collection_sp->GetSubValue(exe_ctx, path, error);
}
Status Properties::SetPropertyValue(const ExecutionContext *exe_ctx,
VarSetOperationType op,
llvm::StringRef path,
llvm::StringRef value) {
- OptionValuePropertiesSP properties_sp(GetValueProperties());
- if (properties_sp)
- return properties_sp->SetSubValue(exe_ctx, op, path, value);
- return Status::FromErrorString("no properties");
+ return m_collection_sp->SetSubValue(exe_ctx, op, path, value);
}
void Properties::DumpAllPropertyValues(const ExecutionContext *exe_ctx,
Stream &strm, uint32_t dump_mask,
bool is_json) {
- OptionValuePropertiesSP properties_sp(GetValueProperties());
- if (!properties_sp)
- return;
-
if (is_json) {
- llvm::json::Value json = properties_sp->ToJSON(exe_ctx);
+ llvm::json::Value json = m_collection_sp->ToJSON(exe_ctx);
strm.Printf("%s", llvm::formatv("{0:2}", json).str().c_str());
} else
- properties_sp->DumpValue(exe_ctx, strm, dump_mask);
+ m_collection_sp->DumpValue(exe_ctx, strm, dump_mask);
}
void Properties::DumpAllDescriptions(CommandInterpreter &interpreter,
Stream &strm) const {
strm.PutCString("Top level variables:\n\n");
- OptionValuePropertiesSP properties_sp(GetValueProperties());
- if (properties_sp)
- return properties_sp->DumpAllDescriptions(interpreter, strm);
+ return m_collection_sp->DumpAllDescriptions(interpreter, strm);
}
Status Properties::DumpPropertyValue(const ExecutionContext *exe_ctx,
Stream &strm,
llvm::StringRef property_path,
uint32_t dump_mask, bool is_json) {
- OptionValuePropertiesSP properties_sp(GetValueProperties());
- if (properties_sp) {
- return properties_sp->DumpPropertyValue(exe_ctx, strm, property_path,
+ return m_collection_sp->DumpPropertyValue(exe_ctx, strm, property_path,
dump_mask, is_json);
- }
- return Status::FromErrorString("empty property list");
}
size_t
Properties::Apropos(llvm::StringRef keyword,
std::vector<const Property *> &matching_properties) const {
- OptionValuePropertiesSP properties_sp(GetValueProperties());
- if (properties_sp) {
- properties_sp->Apropos(keyword, matching_properties);
- }
+ m_collection_sp->Apropos(keyword, matching_properties);
return matching_properties.size();
}
More information about the lldb-commits
mailing list