diff options
Diffstat (limited to 'source/Utility/NameMatches.cpp')
-rw-r--r-- | source/Utility/NameMatches.cpp | 58 |
1 files changed, 26 insertions, 32 deletions
diff --git a/source/Utility/NameMatches.cpp b/source/Utility/NameMatches.cpp index e10c47e4fd9b..7b733d24eba2 100644 --- a/source/Utility/NameMatches.cpp +++ b/source/Utility/NameMatches.cpp @@ -6,45 +6,39 @@ // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// -#include "lldb/Core/RegularExpression.h" #include "lldb/Utility/NameMatches.h" +#include "lldb/Core/RegularExpression.h" #include "llvm/ADT/StringRef.h" using namespace lldb_private; -bool -lldb_private::NameMatches(const char *name, NameMatchType match_type, const char *match) -{ - if (match_type == eNameMatchIgnore) - return true; +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) + 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); - return regex.Execute(name); - } - 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; } |