diff options
| author | Zachary Turner <zturner@google.com> | 2016-09-21 16:01:28 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2016-09-21 16:01:28 +0000 |
| commit | 95eae4235d4cfa5cee67ab6c4e686baf8a57e9e5 (patch) | |
| tree | 0e9d2a42e76e13cf5ed5d6a8f0b935a83e40ea69 /lldb/source/Plugins/Language/CPlusPlus | |
| parent | 07171f21d148d340115ec634be6a7f296799517d (diff) | |
| download | bcm5719-llvm-95eae4235d4cfa5cee67ab6c4e686baf8a57e9e5.tar.gz bcm5719-llvm-95eae4235d4cfa5cee67ab6c4e686baf8a57e9e5.zip | |
Make lldb::Regex use StringRef.
This updates getters and setters to use StringRef instead of
const char *. I tested the build on Linux, Windows, and OSX
and saw no build or test failures. I cannot test any BSD
or Android variants, however I expect the required changes
to be minimal or non-existant.
llvm-svn: 282079
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus')
| -rw-r--r-- | lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index 0b4e341888e..81ca95cd36a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -153,12 +153,13 @@ static bool IsValidBasename(const llvm::StringRef &basename) { if (!basename.startswith("operator")) return false; - static RegularExpression g_operator_regex("^(operator)( " - "?)([A-Za-z_][A-Za-z_0-9]*|\\(\\)|" - "\\[\\]|[\\^<>=!\\/" - "*+-]+)(<.*>)?(\\[\\])?$"); + static RegularExpression g_operator_regex( + llvm::StringRef("^(operator)( " + "?)([A-Za-z_][A-Za-z_0-9]*|\\(\\)|" + "\\[\\]|[\\^<>=!\\/" + "*+-]+)(<.*>)?(\\[\\])?$")); std::string basename_str(basename.str()); - return g_operator_regex.Execute(basename_str.c_str(), nullptr); + return g_operator_regex.Execute(basename_str, nullptr); } void CPlusPlusLanguage::MethodName::Parse() { @@ -289,10 +290,11 @@ bool CPlusPlusLanguage::IsCPPMangledName(const char *name) { bool CPlusPlusLanguage::ExtractContextAndIdentifier( const char *name, llvm::StringRef &context, llvm::StringRef &identifier) { - static RegularExpression g_basename_regex( - "^(([A-Za-z_][A-Za-z_0-9]*::)*)(~?[A-Za-z_~][A-Za-z_0-9]*)$"); + static RegularExpression g_basename_regex(llvm::StringRef( + "^(([A-Za-z_][A-Za-z_0-9]*::)*)(~?[A-Za-z_~][A-Za-z_0-9]*)$")); RegularExpression::Match match(4); - if (g_basename_regex.Execute(name, &match)) { + if (g_basename_regex.Execute(llvm::StringRef::withNullAsEmpty(name), + &match)) { match.GetMatchAtIndex(name, 1, context); match.GetMatchAtIndex(name, 3, identifier); return true; @@ -564,8 +566,8 @@ static void LoadLibCxxFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { ConstString("^std::__(ndk)?1::atomic<.+>$"), stl_synth_flags, true); cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add( - RegularExpressionSP( - new RegularExpression("^(std::__(ndk)?1::)deque<.+>(( )?&)?$")), + RegularExpressionSP(new RegularExpression( + llvm::StringRef("^(std::__(ndk)?1::)deque<.+>(( )?&)?$"))), SyntheticChildrenSP(new ScriptedSyntheticChildren( stl_synth_flags, "lldb.formatters.cpp.libcxx.stddeque_SynthProvider"))); @@ -750,34 +752,38 @@ static void LoadLibStdcppFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { false); cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add( - RegularExpressionSP(new RegularExpression("^std::vector<.+>(( )?&)?$")), + RegularExpressionSP( + new RegularExpression(llvm::StringRef("^std::vector<.+>(( )?&)?$"))), SyntheticChildrenSP(new ScriptedSyntheticChildren( stl_synth_flags, "lldb.formatters.cpp.gnu_libstdcpp.StdVectorSynthProvider"))); cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add( - RegularExpressionSP(new RegularExpression("^std::map<.+> >(( )?&)?$")), + RegularExpressionSP( + new RegularExpression(llvm::StringRef("^std::map<.+> >(( )?&)?$"))), SyntheticChildrenSP(new ScriptedSyntheticChildren( stl_synth_flags, "lldb.formatters.cpp.gnu_libstdcpp.StdMapSynthProvider"))); cpp_category_sp->GetRegexTypeSyntheticsContainer()->Add( - RegularExpressionSP( - new RegularExpression("^std::(__cxx11::)?list<.+>(( )?&)?$")), + RegularExpressionSP(new RegularExpression( + llvm::StringRef("^std::(__cxx11::)?list<.+>(( )?&)?$"))), SyntheticChildrenSP(new ScriptedSyntheticChildren( stl_synth_flags, "lldb.formatters.cpp.gnu_libstdcpp.StdListSynthProvider"))); stl_summary_flags.SetDontShowChildren(false); stl_summary_flags.SetSkipPointers(true); cpp_category_sp->GetRegexTypeSummariesContainer()->Add( - RegularExpressionSP(new RegularExpression("^std::vector<.+>(( )?&)?$")), + RegularExpressionSP( + new RegularExpression(llvm::StringRef("^std::vector<.+>(( )?&)?$"))), TypeSummaryImplSP( new StringSummaryFormat(stl_summary_flags, "size=${svar%#}"))); cpp_category_sp->GetRegexTypeSummariesContainer()->Add( - RegularExpressionSP(new RegularExpression("^std::map<.+> >(( )?&)?$")), + RegularExpressionSP( + new RegularExpression(llvm::StringRef("^std::map<.+> >(( )?&)?$"))), TypeSummaryImplSP( new StringSummaryFormat(stl_summary_flags, "size=${svar%#}"))); cpp_category_sp->GetRegexTypeSummariesContainer()->Add( - RegularExpressionSP( - new RegularExpression("^std::(__cxx11::)?list<.+>(( )?&)?$")), + RegularExpressionSP(new RegularExpression( + llvm::StringRef("^std::(__cxx11::)?list<.+>(( )?&)?$"))), TypeSummaryImplSP( new StringSummaryFormat(stl_summary_flags, "size=${svar%#}"))); |

