zturner created this revision.
zturner added reviewers: beanz, tfiala.
zturner added a subscriber: lldb-commits.

As per the title.  beanz@, could you specifically look over my usage of 
`llvm::Twine`?  This is the first time I've used this class, and I'm not sure 
if I'm using it correctly / efficiently.


https://reviews.llvm.org/D26721

Files:
  include/lldb/Core/ArchSpec.h
  include/lldb/Core/PluginManager.h
  include/lldb/Core/StringList.h
  include/lldb/Interpreter/CommandCompletions.h
  include/lldb/Symbol/Variable.h
  include/lldb/Utility/NameMatches.h
  source/Commands/CommandCompletions.cpp
  source/Core/ArchSpec.cpp
  source/Core/PluginManager.cpp
  source/Core/StringList.cpp
  source/Interpreter/CommandObject.cpp
  source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
  source/Symbol/Variable.cpp
  source/Utility/NameMatches.cpp

Index: source/Utility/NameMatches.cpp
===================================================================
--- source/Utility/NameMatches.cpp
+++ source/Utility/NameMatches.cpp
@@ -13,33 +13,32 @@
 
 using namespace lldb_private;
 
-bool lldb_private::NameMatches(const char *name, NameMatchType match_type,
-                               const char *match) {
+bool lldb_private::NameMatches(llvm::StringRef name, NameMatchType match_type,
+                               llvm::StringRef match) {
   if (match_type == eNameMatchIgnore)
     return true;
 
   if (name == match)
     return true;
 
-  if (name && match) {
-    llvm::StringRef name_sref(name);
-    llvm::StringRef match_sref(match);
-    switch (match_type) {
-    case eNameMatchIgnore: // This case cannot occur: tested before
-      return true;
-    case eNameMatchEquals:
-      return name_sref == match_sref;
-    case eNameMatchContains:
-      return name_sref.find(match_sref) != llvm::StringRef::npos;
-    case eNameMatchStartsWith:
-      return name_sref.startswith(match_sref);
-    case eNameMatchEndsWith:
-      return name_sref.endswith(match_sref);
-    case eNameMatchRegularExpression: {
-      RegularExpression regex(match_sref);
-      return regex.Execute(name_sref);
-    } break;
-    }
+  if (name.empty() || match.empty())
+    return false;
+
+  switch (match_type) {
+  case eNameMatchIgnore: // This case cannot occur: tested before
+    return true;
+  case eNameMatchEquals:
+    return name == match;
+  case eNameMatchContains:
+    return name.contains(match);
+  case eNameMatchStartsWith:
+    return name.startswith(match);
+  case eNameMatchEndsWith:
+    return name.endswith(match);
+  case eNameMatchRegularExpression: {
+    RegularExpression regex(match);
+    return regex.Execute(name);
+  } break;
   }
   return false;
 }
Index: source/Symbol/Variable.cpp
===================================================================
--- source/Symbol/Variable.cpp
+++ source/Symbol/Variable.cpp
@@ -31,6 +31,8 @@
 #include "lldb/Target/Target.h"
 #include "lldb/Target/Thread.h"
 
+#include "llvm/ADT/Twine.h"
+
 using namespace lldb;
 using namespace lldb_private;
 
@@ -483,24 +485,24 @@
 }
 
 static void PrivateAutoComplete(
-    StackFrame *frame, const std::string &partial_path,
-    const std::string
+    StackFrame *frame, llvm::StringRef partial_path,
+    const llvm::Twine
         &prefix_path, // Anything that has been resolved already will be in here
     const CompilerType &compiler_type,
     StringList &matches, bool &word_complete);
 
 static void PrivateAutoCompleteMembers(
     StackFrame *frame, const std::string &partial_member_name,
-    const std::string &partial_path,
-    const std::string
+    llvm::StringRef partial_path,
+    const llvm::Twine
         &prefix_path, // Anything that has been resolved already will be in here
     const CompilerType &compiler_type,
     StringList &matches, bool &word_complete);
 
 static void PrivateAutoCompleteMembers(
     StackFrame *frame, const std::string &partial_member_name,
-    const std::string &partial_path,
-    const std::string
+    llvm::StringRef partial_path,
+    const llvm::Twine
         &prefix_path, // Anything that has been resolved already will be in here
     const CompilerType &compiler_type,
     StringList &matches, bool &word_complete) {
@@ -551,16 +553,16 @@
                                          // already will be in here
               member_compiler_type.GetCanonicalType(), matches, word_complete);
         } else {
-          matches.AppendString(prefix_path + member_name);
+          matches.AppendString((prefix_path + member_name).str());
         }
       }
     }
   }
 }
 
 static void PrivateAutoComplete(
-    StackFrame *frame, const std::string &partial_path,
-    const std::string
+    StackFrame *frame, llvm::StringRef partial_path,
+    const llvm::Twine
         &prefix_path, // Anything that has been resolved already will be in here
     const CompilerType &compiler_type,
     StringList &matches, bool &word_complete) {
@@ -584,15 +586,15 @@
       case eTypeClassReference:
       case eTypeClassTypedef:
       case eTypeClassVector: {
-        matches.AppendString(prefix_path);
+        matches.AppendString(prefix_path.str());
         word_complete = matches.GetSize() == 1;
       } break;
 
       case eTypeClassClass:
       case eTypeClassStruct:
       case eTypeClassUnion:
-        if (prefix_path.back() != '.')
-          matches.AppendString(prefix_path + '.');
+        if (prefix_path.str().back() != '.')
+          matches.AppendString((prefix_path + ".").str());
         break;
 
       case eTypeClassObjCObject:
@@ -602,9 +604,9 @@
       case eTypeClassPointer: {
         bool omit_empty_base_classes = true;
         if (compiler_type.GetNumChildren(omit_empty_base_classes) > 0)
-          matches.AppendString(prefix_path + "->");
+          matches.AppendString((prefix_path + "->").str());
         else {
-          matches.AppendString(prefix_path);
+          matches.AppendString(prefix_path.str());
           word_complete = true;
         }
       } break;
@@ -628,21 +630,21 @@
     const char ch = partial_path[0];
     switch (ch) {
     case '*':
-      if (prefix_path.empty()) {
-        PrivateAutoComplete(frame, partial_path.substr(1), std::string("*"),
-                            compiler_type, matches, word_complete);
+      if (prefix_path.str().empty()) {
+        PrivateAutoComplete(frame, partial_path.substr(1), "*", compiler_type,
+                            matches, word_complete);
       }
       break;
 
     case '&':
-      if (prefix_path.empty()) {
+      if (prefix_path.isTriviallyEmpty()) {
         PrivateAutoComplete(frame, partial_path.substr(1), std::string("&"),
                             compiler_type, matches, word_complete);
       }
       break;
 
     case '-':
-      if (partial_path[1] == '>' && !prefix_path.empty()) {
+      if (partial_path[1] == '>' && !prefix_path.str().empty()) {
         switch (type_class) {
         case lldb::eTypeClassPointer: {
           CompilerType pointee_type(compiler_type.GetPointeeType());
@@ -739,10 +741,10 @@
                       variable_compiler_type.GetCanonicalType(), matches,
                       word_complete);
                 } else {
-                  matches.AppendString(prefix_path + variable_name);
+                  matches.AppendString((prefix_path + variable_name).str());
                 }
               } else if (remaining_partial_path.empty()) {
-                matches.AppendString(prefix_path + variable_name);
+                matches.AppendString((prefix_path + variable_name).str());
               }
             }
           }
@@ -754,17 +756,13 @@
 }
 
 size_t Variable::AutoComplete(const ExecutionContext &exe_ctx,
-                              const char *partial_path_cstr,
-                              StringList &matches, bool &word_complete) {
+                              llvm::StringRef partial_path, StringList &matches,
+                              bool &word_complete) {
   word_complete = false;
-  std::string partial_path;
-  std::string prefix_path;
   CompilerType compiler_type;
-  if (partial_path_cstr && partial_path_cstr[0])
-    partial_path = partial_path_cstr;
 
-  PrivateAutoComplete(exe_ctx.GetFramePtr(), partial_path, prefix_path,
-                      compiler_type, matches, word_complete);
+  PrivateAutoComplete(exe_ctx.GetFramePtr(), partial_path, "", compiler_type,
+                      matches, word_complete);
 
   return matches.GetSize();
 }
Index: source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
===================================================================
--- source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
+++ source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
@@ -1,5 +1,4 @@
-//===-- EmulateInstructionARM64.cpp -------------------------------*- C++
-//-*-===//
+//===-- EmulateInstructionARM64.cpp ------------------------------*- C++-*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
Index: source/Interpreter/CommandObject.cpp
===================================================================
--- source/Interpreter/CommandObject.cpp
+++ source/Interpreter/CommandObject.cpp
@@ -1023,7 +1023,7 @@
   static StreamString g_archs_help;
   if (g_archs_help.Empty()) {
     StringList archs;
-    ArchSpec::AutoComplete(nullptr, archs);
+    ArchSpec::AutoComplete(llvm::StringRef(), archs);
     g_archs_help.Printf("These are the supported architecture names:\n");
     archs.Join("\n", g_archs_help);
   }
Index: source/Core/StringList.cpp
===================================================================
--- source/Core/StringList.cpp
+++ source/Core/StringList.cpp
@@ -230,24 +230,25 @@
   return *this;
 }
 
-size_t StringList::AutoComplete(const char *s, StringList &matches,
+size_t StringList::AutoComplete(llvm::StringRef s, StringList &matches,
                                 size_t &exact_idx) const {
   matches.Clear();
   exact_idx = SIZE_MAX;
-  if (s && s[0]) {
-    const size_t s_len = strlen(s);
-    const size_t num_strings = m_strings.size();
-
-    for (size_t i = 0; i < num_strings; ++i) {
-      if (m_strings[i].find(s) == 0) {
-        if (exact_idx == SIZE_MAX && m_strings[i].size() == s_len)
-          exact_idx = matches.GetSize();
-        matches.AppendString(m_strings[i]);
-      }
-    }
-  } else {
+  if (s.empty()) {
     // No string, so it matches everything
     matches = *this;
+    return matches.GetSize();
+  }
+
+  const size_t s_len = s.size();
+  const size_t num_strings = m_strings.size();
+
+  for (size_t i = 0; i < num_strings; ++i) {
+    if (m_strings[i].find(s) == 0) {
+      if (exact_idx == SIZE_MAX && m_strings[i].size() == s_len)
+        exact_idx = matches.GetSize();
+      matches.AppendString(m_strings[i]);
+    }
   }
   return matches.GetSize();
 }
Index: source/Core/PluginManager.cpp
===================================================================
--- source/Core/PluginManager.cpp
+++ source/Core/PluginManager.cpp
@@ -1355,19 +1355,20 @@
   return nullptr;
 }
 
-size_t PluginManager::AutoCompletePlatformName(const char *name,
+size_t PluginManager::AutoCompletePlatformName(llvm::StringRef name,
                                                StringList &matches) {
-  if (name) {
-    std::lock_guard<std::recursive_mutex> guard(GetPlatformInstancesMutex());
-    PlatformInstances &instances = GetPlatformInstances();
-    llvm::StringRef name_sref(name);
+  if (name.empty())
+    return matches.GetSize();
 
-    PlatformInstances::iterator pos, end = instances.end();
-    for (pos = instances.begin(); pos != end; ++pos) {
-      llvm::StringRef plugin_name(pos->name.GetCString());
-      if (plugin_name.startswith(name_sref))
-        matches.AppendString(plugin_name.data());
-    }
+  std::lock_guard<std::recursive_mutex> guard(GetPlatformInstancesMutex());
+  PlatformInstances &instances = GetPlatformInstances();
+  llvm::StringRef name_sref(name);
+
+  PlatformInstances::iterator pos, end = instances.end();
+  for (pos = instances.begin(); pos != end; ++pos) {
+    llvm::StringRef plugin_name(pos->name.GetCString());
+    if (plugin_name.startswith(name_sref))
+      matches.AppendString(plugin_name.data());
   }
   return matches.GetSize();
 }
Index: source/Core/ArchSpec.cpp
===================================================================
--- source/Core/ArchSpec.cpp
+++ source/Core/ArchSpec.cpp
@@ -256,8 +256,8 @@
   const char *name;
 };
 
-size_t ArchSpec::AutoComplete(const char *name, StringList &matches) {
-  if (name && name[0]) {
+size_t ArchSpec::AutoComplete(llvm::StringRef name, StringList &matches) {
+  if (!name.empty()) {
     for (uint32_t i = 0; i < llvm::array_lengthof(g_core_definitions); ++i) {
       if (NameMatches(g_core_definitions[i].name, eNameMatchStartsWith, name))
         matches.AppendString(g_core_definitions[i].name);
Index: source/Commands/CommandCompletions.cpp
===================================================================
--- source/Commands/CommandCompletions.cpp
+++ source/Commands/CommandCompletions.cpp
@@ -53,8 +53,9 @@
 
 bool CommandCompletions::InvokeCommonCompletionCallbacks(
     CommandInterpreter &interpreter, uint32_t completion_mask,
-    const char *completion_str, int match_start_point, int max_return_elements,
-    SearchFilter *searcher, bool &word_complete, StringList &matches) {
+    llvm::StringRef completion_str, int match_start_point,
+    int max_return_elements, SearchFilter *searcher, bool &word_complete,
+    StringList &matches) {
   bool handled = false;
 
   if (completion_mask & eCustomCompletion)
@@ -76,7 +77,7 @@
 }
 
 int CommandCompletions::SourceFiles(CommandInterpreter &interpreter,
-                                    const char *partial_file_name,
+                                    llvm::StringRef partial_file_name,
                                     int match_start_point,
                                     int max_return_elements,
                                     SearchFilter *searcher, bool &word_complete,
@@ -158,31 +159,28 @@
   return FileSpec::eEnumerateDirectoryResultNext;
 }
 
-static int DiskFilesOrDirectories(const char *partial_file_name,
+static int DiskFilesOrDirectories(llvm::StringRef partial_file_name,
                                   bool only_directories, bool &saw_directory,
                                   StringList &matches) {
   // I'm going to  use the "glob" function with GLOB_TILDE for user directory
   // expansion.
   // If it is not defined on your host system, you'll need to implement it
   // yourself...
 
-  size_t partial_name_len = strlen(partial_file_name);
+  size_t partial_name_len = partial_file_name.size();
 
   if (partial_name_len >= PATH_MAX)
     return matches.GetSize();
 
   // This copy of the string will be cut up into the directory part, and the
-  // remainder.  end_ptr
-  // below will point to the place of the remainder in this string.  Then when
-  // we've resolved the
-  // containing directory, and opened it, we'll read the directory contents and
-  // overwrite the
-  // partial_name_copy starting from end_ptr with each of the matches.  Thus we
-  // will preserve
-  // the form the user originally typed.
+  // remainder.  end_ptr below will point to the place of the remainder in this
+  // string.  Then when we've resolved the containing directory, and opened it,
+  // we'll read the directory contents and overwrite the partial_name_copy
+  // starting from end_ptr with each of the matches.  Thus we will preserve the
+  // form the user originally typed.
 
   char partial_name_copy[PATH_MAX];
-  memcpy(partial_name_copy, partial_file_name, partial_name_len);
+  memcpy(partial_name_copy, partial_file_name.data(), partial_name_len);
   partial_name_copy[partial_name_len] = '\0';
 
   // We'll need to save a copy of the remainder for comparison, which we do
@@ -280,7 +278,7 @@
 }
 
 int CommandCompletions::DiskFiles(CommandInterpreter &interpreter,
-                                  const char *partial_file_name,
+                                  llvm::StringRef partial_file_name,
                                   int match_start_point,
                                   int max_return_elements,
                                   SearchFilter *searcher, bool &word_complete,
@@ -292,7 +290,7 @@
 }
 
 int CommandCompletions::DiskDirectories(
-    CommandInterpreter &interpreter, const char *partial_file_name,
+    CommandInterpreter &interpreter, llvm::StringRef partial_file_name,
     int match_start_point, int max_return_elements, SearchFilter *searcher,
     bool &word_complete, StringList &matches) {
   int ret_val =
@@ -302,7 +300,7 @@
 }
 
 int CommandCompletions::Modules(CommandInterpreter &interpreter,
-                                const char *partial_file_name,
+                                llvm::StringRef partial_file_name,
                                 int match_start_point, int max_return_elements,
                                 SearchFilter *searcher, bool &word_complete,
                                 StringList &matches) {
@@ -321,7 +319,7 @@
 }
 
 int CommandCompletions::Symbols(CommandInterpreter &interpreter,
-                                const char *partial_file_name,
+                                llvm::StringRef partial_file_name,
                                 int match_start_point, int max_return_elements,
                                 SearchFilter *searcher, bool &word_complete,
                                 StringList &matches) {
@@ -340,7 +338,7 @@
 }
 
 int CommandCompletions::SettingsNames(
-    CommandInterpreter &interpreter, const char *partial_setting_name,
+    CommandInterpreter &interpreter, llvm::StringRef partial_setting_name,
     int match_start_point, int max_return_elements, SearchFilter *searcher,
     bool &word_complete, StringList &matches) {
   // Cache the full setting name list
@@ -365,7 +363,7 @@
 }
 
 int CommandCompletions::PlatformPluginNames(
-    CommandInterpreter &interpreter, const char *partial_name,
+    CommandInterpreter &interpreter, llvm::StringRef partial_name,
     int match_start_point, int max_return_elements, SearchFilter *searcher,
     bool &word_complete, lldb_private::StringList &matches) {
   const uint32_t num_matches =
@@ -375,24 +373,24 @@
 }
 
 int CommandCompletions::ArchitectureNames(
-    CommandInterpreter &interpreter, const char *partial_name,
+    CommandInterpreter &interpreter, llvm::StringRef partial_name,
     int match_start_point, int max_return_elements, SearchFilter *searcher,
     bool &word_complete, lldb_private::StringList &matches) {
   const uint32_t num_matches = ArchSpec::AutoComplete(partial_name, matches);
   word_complete = num_matches == 1;
   return num_matches;
 }
 
 int CommandCompletions::VariablePath(
-    CommandInterpreter &interpreter, const char *partial_name,
+    CommandInterpreter &interpreter, llvm::StringRef partial_name,
     int match_start_point, int max_return_elements, SearchFilter *searcher,
     bool &word_complete, lldb_private::StringList &matches) {
   return Variable::AutoComplete(interpreter.GetExecutionContext(), partial_name,
                                 matches, word_complete);
 }
 
 CommandCompletions::Completer::Completer(CommandInterpreter &interpreter,
-                                         const char *completion_str,
+                                         llvm::StringRef completion_str,
                                          int match_start_point,
                                          int max_return_elements,
                                          StringList &matches)
@@ -408,8 +406,8 @@
 
 CommandCompletions::SourceFileCompleter::SourceFileCompleter(
     CommandInterpreter &interpreter, bool include_support_files,
-    const char *completion_str, int match_start_point, int max_return_elements,
-    StringList &matches)
+    llvm::StringRef completion_str, int match_start_point,
+    int max_return_elements, StringList &matches)
     : CommandCompletions::Completer(interpreter, completion_str,
                                     match_start_point, max_return_elements,
                                     matches),
@@ -492,13 +490,13 @@
 }
 
 CommandCompletions::SymbolCompleter::SymbolCompleter(
-    CommandInterpreter &interpreter, const char *completion_str,
+    CommandInterpreter &interpreter, llvm::StringRef completion_str,
     int match_start_point, int max_return_elements, StringList &matches)
     : CommandCompletions::Completer(interpreter, completion_str,
                                     match_start_point, max_return_elements,
                                     matches) {
   std::string regex_str;
-  if (completion_str && completion_str[0]) {
+  if (!completion_str.empty()) {
     regex_str.append("^");
     regex_str.append(completion_str);
   } else {
@@ -555,7 +553,7 @@
 // ModuleCompleter
 //----------------------------------------------------------------------
 CommandCompletions::ModuleCompleter::ModuleCompleter(
-    CommandInterpreter &interpreter, const char *completion_str,
+    CommandInterpreter &interpreter, llvm::StringRef completion_str,
     int match_start_point, int max_return_elements, StringList &matches)
     : CommandCompletions::Completer(interpreter, completion_str,
                                     match_start_point, max_return_elements,
Index: include/lldb/Utility/NameMatches.h
===================================================================
--- include/lldb/Utility/NameMatches.h
+++ include/lldb/Utility/NameMatches.h
@@ -11,8 +11,11 @@
 
 #include "lldb/lldb-private-enumerations.h"
 
+#include "llvm/ADT/StringRef.h"
+
 namespace lldb_private {
-bool NameMatches(const char *name, NameMatchType match_type, const char *match);
+bool NameMatches(llvm::StringRef name, NameMatchType match_type,
+                 llvm::StringRef match);
 }
 
 #endif
Index: include/lldb/Symbol/Variable.h
===================================================================
--- include/lldb/Symbol/Variable.h
+++ include/lldb/Symbol/Variable.h
@@ -1,5 +1,4 @@
-//===-- Variable.h ----------------------------------------------*- C++
-//-*-===//
+//===-- Variable.h -----------------------------------------------*- C++-*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -103,8 +102,9 @@
       GetVariableCallback callback, void *baton, VariableList &variable_list,
       ValueObjectList &valobj_list);
 
-  static size_t AutoComplete(const ExecutionContext &exe_ctx, const char *name,
-                             StringList &matches, bool &word_complete);
+  static size_t AutoComplete(const ExecutionContext &exe_ctx,
+                             llvm::StringRef name, StringList &matches,
+                             bool &word_complete);
 
   CompilerDeclContext GetDeclContext();
 
Index: include/lldb/Interpreter/CommandCompletions.h
===================================================================
--- include/lldb/Interpreter/CommandCompletions.h
+++ include/lldb/Interpreter/CommandCompletions.h
@@ -32,7 +32,7 @@
   //----------------------------------------------------------------------
   typedef int (*CompletionCallback)(
       CommandInterpreter &interpreter,
-      const char *completion_str, // This is the argument we are completing
+      llvm::StringRef completion_str, // This is the argument we are completing
       int match_start_point,   // This is the point in the list of matches that
                                // you should start returning elements
       int max_return_elements, // This is the number of matches requested.
@@ -64,61 +64,62 @@
 
   static bool InvokeCommonCompletionCallbacks(
       CommandInterpreter &interpreter, uint32_t completion_mask,
-      const char *completion_str, int match_start_point,
+      llvm::StringRef completion_str, int match_start_point,
       int max_return_elements, SearchFilter *searcher, bool &word_complete,
       StringList &matches);
 
   //----------------------------------------------------------------------
   // These are the generic completer functions:
   //----------------------------------------------------------------------
   static int DiskFiles(CommandInterpreter &interpreter,
-                       const char *partial_file_name, int match_start_point,
+                       llvm::StringRef partial_file_name, int match_start_point,
                        int max_return_elements, SearchFilter *searcher,
                        bool &word_complete, StringList &matches);
 
   static int DiskDirectories(CommandInterpreter &interpreter,
-                             const char *partial_file_name,
+                             llvm::StringRef partial_file_name,
                              int match_start_point, int max_return_elements,
                              SearchFilter *searcher, bool &word_complete,
                              StringList &matches);
 
   static int SourceFiles(CommandInterpreter &interpreter,
-                         const char *partial_file_name, int match_start_point,
-                         int max_return_elements, SearchFilter *searcher,
-                         bool &word_complete, StringList &matches);
+                         llvm::StringRef partial_file_name,
+                         int match_start_point, int max_return_elements,
+                         SearchFilter *searcher, bool &word_complete,
+                         StringList &matches);
 
   static int Modules(CommandInterpreter &interpreter,
-                     const char *partial_file_name, int match_start_point,
+                     llvm::StringRef partial_file_name, int match_start_point,
                      int max_return_elements, SearchFilter *searcher,
                      bool &word_complete, lldb_private::StringList &matches);
 
   static int Symbols(CommandInterpreter &interpreter,
-                     const char *partial_file_name, int match_start_point,
+                     llvm::StringRef partial_file_name, int match_start_point,
                      int max_return_elements, SearchFilter *searcher,
                      bool &word_complete, lldb_private::StringList &matches);
 
   static int SettingsNames(CommandInterpreter &interpreter,
-                           const char *partial_file_name, int match_start_point,
-                           int max_return_elements, SearchFilter *searcher,
-                           bool &word_complete,
+                           llvm::StringRef partial_file_name,
+                           int match_start_point, int max_return_elements,
+                           SearchFilter *searcher, bool &word_complete,
                            lldb_private::StringList &matches);
 
   static int PlatformPluginNames(CommandInterpreter &interpreter,
-                                 const char *partial_file_name,
+                                 llvm::StringRef partial_file_name,
                                  int match_start_point, int max_return_elements,
                                  SearchFilter *searcher, bool &word_complete,
                                  lldb_private::StringList &matches);
 
   static int ArchitectureNames(CommandInterpreter &interpreter,
-                               const char *partial_file_name,
+                               llvm::StringRef partial_file_name,
                                int match_start_point, int max_return_elements,
                                SearchFilter *searcher, bool &word_complete,
                                lldb_private::StringList &matches);
 
   static int VariablePath(CommandInterpreter &interpreter,
-                          const char *partial_file_name, int match_start_point,
-                          int max_return_elements, SearchFilter *searcher,
-                          bool &word_complete,
+                          llvm::StringRef partial_file_name,
+                          int match_start_point, int max_return_elements,
+                          SearchFilter *searcher, bool &word_complete,
                           lldb_private::StringList &matches);
 
   //----------------------------------------------------------------------
@@ -128,7 +129,7 @@
   //----------------------------------------------------------------------
   class Completer : public Searcher {
   public:
-    Completer(CommandInterpreter &interpreter, const char *completion_str,
+    Completer(CommandInterpreter &interpreter, llvm::StringRef completion_str,
               int match_start_point, int max_return_elements,
               StringList &matches);
 
@@ -158,9 +159,9 @@
   class SourceFileCompleter : public Completer {
   public:
     SourceFileCompleter(CommandInterpreter &interpreter,
-                        bool include_support_files, const char *completion_str,
-                        int match_start_point, int max_return_elements,
-                        StringList &matches);
+                        bool include_support_files,
+                        llvm::StringRef completion_str, int match_start_point,
+                        int max_return_elements, StringList &matches);
 
     Searcher::Depth GetDepth() override;
 
@@ -185,9 +186,9 @@
   //----------------------------------------------------------------------
   class ModuleCompleter : public Completer {
   public:
-    ModuleCompleter(CommandInterpreter &interpreter, const char *completion_str,
-                    int match_start_point, int max_return_elements,
-                    StringList &matches);
+    ModuleCompleter(CommandInterpreter &interpreter,
+                    llvm::StringRef completion_str, int match_start_point,
+                    int max_return_elements, StringList &matches);
 
     Searcher::Depth GetDepth() override;
 
@@ -210,9 +211,9 @@
   //----------------------------------------------------------------------
   class SymbolCompleter : public Completer {
   public:
-    SymbolCompleter(CommandInterpreter &interpreter, const char *completion_str,
-                    int match_start_point, int max_return_elements,
-                    StringList &matches);
+    SymbolCompleter(CommandInterpreter &interpreter,
+                    llvm::StringRef completion_str, int match_start_point,
+                    int max_return_elements, StringList &matches);
 
     Searcher::Depth GetDepth() override;
 
Index: include/lldb/Core/StringList.h
===================================================================
--- include/lldb/Core/StringList.h
+++ include/lldb/Core/StringList.h
@@ -109,7 +109,7 @@
   // values in this collection, will have "exact_matches_idx"
   // filled in to match the index, or "exact_matches_idx" will
   // have SIZE_MAX
-  size_t AutoComplete(const char *s, StringList &matches,
+  size_t AutoComplete(llvm::StringRef s, StringList &matches,
                       size_t &exact_matches_idx) const;
 
   // Dump the StringList to the given lldb_private::Log, `log`, one item per
Index: include/lldb/Core/PluginManager.h
===================================================================
--- include/lldb/Core/PluginManager.h
+++ include/lldb/Core/PluginManager.h
@@ -244,7 +244,7 @@
 
   static const char *GetPlatformPluginDescriptionAtIndex(uint32_t idx);
 
-  static size_t AutoCompletePlatformName(const char *partial_name,
+  static size_t AutoCompletePlatformName(llvm::StringRef partial_name,
                                          StringList &matches);
   //------------------------------------------------------------------
   // Process
Index: include/lldb/Core/ArchSpec.h
===================================================================
--- include/lldb/Core/ArchSpec.h
+++ include/lldb/Core/ArchSpec.h
@@ -283,7 +283,7 @@
   //------------------------------------------------------------------
   const ArchSpec &operator=(const ArchSpec &rhs);
 
-  static size_t AutoComplete(const char *name, StringList &matches);
+  static size_t AutoComplete(llvm::StringRef name, StringList &matches);
 
   //------------------------------------------------------------------
   /// Returns a static string representing the current architecture.
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to