[Lldb-commits] [lldb] ed5b4db - [LLDB][GUI] Add Arch Field
Greg Clayton via lldb-commits
lldb-commits at lists.llvm.org
Mon Jul 26 14:22:33 PDT 2021
Author: Omar Emara
Date: 2021-07-26T14:22:25-07:00
New Revision: ed5b4dbd3952ffa8970ae59faa7f7505cd28aa92
URL: https://github.com/llvm/llvm-project/commit/ed5b4dbd3952ffa8970ae59faa7f7505cd28aa92
DIFF: https://github.com/llvm/llvm-project/commit/ed5b4dbd3952ffa8970ae59faa7f7505cd28aa92.diff
LOG: [LLDB][GUI] Add Arch Field
This patch adds an Arch field that inputs and validates an arch spec.
Differential Revision: https://reviews.llvm.org/D106564
Added:
Modified:
lldb/source/Core/IOHandlerCursesGUI.cpp
Removed:
################################################################################
diff --git a/lldb/source/Core/IOHandlerCursesGUI.cpp b/lldb/source/Core/IOHandlerCursesGUI.cpp
index e664ac1ba4bd..4bed788d4863 100644
--- a/lldb/source/Core/IOHandlerCursesGUI.cpp
+++ b/lldb/source/Core/IOHandlerCursesGUI.cpp
@@ -1374,6 +1374,25 @@ class DirectoryFieldDelegate : public TextFieldDelegate {
bool m_need_to_exist;
};
+class ArchFieldDelegate : public TextFieldDelegate {
+public:
+ ArchFieldDelegate(const char *label, const char *content, bool required)
+ : TextFieldDelegate(label, content, required) {}
+
+ void FieldDelegateExitCallback() override {
+ TextFieldDelegate::FieldDelegateExitCallback();
+ if (!IsSpecified())
+ return;
+
+ if (!GetArchSpec().IsValid())
+ SetError("Not a valid arch!");
+ }
+
+ const std::string &GetArchString() { return m_content; }
+
+ ArchSpec GetArchSpec() { return ArchSpec(GetArchString()); }
+};
+
class BooleanFieldDelegate : public FieldDelegate {
public:
BooleanFieldDelegate(const char *label, bool content)
@@ -1989,6 +2008,14 @@ class FormDelegate {
return delegate;
}
+ ArchFieldDelegate *AddArchField(const char *label, const char *content,
+ bool required) {
+ ArchFieldDelegate *delegate =
+ new ArchFieldDelegate(label, content, required);
+ m_fields.push_back(FieldDelegateUP(delegate));
+ return delegate;
+ }
+
IntegerFieldDelegate *AddIntegerField(const char *label, int content,
bool required) {
IntegerFieldDelegate *delegate =
More information about the lldb-commits
mailing list