[Lldb-commits] [PATCH] D84528: [lldb][NFC] Use a StringRef for AddRegexCommand::AddRegexCommand parameters
Raphael Isemann via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Jul 24 06:44:54 PDT 2020
teemperor created this revision.
teemperor added a reviewer: LLDB.
Herald added a subscriber: JDevlieghere.
This way we can get rid of this 1024 char buffer workaround.
Repository:
rLLDB LLDB
https://reviews.llvm.org/D84528
Files:
lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h
lldb/source/Commands/CommandObjectCommands.cpp
lldb/source/Interpreter/CommandInterpreter.cpp
lldb/source/Interpreter/CommandObjectRegexCommand.cpp
Index: lldb/source/Interpreter/CommandObjectRegexCommand.cpp
===================================================================
--- lldb/source/Interpreter/CommandObjectRegexCommand.cpp
+++ lldb/source/Interpreter/CommandObjectRegexCommand.cpp
@@ -69,14 +69,13 @@
return false;
}
-bool CommandObjectRegexCommand::AddRegexCommand(const char *re_cstr,
- const char *command_cstr) {
+bool CommandObjectRegexCommand::AddRegexCommand(llvm::StringRef re_cstr,
+ llvm::StringRef command_cstr) {
m_entries.resize(m_entries.size() + 1);
// Only add the regular expression if it compiles
- m_entries.back().regex =
- RegularExpression(llvm::StringRef::withNullAsEmpty(re_cstr));
+ m_entries.back().regex = RegularExpression(re_cstr);
if (m_entries.back().regex.IsValid()) {
- m_entries.back().command.assign(command_cstr);
+ m_entries.back().command = command_cstr.str();
return true;
}
// The regex didn't compile...
Index: lldb/source/Interpreter/CommandInterpreter.cpp
===================================================================
--- lldb/source/Interpreter/CommandInterpreter.cpp
+++ lldb/source/Interpreter/CommandInterpreter.cpp
@@ -631,15 +631,10 @@
if (tbreak_regex_cmd_up) {
bool success = true;
for (size_t i = 0; i < num_regexes; i++) {
- // If you add a resultant command string longer than 1024 characters be
- // sure to increase the size of this buffer.
- char buffer[1024];
- int num_printed =
- snprintf(buffer, 1024, "%s %s", break_regexes[i][1], "-o 1");
- lldbassert(num_printed < 1024);
- UNUSED_IF_ASSERT_DISABLED(num_printed);
+ std::string command = break_regexes[i][1];
+ command += " -o 1";
success =
- tbreak_regex_cmd_up->AddRegexCommand(break_regexes[i][0], buffer);
+ tbreak_regex_cmd_up->AddRegexCommand(break_regexes[i][0], command);
if (!success)
break;
}
Index: lldb/source/Commands/CommandObjectCommands.cpp
===================================================================
--- lldb/source/Commands/CommandObjectCommands.cpp
+++ lldb/source/Commands/CommandObjectCommands.cpp
@@ -970,7 +970,7 @@
std::string subst(std::string(regex_sed.substr(
second_separator_char_pos + 1,
third_separator_char_pos - second_separator_char_pos - 1)));
- m_regex_cmd_up->AddRegexCommand(regex.c_str(), subst.c_str());
+ m_regex_cmd_up->AddRegexCommand(regex, subst);
}
return error;
}
Index: lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h
===================================================================
--- lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h
+++ lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h
@@ -30,7 +30,7 @@
bool IsRemovable() const override { return m_is_removable; }
- bool AddRegexCommand(const char *re_cstr, const char *command_cstr);
+ bool AddRegexCommand(llvm::StringRef re_cstr, llvm::StringRef command_cstr);
bool HasRegexEntries() const { return !m_entries.empty(); }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D84528.280419.patch
Type: text/x-patch
Size: 3158 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20200724/b6791294/attachment.bin>
More information about the lldb-commits
mailing list