summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2018-08-02 17:33:54 +0000
committerDimitry Andric <dim@FreeBSD.org>2018-08-02 17:33:54 +0000
commit39be7ce23363d12ae3e49aeb1fdb2bfeb892e836 (patch)
tree37fd694b2fe544b0ccefb369794632592d138dde /source
parentf73363f1dd94996356cefbf24388f561891acf0b (diff)
downloadsrc-test2-39be7ce23363d12ae3e49aeb1fdb2bfeb892e836.tar.gz
src-test2-39be7ce23363d12ae3e49aeb1fdb2bfeb892e836.zip
Notes
Diffstat (limited to 'source')
-rw-r--r--source/Commands/CommandCompletions.cpp60
-rw-r--r--source/Commands/CommandObjectCommands.cpp4
-rw-r--r--source/Commands/CommandObjectFrame.cpp2
-rw-r--r--source/Commands/CommandObjectMultiword.cpp26
-rw-r--r--source/Commands/CommandObjectPlatform.cpp6
-rw-r--r--source/Commands/CommandObjectPlugin.cpp2
-rw-r--r--source/Commands/CommandObjectProcess.cpp6
-rw-r--r--source/Commands/CommandObjectSettings.cpp18
-rw-r--r--source/Commands/CommandObjectTarget.cpp10
-rw-r--r--source/Core/FormatEntity.cpp23
-rw-r--r--source/Core/IOHandler.cpp4
-rw-r--r--source/Interpreter/CommandInterpreter.cpp26
-rw-r--r--source/Interpreter/CommandObject.cpp3
-rw-r--r--source/Interpreter/CommandObjectRegexCommand.cpp3
-rw-r--r--source/Interpreter/OptionValue.cpp3
-rw-r--r--source/Interpreter/OptionValueArch.cpp3
-rw-r--r--source/Interpreter/OptionValueBoolean.cpp5
-rw-r--r--source/Interpreter/OptionValueEnumeration.cpp8
-rw-r--r--source/Interpreter/OptionValueFileSpec.cpp3
-rw-r--r--source/Interpreter/OptionValueUUID.cpp5
-rw-r--r--source/Interpreter/Options.cpp22
-rw-r--r--source/Plugins/Platform/Android/PlatformAndroid.cpp10
-rw-r--r--source/Plugins/Platform/Windows/PlatformWindows.cpp2
-rw-r--r--source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h2
-rw-r--r--source/Plugins/SymbolFile/DWARF/DWARFUnit.h2
-rw-r--r--source/Symbol/Variable.cpp13
-rw-r--r--source/Utility/ArchSpec.cpp8
-rw-r--r--source/Utility/CompletionRequest.cpp1
-rw-r--r--source/Utility/Stream.cpp45
29 files changed, 140 insertions, 185 deletions
diff --git a/source/Commands/CommandCompletions.cpp b/source/Commands/CommandCompletions.cpp
index bdfdbb83219b..7b351c50dc69 100644
--- a/source/Commands/CommandCompletions.cpp
+++ b/source/Commands/CommandCompletions.cpp
@@ -90,7 +90,7 @@ int CommandCompletions::SourceFiles(CommandInterpreter &interpreter,
} else {
completer.DoCompletion(searcher);
}
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
static int DiskFilesOrDirectories(const llvm::Twine &partial_name,
@@ -103,7 +103,7 @@ static int DiskFilesOrDirectories(const llvm::Twine &partial_name,
partial_name.toVector(CompletionBuffer);
if (CompletionBuffer.size() >= PATH_MAX)
- return 0;
+ return matches.GetSize();
namespace fs = llvm::sys::fs;
namespace path = llvm::sys::path;
@@ -145,7 +145,7 @@ static int DiskFilesOrDirectories(const llvm::Twine &partial_name,
// Make sure it ends with a separator.
path::append(CompletionBuffer, path::get_separator());
matches.AppendString(CompletionBuffer);
- return 1;
+ return matches.GetSize();
}
// We want to keep the form the user typed, so we special case this to
@@ -224,13 +224,21 @@ static int DiskFilesOrDirectories(const llvm::Twine &partial_name,
return matches.GetSize();
}
+static int DiskFilesOrDirectories(CompletionRequest &request,
+ bool only_directories) {
+ request.SetWordComplete(false);
+ StandardTildeExpressionResolver resolver;
+ StringList matches;
+ DiskFilesOrDirectories(request.GetCursorArgumentPrefix(), only_directories,
+ matches, resolver);
+ request.AddCompletions(matches);
+ return request.GetNumberOfMatches();
+}
+
int CommandCompletions::DiskFiles(CommandInterpreter &interpreter,
CompletionRequest &request,
SearchFilter *searcher) {
- request.SetWordComplete(false);
- StandardTildeExpressionResolver Resolver;
- return DiskFiles(request.GetCursorArgumentPrefix(), request.GetMatches(),
- Resolver);
+ return DiskFilesOrDirectories(request, /*only_dirs*/ false);
}
int CommandCompletions::DiskFiles(const llvm::Twine &partial_file_name,
@@ -242,10 +250,7 @@ int CommandCompletions::DiskFiles(const llvm::Twine &partial_file_name,
int CommandCompletions::DiskDirectories(CommandInterpreter &interpreter,
CompletionRequest &request,
SearchFilter *searcher) {
- request.SetWordComplete(false);
- StandardTildeExpressionResolver Resolver;
- return DiskDirectories(request.GetCursorArgumentPrefix(),
- request.GetMatches(), Resolver);
+ return DiskFilesOrDirectories(request, /*only_dirs*/ true);
}
int CommandCompletions::DiskDirectories(const llvm::Twine &partial_file_name,
@@ -267,7 +272,7 @@ int CommandCompletions::Modules(CommandInterpreter &interpreter,
} else {
completer.DoCompletion(searcher);
}
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
int CommandCompletions::Symbols(CommandInterpreter &interpreter,
@@ -283,7 +288,7 @@ int CommandCompletions::Symbols(CommandInterpreter &interpreter,
} else {
completer.DoCompletion(searcher);
}
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
int CommandCompletions::SettingsNames(CommandInterpreter &interpreter,
@@ -304,20 +309,23 @@ int CommandCompletions::SettingsNames(CommandInterpreter &interpreter,
}
size_t exact_matches_idx = SIZE_MAX;
- const size_t num_matches =
- g_property_names.AutoComplete(request.GetCursorArgumentPrefix(),
- request.GetMatches(), exact_matches_idx);
+ StringList matches;
+ g_property_names.AutoComplete(request.GetCursorArgumentPrefix(), matches,
+ exact_matches_idx);
request.SetWordComplete(exact_matches_idx != SIZE_MAX);
- return num_matches;
+ request.AddCompletions(matches);
+ return request.GetNumberOfMatches();
}
int CommandCompletions::PlatformPluginNames(CommandInterpreter &interpreter,
CompletionRequest &request,
SearchFilter *searcher) {
- const uint32_t num_matches = PluginManager::AutoCompletePlatformName(
- request.GetCursorArgumentPrefix(), request.GetMatches());
+ StringList new_matches;
+ std::size_t num_matches = PluginManager::AutoCompletePlatformName(
+ request.GetCursorArgumentPrefix(), new_matches);
request.SetWordComplete(num_matches == 1);
- return num_matches;
+ request.AddCompletions(new_matches);
+ return request.GetNumberOfMatches();
}
int CommandCompletions::ArchitectureNames(CommandInterpreter &interpreter,
@@ -409,10 +417,10 @@ CommandCompletions::SourceFileCompleter::DoCompletion(SearchFilter *filter) {
filter->Search(*this);
// Now convert the filelist to completions:
for (size_t i = 0; i < m_matching_files.GetSize(); i++) {
- m_request.GetMatches().AppendString(
+ m_request.AddCompletion(
m_matching_files.GetFileSpecAtIndex(i).GetFilename().GetCString());
}
- return m_request.GetMatches().GetSize();
+ return m_request.GetNumberOfMatches();
}
//----------------------------------------------------------------------
@@ -478,9 +486,9 @@ size_t CommandCompletions::SymbolCompleter::DoCompletion(SearchFilter *filter) {
filter->Search(*this);
collection::iterator pos = m_match_set.begin(), end = m_match_set.end();
for (pos = m_match_set.begin(); pos != end; pos++)
- m_request.GetMatches().AppendString((*pos).GetCString());
+ m_request.AddCompletion((*pos).GetCString());
- return m_request.GetMatches().GetSize();
+ return m_request.GetNumberOfMatches();
}
//----------------------------------------------------------------------
@@ -517,7 +525,7 @@ Searcher::CallbackReturn CommandCompletions::ModuleCompleter::SearchCallback(
match = false;
if (match) {
- m_request.GetMatches().AppendString(cur_file_name);
+ m_request.AddCompletion(cur_file_name);
}
}
return Searcher::eCallbackReturnContinue;
@@ -525,5 +533,5 @@ Searcher::CallbackReturn CommandCompletions::ModuleCompleter::SearchCallback(
size_t CommandCompletions::ModuleCompleter::DoCompletion(SearchFilter *filter) {
filter->Search(*this);
- return m_request.GetMatches().GetSize();
+ return m_request.GetNumberOfMatches();
}
diff --git a/source/Commands/CommandObjectCommands.cpp b/source/Commands/CommandObjectCommands.cpp
index 3012ee4a188d..333f72056cbc 100644
--- a/source/Commands/CommandObjectCommands.cpp
+++ b/source/Commands/CommandObjectCommands.cpp
@@ -241,7 +241,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eDiskFileCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
Options *GetOptions() override { return &m_options; }
@@ -1429,7 +1429,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eDiskFileCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
Options *GetOptions() override { return &m_options; }
diff --git a/source/Commands/CommandObjectFrame.cpp b/source/Commands/CommandObjectFrame.cpp
index 0183c43f85b5..64de14f2edbf 100644
--- a/source/Commands/CommandObjectFrame.cpp
+++ b/source/Commands/CommandObjectFrame.cpp
@@ -470,7 +470,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eVariablePathCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
diff --git a/source/Commands/CommandObjectMultiword.cpp b/source/Commands/CommandObjectMultiword.cpp
index ade1a2d01f38..19fcf60e557c 100644
--- a/source/Commands/CommandObjectMultiword.cpp
+++ b/source/Commands/CommandObjectMultiword.cpp
@@ -143,7 +143,7 @@ bool CommandObjectMultiword::Execute(const char *args_string,
if (num_subcmd_matches > 0) {
error_msg.append(" Possible completions:");
- for (size_t i = 0; i < num_subcmd_matches; i++) {
+ for (size_t i = 0; i < matches.GetSize(); i++) {
error_msg.append("\n\t");
error_msg.append(matches.GetStringAtIndex(i));
}
@@ -190,21 +190,22 @@ int CommandObjectMultiword::HandleCompletion(CompletionRequest &request) {
// Any of the command matches will provide a complete word, otherwise the
// individual completers will override this.
request.SetWordComplete(true);
- auto &matches = request.GetMatches();
auto arg0 = request.GetParsedLine()[0].ref;
if (request.GetCursorIndex() == 0) {
- AddNamesMatchingPartialString(m_subcommand_dict, arg0, matches);
+ StringList new_matches;
+ AddNamesMatchingPartialString(m_subcommand_dict, arg0, new_matches);
+ request.AddCompletions(new_matches);
- if (matches.GetSize() == 1 && matches.GetStringAtIndex(0) != nullptr &&
- (arg0 == matches.GetStringAtIndex(0))) {
+ if (new_matches.GetSize() == 1 &&
+ new_matches.GetStringAtIndex(0) != nullptr &&
+ (arg0 == new_matches.GetStringAtIndex(0))) {
StringList temp_matches;
CommandObject *cmd_obj = GetSubcommandObject(arg0, &temp_matches);
if (cmd_obj != nullptr) {
if (request.GetParsedLine().GetArgumentCount() == 1) {
request.SetWordComplete(true);
} else {
- matches.DeleteStringAtIndex(0);
request.GetParsedLine().Shift();
request.SetCursorCharPosition(0);
request.GetParsedLine().AppendArgument(llvm::StringRef());
@@ -212,14 +213,17 @@ int CommandObjectMultiword::HandleCompletion(CompletionRequest &request) {
}
}
}
- return matches.GetSize();
+ return new_matches.GetSize();
} else {
- CommandObject *sub_command_object = GetSubcommandObject(arg0, &matches);
+ StringList new_matches;
+ CommandObject *sub_command_object = GetSubcommandObject(arg0, &new_matches);
if (sub_command_object == nullptr) {
- return matches.GetSize();
+ request.AddCompletions(new_matches);
+ return request.GetNumberOfMatches();
} else {
// Remove the one match that we got from calling GetSubcommandObject.
- matches.DeleteStringAtIndex(0);
+ new_matches.DeleteStringAtIndex(0);
+ request.AddCompletions(new_matches);
request.GetParsedLine().Shift();
request.SetCursorIndex(request.GetCursorIndex() - 1);
return sub_command_object->HandleCompletion(request);
@@ -366,7 +370,6 @@ int CommandObjectProxy::HandleCompletion(CompletionRequest &request) {
CommandObject *proxy_command = GetProxyCommandObject();
if (proxy_command)
return proxy_command->HandleCompletion(request);
- request.GetMatches().Clear();
return 0;
}
@@ -375,7 +378,6 @@ int CommandObjectProxy::HandleArgumentCompletion(
CommandObject *proxy_command = GetProxyCommandObject();
if (proxy_command)
return proxy_command->HandleArgumentCompletion(request, opt_element_vector);
- request.GetMatches().Clear();
return 0;
}
diff --git a/source/Commands/CommandObjectPlatform.cpp b/source/Commands/CommandObjectPlatform.cpp
index f822a8b54cb0..22a9a169c7c8 100644
--- a/source/Commands/CommandObjectPlatform.cpp
+++ b/source/Commands/CommandObjectPlatform.cpp
@@ -181,7 +181,7 @@ public:
int HandleCompletion(CompletionRequest &request) override {
CommandCompletions::PlatformPluginNames(GetCommandInterpreter(), request,
nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
Options *GetOptions() override { return &m_option_group; }
@@ -1583,9 +1583,9 @@ public:
const uint32_t num_matches = process_infos.GetSize();
if (num_matches > 0) {
for (uint32_t i = 0; i < num_matches; ++i) {
- request.GetMatches().AppendString(
+ request.AddCompletion(llvm::StringRef(
process_infos.GetProcessNameAtIndex(i),
- process_infos.GetProcessNameLengthAtIndex(i));
+ process_infos.GetProcessNameLengthAtIndex(i)));
}
}
}
diff --git a/source/Commands/CommandObjectPlugin.cpp b/source/Commands/CommandObjectPlugin.cpp
index 1f379a2660ed..13ef6b227c5b 100644
--- a/source/Commands/CommandObjectPlugin.cpp
+++ b/source/Commands/CommandObjectPlugin.cpp
@@ -48,7 +48,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eDiskFileCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
diff --git a/source/Commands/CommandObjectProcess.cpp b/source/Commands/CommandObjectProcess.cpp
index 3ac27918df4c..eb5a19aa4d39 100644
--- a/source/Commands/CommandObjectProcess.cpp
+++ b/source/Commands/CommandObjectProcess.cpp
@@ -141,7 +141,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eDiskFileCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
Options *GetOptions() override { return &m_options; }
@@ -410,9 +410,9 @@ public:
const size_t num_matches = process_infos.GetSize();
if (num_matches > 0) {
for (size_t i = 0; i < num_matches; ++i) {
- request.GetMatches().AppendString(
+ request.AddCompletion(llvm::StringRef(
process_infos.GetProcessNameAtIndex(i),
- process_infos.GetProcessNameLengthAtIndex(i));
+ process_infos.GetProcessNameLengthAtIndex(i)));
}
}
}
diff --git a/source/Commands/CommandObjectSettings.cpp b/source/Commands/CommandObjectSettings.cpp
index f259f2fe200d..3db1e35cd702 100644
--- a/source/Commands/CommandObjectSettings.cpp
+++ b/source/Commands/CommandObjectSettings.cpp
@@ -172,7 +172,7 @@ insert-before or insert-after.");
}
}
}
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -272,7 +272,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eSettingsNameCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -338,7 +338,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eSettingsNameCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -427,7 +427,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eSettingsNameCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -544,7 +544,7 @@ public:
GetCommandInterpreter(), CommandCompletions::eSettingsNameCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -644,7 +644,7 @@ public:
GetCommandInterpreter(), CommandCompletions::eSettingsNameCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -749,7 +749,7 @@ public:
GetCommandInterpreter(), CommandCompletions::eSettingsNameCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -843,7 +843,7 @@ public:
GetCommandInterpreter(), CommandCompletions::eSettingsNameCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -924,7 +924,7 @@ public:
GetCommandInterpreter(), CommandCompletions::eSettingsNameCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
diff --git a/source/Commands/CommandObjectTarget.cpp b/source/Commands/CommandObjectTarget.cpp
index a9062c14b367..8be43cbf9bb0 100644
--- a/source/Commands/CommandObjectTarget.cpp
+++ b/source/Commands/CommandObjectTarget.cpp
@@ -201,7 +201,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eDiskFileCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -1810,7 +1810,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eModuleCompletion, request,
nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
};
@@ -1851,7 +1851,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eSourceFileCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
};
@@ -2393,7 +2393,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eDiskFileCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
protected:
@@ -3987,7 +3987,7 @@ public:
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), CommandCompletions::eDiskFileCompletion,
request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
Options *GetOptions() override { return &m_option_group; }
diff --git a/source/Core/FormatEntity.cpp b/source/Core/FormatEntity.cpp
index 2257b7e273e8..743c7c404994 100644
--- a/source/Core/FormatEntity.cpp
+++ b/source/Core/FormatEntity.cpp
@@ -2350,7 +2350,6 @@ size_t FormatEntity::AutoComplete(CompletionRequest &request) {
request.SetWordComplete(false);
str = str.drop_front(request.GetMatchStartPoint());
- request.GetMatches().Clear();
const size_t dollar_pos = str.rfind('$');
if (dollar_pos == llvm::StringRef::npos)
@@ -2360,7 +2359,7 @@ size_t FormatEntity::AutoComplete(CompletionRequest &request) {
if (dollar_pos == str.size() - 1) {
std::string match = str.str();
match.append("{");
- request.GetMatches().AppendString(match);
+ request.AddCompletion(match);
return 1;
}
@@ -2378,8 +2377,10 @@ size_t FormatEntity::AutoComplete(CompletionRequest &request) {
llvm::StringRef partial_variable(str.substr(dollar_pos + 2));
if (partial_variable.empty()) {
// Suggest all top level entites as we are just past "${"
- AddMatches(&g_root, str, llvm::StringRef(), request.GetMatches());
- return request.GetMatches().GetSize();
+ StringList new_matches;
+ AddMatches(&g_root, str, llvm::StringRef(), new_matches);
+ request.AddCompletions(new_matches);
+ return request.GetNumberOfMatches();
}
// We have a partially specified variable, find it
@@ -2395,19 +2396,23 @@ size_t FormatEntity::AutoComplete(CompletionRequest &request) {
// Exact match
if (n > 0) {
// "${thread.info" <TAB>
- request.GetMatches().AppendString(MakeMatch(str, "."));
+ request.AddCompletion(MakeMatch(str, "."));
} else {
// "${thread.id" <TAB>
- request.GetMatches().AppendString(MakeMatch(str, "}"));
+ request.AddCompletion(MakeMatch(str, "}"));
request.SetWordComplete(true);
}
} else if (remainder.equals(".")) {
// "${thread." <TAB>
- AddMatches(entry_def, str, llvm::StringRef(), request.GetMatches());
+ StringList new_matches;
+ AddMatches(entry_def, str, llvm::StringRef(), new_matches);
+ request.AddCompletions(new_matches);
} else {
// We have a partial match
// "${thre" <TAB>
- AddMatches(entry_def, str, remainder, request.GetMatches());
+ StringList new_matches;
+ AddMatches(entry_def, str, remainder, new_matches);
+ request.AddCompletions(new_matches);
}
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
diff --git a/source/Core/IOHandler.cpp b/source/Core/IOHandler.cpp
index 8474e4b8c564..e7ebeea1b88d 100644
--- a/source/Core/IOHandler.cpp
+++ b/source/Core/IOHandler.cpp
@@ -245,10 +245,10 @@ int IOHandlerDelegate::IOHandlerComplete(IOHandler &io_handler,
io_handler.GetDebugger().GetCommandInterpreter(),
CommandCompletions::eVariablePathCompletion, request, nullptr);
- size_t num_matches = request.GetMatches().GetSize();
+ size_t num_matches = request.GetNumberOfMatches();
if (num_matches > 0) {
std::string common_prefix;
- request.GetMatches().LongestCommonPrefix(common_prefix);
+ matches.LongestCommonPrefix(common_prefix);
const size_t partial_name_len = request.GetCursorArgumentPrefix().size();
// If we matched a unique single command, add a space... Only do this if
diff --git a/source/Interpreter/CommandInterpreter.cpp b/source/Interpreter/CommandInterpreter.cpp
index 4c8b65441366..64d2c3222fb6 100644
--- a/source/Interpreter/CommandInterpreter.cpp
+++ b/source/Interpreter/CommandInterpreter.cpp
@@ -478,7 +478,7 @@ void CommandInterpreter::LoadCommandDictionary() {
std::unique_ptr<CommandObjectRegexCommand> break_regex_cmd_ap(
new CommandObjectRegexCommand(
*this, "_regexp-break",
- "Set a breakpoint using one of several shorthand formats.\n",
+ "Set a breakpoint using one of several shorthand formats.",
"\n"
"_regexp-break <filename>:<linenum>\n"
" main.c:12 // Break at line 12 of "
@@ -527,7 +527,7 @@ void CommandInterpreter::LoadCommandDictionary() {
std::unique_ptr<CommandObjectRegexCommand> tbreak_regex_cmd_ap(
new CommandObjectRegexCommand(
*this, "_regexp-tbreak",
- "Set a one-shot breakpoint using one of several shorthand formats.\n",
+ "Set a one-shot breakpoint using one of several shorthand formats.",
"\n"
"_regexp-break <filename>:<linenum>\n"
" main.c:12 // Break at line 12 of "
@@ -1703,7 +1703,6 @@ bool CommandInterpreter::HandleCommand(const char *command_line,
}
int CommandInterpreter::HandleCompletionMatches(CompletionRequest &request) {
- auto &matches = request.GetMatches();
int num_command_matches = 0;
bool look_for_subcommand = false;
@@ -1713,30 +1712,34 @@ int CommandInterpreter::HandleCompletionMatches(CompletionRequest &request) {
if (request.GetCursorIndex() == -1) {
// We got nothing on the command line, so return the list of commands
bool include_aliases = true;
+ StringList new_matches;
num_command_matches =
- GetCommandNamesMatchingPartialString("", include_aliases, matches);
+ GetCommandNamesMatchingPartialString("", include_aliases, new_matches);
+ request.AddCompletions(new_matches);
} else if (request.GetCursorIndex() == 0) {
// The cursor is in the first argument, so just do a lookup in the
// dictionary.
+ StringList new_matches;
CommandObject *cmd_obj = GetCommandObject(
- request.GetParsedLine().GetArgumentAtIndex(0), &matches);
- num_command_matches = matches.GetSize();
+ request.GetParsedLine().GetArgumentAtIndex(0), &new_matches);
if (num_command_matches == 1 && cmd_obj && cmd_obj->IsMultiwordObject() &&
- matches.GetStringAtIndex(0) != nullptr &&
+ new_matches.GetStringAtIndex(0) != nullptr &&
strcmp(request.GetParsedLine().GetArgumentAtIndex(0),
- matches.GetStringAtIndex(0)) == 0) {
+ new_matches.GetStringAtIndex(0)) == 0) {
if (request.GetParsedLine().GetArgumentCount() == 1) {
request.SetWordComplete(true);
} else {
look_for_subcommand = true;
num_command_matches = 0;
- matches.DeleteStringAtIndex(0);
+ new_matches.DeleteStringAtIndex(0);
request.GetParsedLine().AppendArgument(llvm::StringRef());
request.SetCursorIndex(request.GetCursorIndex() + 1);
request.SetCursorCharPosition(0);
}
}
+ request.AddCompletions(new_matches);
+ num_command_matches = request.GetNumberOfMatches();
}
if (request.GetCursorIndex() > 0 || look_for_subcommand) {
@@ -1773,8 +1776,7 @@ int CommandInterpreter::HandleCompletion(
return 0;
else if (first_arg[0] == CommandHistory::g_repeat_char) {
if (auto hist_str = m_command_history.FindString(first_arg)) {
- request.GetMatches().Clear();
- request.GetMatches().InsertStringAtIndex(0, *hist_str);
+ matches.InsertStringAtIndex(0, *hist_str);
return -2;
} else
return 0;
@@ -1812,7 +1814,7 @@ int CommandInterpreter::HandleCompletion(
common_prefix.push_back(quote_char);
common_prefix.push_back(' ');
}
- request.GetMatches().InsertStringAtIndex(0, common_prefix.c_str());
+ matches.InsertStringAtIndex(0, common_prefix.c_str());
}
return num_command_matches;
}
diff --git a/source/Interpreter/CommandObject.cpp b/source/Interpreter/CommandObject.cpp
index 07be9139f219..324b0b511220 100644
--- a/source/Interpreter/CommandObject.cpp
+++ b/source/Interpreter/CommandObject.cpp
@@ -267,7 +267,6 @@ int CommandObject::HandleCompletion(CompletionRequest &request) {
if (WantsRawCommandString() && !WantsCompletion()) {
// FIXME: Abstract telling the completion to insert the completion
// character.
- request.GetMatches().Clear();
return -1;
} else {
// Can we do anything generic with the options?
@@ -282,7 +281,7 @@ int CommandObject::HandleCompletion(CompletionRequest &request) {
bool handled_by_options = cur_options->HandleOptionCompletion(
request, opt_element_vector, GetCommandInterpreter());
if (handled_by_options)
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
// If we got here, the last word is not an option or an option argument.
diff --git a/source/Interpreter/CommandObjectRegexCommand.cpp b/source/Interpreter/CommandObjectRegexCommand.cpp
index f975c0eea2ee..ec89ad8fb162 100644
--- a/source/Interpreter/CommandObjectRegexCommand.cpp
+++ b/source/Interpreter/CommandObjectRegexCommand.cpp
@@ -97,9 +97,8 @@ int CommandObjectRegexCommand::HandleCompletion(CompletionRequest &request) {
if (m_completion_type_mask) {
CommandCompletions::InvokeCommonCompletionCallbacks(
GetCommandInterpreter(), m_completion_type_mask, request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
} else {
- request.GetMatches().Clear();
request.SetWordComplete(false);
}
return 0;
diff --git a/source/Interpreter/OptionValue.cpp b/source/Interpreter/OptionValue.cpp
index 2d7c69eaa432..c3f363b05988 100644
--- a/source/Interpreter/OptionValue.cpp
+++ b/source/Interpreter/OptionValue.cpp
@@ -575,8 +575,7 @@ bool OptionValue::DumpQualifiedName(Stream &strm) const {
size_t OptionValue::AutoComplete(CommandInterpreter &interpreter,
CompletionRequest &request) {
request.SetWordComplete(false);
- request.GetMatches().Clear();
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
Status OptionValue::SetValueFromString(llvm::StringRef value,
diff --git a/source/Interpreter/OptionValueArch.cpp b/source/Interpreter/OptionValueArch.cpp
index 3d08780ae6f6..d4f1fcb8a70a 100644
--- a/source/Interpreter/OptionValueArch.cpp
+++ b/source/Interpreter/OptionValueArch.cpp
@@ -76,9 +76,8 @@ lldb::OptionValueSP OptionValueArch::DeepCopy() const {
size_t OptionValueArch::AutoComplete(CommandInterpreter &interpreter,
CompletionRequest &request) {
request.SetWordComplete(false);
- request.GetMatches().Clear();
CommandCompletions::InvokeCommonCompletionCallbacks(
interpreter, CommandCompletions::eArchitectureCompletion, request,
nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
diff --git a/source/Interpreter/OptionValueBoolean.cpp b/source/Interpreter/OptionValueBoolean.cpp
index 8a340792d78f..94c774d69111 100644
--- a/source/Interpreter/OptionValueBoolean.cpp
+++ b/source/Interpreter/OptionValueBoolean.cpp
@@ -79,7 +79,6 @@ lldb::OptionValueSP OptionValueBoolean::DeepCopy() const {
size_t OptionValueBoolean::AutoComplete(CommandInterpreter &interpreter,
CompletionRequest &request) {
request.SetWordComplete(false);
- request.GetMatches().Clear();
static const llvm::StringRef g_autocomplete_entries[] = {
"true", "false", "on", "off", "yes", "no", "1", "0"};
@@ -91,7 +90,7 @@ size_t OptionValueBoolean::AutoComplete(CommandInterpreter &interpreter,
for (auto entry : entries) {
if (entry.startswith_lower(request.GetCursorArgumentPrefix()))
- request.GetMatches().AppendString(entry);
+ request.AddCompletion(entry);
}
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
diff --git a/source/Interpreter/OptionValueEnumeration.cpp b/source/Interpreter/OptionValueEnumeration.cpp
index e78618ee3c6b..c7cbcab7fcc8 100644
--- a/source/Interpreter/OptionValueEnumeration.cpp
+++ b/source/Interpreter/OptionValueEnumeration.cpp
@@ -112,20 +112,18 @@ lldb::OptionValueSP OptionValueEnumeration::DeepCopy() const {
size_t OptionValueEnumeration::AutoComplete(CommandInterpreter &interpreter,
CompletionRequest &request) {
request.SetWordComplete(false);
- request.GetMatches().Clear();
const uint32_t num_enumerators = m_enumerations.GetSize();
if (!request.GetCursorArgumentPrefix().empty()) {
for (size_t i = 0; i < num_enumerators; ++i) {
llvm::StringRef name = m_enumerations.GetCStringAtIndex(i).GetStringRef();
if (name.startswith(request.GetCursorArgumentPrefix()))
- request.GetMatches().AppendString(name);
+ request.AddCompletion(name);
}
} else {
// only suggest "true" or "false" by default
for (size_t i = 0; i < num_enumerators; ++i)
- request.GetMatches().AppendString(
- m_enumerations.GetCStringAtIndex(i).GetStringRef());
+ request.AddCompletion(m_enumerations.GetCStringAtIndex(i).GetStringRef());
}
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
diff --git a/source/Interpreter/OptionValueFileSpec.cpp b/source/Interpreter/OptionValueFileSpec.cpp
index 18bfcd693949..2b93628679ce 100644
--- a/source/Interpreter/OptionValueFileSpec.cpp
+++ b/source/Interpreter/OptionValueFileSpec.cpp
@@ -102,10 +102,9 @@ lldb::OptionValueSP OptionValueFileSpec::DeepCopy() const {
size_t OptionValueFileSpec::AutoComplete(CommandInterpreter &interpreter,
CompletionRequest &request) {
request.SetWordComplete(false);
- request.GetMatches().Clear();
CommandCompletions::InvokeCommonCompletionCallbacks(
interpreter, m_completion_mask, request, nullptr);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
const lldb::DataBufferSP &OptionValueFileSpec::GetFileContents() {
diff --git a/source/Interpreter/OptionValueUUID.cpp b/source/Interpreter/OptionValueUUID.cpp
index 7fa155277cec..355e07bb2b5f 100644
--- a/source/Interpreter/OptionValueUUID.cpp
+++ b/source/Interpreter/OptionValueUUID.cpp
@@ -70,7 +70,6 @@ lldb::OptionValueSP OptionValueUUID::DeepCopy() const {
size_t OptionValueUUID::AutoComplete(CommandInterpreter &interpreter,
CompletionRequest &request) {
request.SetWordComplete(false);
- request.GetMatches().Clear();
ExecutionContext exe_ctx(interpreter.GetExecutionContext());
Target *target = exe_ctx.GetTargetPtr();
if (target) {
@@ -86,12 +85,12 @@ size_t OptionValueUUID::AutoComplete(CommandInterpreter &interpreter,
llvm::ArrayRef<uint8_t> module_bytes = module_uuid.GetBytes();
if (module_bytes.size() >= uuid_bytes.size() &&
module_bytes.take_front(uuid_bytes.size()).equals(uuid_bytes)) {
- request.GetMatches().AppendString(module_uuid.GetAsString());
+ request.AddCompletion(module_uuid.GetAsString());
}
}
}
}
}
}
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
diff --git a/source/Interpreter/Options.cpp b/source/Interpreter/Options.cpp
index f4758978e2a6..c9567e91f6b8 100644
--- a/source/Interpreter/Options.cpp
+++ b/source/Interpreter/Options.cpp
@@ -680,7 +680,7 @@ bool Options::HandleOptionCompletion(CompletionRequest &request,
if (!def.short_option)
continue;
opt_str[1] = def.short_option;
- request.GetMatches().AppendString(opt_str);
+ request.AddCompletion(opt_str);
}
return true;
@@ -692,7 +692,7 @@ bool Options::HandleOptionCompletion(CompletionRequest &request,
full_name.erase(full_name.begin() + 2, full_name.end());
full_name.append(def.long_option);
- request.GetMatches().AppendString(full_name.c_str());
+ request.AddCompletion(full_name.c_str());
}
return true;
} else if (opt_defs_index != OptionArgElement::eUnrecognizedArg) {
@@ -705,10 +705,10 @@ bool Options::HandleOptionCompletion(CompletionRequest &request,
strcmp(opt_defs[opt_defs_index].long_option, cur_opt_str) != 0) {
std::string full_name("--");
full_name.append(opt_defs[opt_defs_index].long_option);
- request.GetMatches().AppendString(full_name.c_str());
+ request.AddCompletion(full_name.c_str());
return true;
} else {
- request.GetMatches().AppendString(request.GetCursorArgument());
+ request.AddCompletion(request.GetCursorArgument());
return true;
}
} else {
@@ -728,17 +728,7 @@ bool Options::HandleOptionCompletion(CompletionRequest &request,
if (strstr(def.long_option, cur_opt_str + 2) == def.long_option) {
std::string full_name("--");
full_name.append(def.long_option);
- // The options definitions table has duplicates because of the
- // way the grouping information is stored, so only add once.
- bool duplicate = false;
- for (size_t k = 0; k < request.GetMatches().GetSize(); k++) {
- if (request.GetMatches().GetStringAtIndex(k) == full_name) {
- duplicate = true;
- break;
- }
- }
- if (!duplicate)
- request.GetMatches().AppendString(full_name.c_str());
+ request.AddCompletion(full_name.c_str());
}
}
}
@@ -790,7 +780,7 @@ bool Options::HandleOptionArgumentCompletion(
for (int i = 0; enum_values[i].string_value != nullptr; i++) {
if (strstr(enum_values[i].string_value, match_string.c_str()) ==
enum_values[i].string_value) {
- request.GetMatches().AppendString(enum_values[i].string_value);
+ request.AddCompletion(enum_values[i].string_value);
return_value = true;
}
}
diff --git a/source/Plugins/Platform/Android/PlatformAndroid.cpp b/source/Plugins/Platform/Android/PlatformAndroid.cpp
index 1cedcde97a92..4477fe371d34 100644
--- a/source/Plugins/Platform/Android/PlatformAndroid.cpp
+++ b/source/Plugins/Platform/Android/PlatformAndroid.cpp
@@ -83,9 +83,9 @@ PlatformSP PlatformAndroid::CreateInstance(bool force, const ArchSpec *arch) {
break;
#if defined(__ANDROID__)
- // Only accept "unknown" for the vendor if the host is android and it
+ // Only accept "unknown" for the vendor if the host is android and if
// "unknown" wasn't specified (it was just returned because it was NOT
- // specified_
+ // specified).
case llvm::Triple::VendorType::UnknownVendor:
create = !arch->TripleVendorWasSpecified();
break;
@@ -95,7 +95,7 @@ PlatformSP PlatformAndroid::CreateInstance(bool force, const ArchSpec *arch) {
}
if (create) {
- switch (triple.getOS()) {
+ switch (triple.getEnvironment()) {
case llvm::Triple::Android:
break;
@@ -103,8 +103,8 @@ PlatformSP PlatformAndroid::CreateInstance(bool force, const ArchSpec *arch) {
// Only accept "unknown" for the OS if the host is android and it
// "unknown" wasn't specified (it was just returned because it was NOT
// specified)
- case llvm::Triple::OSType::UnknownOS:
- create = !arch->TripleOSWasSpecified();
+ case llvm::Triple::EnvironmentType::UnknownEnvironment:
+ create = !arch->TripleEnvironmentWasSpecified();
break;
#endif
default:
diff --git a/source/Plugins/Platform/Windows/PlatformWindows.cpp b/source/Plugins/Platform/Windows/PlatformWindows.cpp
index ed2bcf0cbee4..45e906f88e00 100644
--- a/source/Plugins/Platform/Windows/PlatformWindows.cpp
+++ b/source/Plugins/Platform/Windows/PlatformWindows.cpp
@@ -78,7 +78,7 @@ PlatformSP PlatformWindows::CreateInstance(bool force,
create = true;
break;
- case llvm::Triple::UnknownArch:
+ case llvm::Triple::UnknownVendor:
create = !arch->TripleVendorWasSpecified();
break;
diff --git a/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h b/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h
index 9c1fc82f58b7..d20f31505ed4 100644
--- a/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h
+++ b/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h
@@ -13,8 +13,6 @@
#include "DWARFUnit.h"
class DWARFCompileUnit : public DWARFUnit {
- friend class DWARFUnit;
-
public:
static DWARFUnitSP Extract(SymbolFileDWARF *dwarf2Data,
const lldb_private::DWARFDataExtractor &debug_info,
diff --git a/source/Plugins/SymbolFile/DWARF/DWARFUnit.h b/source/Plugins/SymbolFile/DWARF/DWARFUnit.h
index c9e48c538bc1..3cc24d4202b8 100644
--- a/source/Plugins/SymbolFile/DWARF/DWARFUnit.h
+++ b/source/Plugins/SymbolFile/DWARF/DWARFUnit.h
@@ -33,8 +33,6 @@ enum DWARFProducer {
};
class DWARFUnit {
- friend class DWARFCompileUnit;
-
using die_iterator_range =
llvm::iterator_range<DWARFDebugInfoEntry::collection::iterator>;
diff --git a/source/Symbol/Variable.cpp b/source/Symbol/Variable.cpp
index 7eafef1e8955..af84872a97a0 100644
--- a/source/Symbol/Variable.cpp
+++ b/source/Symbol/Variable.cpp
@@ -644,11 +644,12 @@ static void PrivateAutoComplete(
break;
case '-':
- if (partial_path[1] == '>' && !prefix_path.str().empty()) {
+ if (partial_path.size() > 1 && partial_path[1] == '>' &&
+ !prefix_path.str().empty()) {
switch (type_class) {
case lldb::eTypeClassPointer: {
CompilerType pointee_type(compiler_type.GetPointeeType());
- if (partial_path[2]) {
+ if (partial_path.size() > 2 && partial_path[2]) {
// If there is more after the "->", then search deeper
PrivateAutoComplete(
frame, partial_path.substr(2), prefix_path + "->",
@@ -672,7 +673,7 @@ static void PrivateAutoComplete(
case lldb::eTypeClassUnion:
case lldb::eTypeClassStruct:
case lldb::eTypeClassClass:
- if (partial_path[1]) {
+ if (partial_path.size() > 1 && partial_path[1]) {
// If there is more after the ".", then search deeper
PrivateAutoComplete(frame, partial_path.substr(1),
prefix_path + ".", compiler_type, matches,
@@ -760,9 +761,11 @@ size_t Variable::AutoComplete(const ExecutionContext &exe_ctx,
CompilerType compiler_type;
bool word_complete = false;
+ StringList matches;
PrivateAutoComplete(exe_ctx.GetFramePtr(), request.GetCursorArgumentPrefix(),
- "", compiler_type, request.GetMatches(), word_complete);
+ "", compiler_type, matches, word_complete);
request.SetWordComplete(word_complete);
+ request.AddCompletions(matches);
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
diff --git a/source/Utility/ArchSpec.cpp b/source/Utility/ArchSpec.cpp
index 320f2d9d1144..1c50c313e0d1 100644
--- a/source/Utility/ArchSpec.cpp
+++ b/source/Utility/ArchSpec.cpp
@@ -255,12 +255,14 @@ size_t ArchSpec::AutoComplete(CompletionRequest &request) {
for (uint32_t i = 0; i < llvm::array_lengthof(g_core_definitions); ++i) {
if (NameMatches(g_core_definitions[i].name, NameMatch::StartsWith,
request.GetCursorArgumentPrefix()))
- request.GetMatches().AppendString(g_core_definitions[i].name);
+ request.AddCompletion(g_core_definitions[i].name);
}
} else {
- ListSupportedArchNames(request.GetMatches());
+ StringList matches;
+ ListSupportedArchNames(matches);
+ request.AddCompletions(matches);
}
- return request.GetMatches().GetSize();
+ return request.GetNumberOfMatches();
}
#define CPU_ANY (UINT32_MAX)
diff --git a/source/Utility/CompletionRequest.cpp b/source/Utility/CompletionRequest.cpp
index 1b7697a35860..c88747e2abe3 100644
--- a/source/Utility/CompletionRequest.cpp
+++ b/source/Utility/CompletionRequest.cpp
@@ -20,6 +20,7 @@ CompletionRequest::CompletionRequest(llvm::StringRef command_line,
: m_command(command_line), m_raw_cursor_pos(raw_cursor_pos),
m_match_start_point(match_start_point),
m_max_return_elements(max_return_elements), m_matches(&matches) {
+ matches.Clear();
// We parse the argument up to the cursor, so the last argument in
// parsed_line is the one containing the cursor, and the cursor is after the
diff --git a/source/Utility/Stream.cpp b/source/Utility/Stream.cpp
index 647a0c0beb5c..7df7f7008084 100644
--- a/source/Utility/Stream.cpp
+++ b/source/Utility/Stream.cpp
@@ -526,48 +526,3 @@ size_t Stream::PutCStringAsRawHex8(const char *s) {
m_flags.Set(eBinary);
return bytes_written;
}
-
-void Stream::UnitTest(Stream *s) {
- s->PutHex8(0x12);
-
- s->PutChar(' ');
- s->PutHex16(0x3456, endian::InlHostByteOrder());
- s->PutChar(' ');
- s->PutHex16(0x3456, eByteOrderBig);
- s->PutChar(' ');
- s->PutHex16(0x3456, eByteOrderLittle);
-
- s->PutChar(' ');
- s->PutHex32(0x789abcde, endian::InlHostByteOrder());
- s->PutChar(' ');
- s->PutHex32(0x789abcde, eByteOrderBig);
- s->PutChar(' ');
- s->PutHex32(0x789abcde, eByteOrderLittle);
-
- s->PutChar(' ');
- s->PutHex64(0x1122334455667788ull, endian::InlHostByteOrder());
- s->PutChar(' ');
- s->PutHex64(0x1122334455667788ull, eByteOrderBig);
- s->PutChar(' ');
- s->PutHex64(0x1122334455667788ull, eByteOrderLittle);
-
- const char *hola = "Hello World!!!";
- s->PutChar(' ');
- s->PutCString(hola);
-
- s->PutChar(' ');
- s->Write(hola, 5);
-
- s->PutChar(' ');
- s->PutCStringAsRawHex8(hola);
-
- s->PutChar(' ');
- s->PutCStringAsRawHex8("01234");
-
- s->PutChar(' ');
- s->Printf("pid=%i", 12733);
-
- s->PutChar(' ');
- s->PrintfAsRawHex8("pid=%i", 12733);
- s->PutChar('\n');
-}