diff options
| author | Zachary Turner <zturner@google.com> | 2016-11-16 21:15:24 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2016-11-16 21:15:24 +0000 |
| commit | c156427ded1dfa7686c90cc56ad16013a079a742 (patch) | |
| tree | f4912beeebd9e7a04e9c20a8e05d64e25bde192d /lldb/source/Plugins/ExpressionParser/Clang | |
| parent | 725dc14bb21da8a01709a6b3370a658d071689dc (diff) | |
| download | bcm5719-llvm-c156427ded1dfa7686c90cc56ad16013a079a742.tar.gz bcm5719-llvm-c156427ded1dfa7686c90cc56ad16013a079a742.zip | |
Don't allow direct access to StreamString's internal buffer.
This is a large API change that removes the two functions from
StreamString that return a std::string& and a const std::string&,
and instead provide one function which returns a StringRef.
Direct access to the underlying buffer violates the concept of
a "stream" which is intended to provide forward only access,
and makes porting to llvm::raw_ostream more difficult in the
future.
Differential Revision: https://reviews.llvm.org/D26698
llvm-svn: 287152
Diffstat (limited to 'lldb/source/Plugins/ExpressionParser/Clang')
| -rw-r--r-- | lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp | 11 | ||||
| -rw-r--r-- | lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp | 4 |
2 files changed, 7 insertions, 8 deletions
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp index b55d6644845..0f08dd330e9 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp @@ -1,5 +1,4 @@ -//===-- ClangASTSource.cpp ---------------------------------------*- C++ -//-*-===// +//===-- ClangASTSource.cpp ---------------------------------------*- C++-*-===// // // The LLVM Compiler Infrastructure // @@ -1042,10 +1041,10 @@ void ClangASTSource::FindObjCMethodDecls(NameSearchContext &context) { } ss.Flush(); - if (strstr(ss.GetData(), "$__lldb")) + if (ss.GetString().contains("$__lldb")) return; // we don't need any results - ConstString selector_name(ss.GetData()); + ConstString selector_name(ss.GetString()); if (log) log->Printf("ClangASTSource::FindObjCMethodDecls[%d] on (ASTContext*)%p " @@ -1065,7 +1064,7 @@ void ClangASTSource::FindObjCMethodDecls(NameSearchContext &context) { StreamString ms; ms.Printf("-[%s %s]", interface_name.c_str(), selector_name.AsCString()); ms.Flush(); - ConstString instance_method_name(ms.GetData()); + ConstString instance_method_name(ms.GetString()); m_target->GetImages().FindFunctions( instance_method_name, lldb::eFunctionNameTypeFull, include_symbols, @@ -1077,7 +1076,7 @@ void ClangASTSource::FindObjCMethodDecls(NameSearchContext &context) { ms.Clear(); ms.Printf("+[%s %s]", interface_name.c_str(), selector_name.AsCString()); ms.Flush(); - ConstString class_method_name(ms.GetData()); + ConstString class_method_name(ms.GetString()); m_target->GetImages().FindFunctions( class_method_name, lldb::eFunctionNameTypeFull, include_symbols, diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp index d91da5f40d9..a75e60ff63c 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp @@ -135,7 +135,7 @@ public: bool hasErrors() { return m_has_errors; } - const std::string &getErrorString() { return m_error_stream.GetString(); } + llvm::StringRef getErrorString() { return m_error_stream.GetString(); } }; class ClangDiagnosticManagerAdapter : public clang::DiagnosticConsumer { @@ -627,7 +627,7 @@ unsigned ClangExpressionParser::Parse(DiagnosticManager &diagnostic_manager) { diagnostic_manager.PutString(eDiagnosticSeverityError, "while importing modules:"); diagnostic_manager.AppendMessageToDiagnostic( - m_pp_callbacks->getErrorString().c_str()); + m_pp_callbacks->getErrorString()); } if (!num_errors) { |

