compilerplugins/clang/check.cxx | 5 +++++ compilerplugins/clang/check.hxx | 2 ++ compilerplugins/clang/passstuffbyref.cxx | 10 ++++------ 3 files changed, 11 insertions(+), 6 deletions(-)
New commits: commit 5d88bf766c8951b15010c8080c3cb56d52321fb2 Author: Stephan Bergmann <sberg...@redhat.com> Date: Wed Jun 29 11:31:13 2016 +0200 Further clean-up Change-Id: Ice5fcb8f598b079afde3346f569d9619f1383506 diff --git a/compilerplugins/clang/check.cxx b/compilerplugins/clang/check.cxx index c66a902..af95326 100644 --- a/compilerplugins/clang/check.cxx +++ b/compilerplugins/clang/check.cxx @@ -82,6 +82,11 @@ ContextCheck DeclCheck::Operator(clang::OverloadedOperatorKind op) const { ? f->getDeclContext() : nullptr); } +ContextCheck DeclCheck::MemberFunction() const { + auto m = llvm::dyn_cast_or_null<clang::CXXMethodDecl>(decl_); + return ContextCheck(m == nullptr ? nullptr : m->getParent()); +} + TerminalCheck ContextCheck::GlobalNamespace() const { return TerminalCheck( context_ != nullptr diff --git a/compilerplugins/clang/check.hxx b/compilerplugins/clang/check.hxx index 8381aec..d69acc2 100644 --- a/compilerplugins/clang/check.hxx +++ b/compilerplugins/clang/check.hxx @@ -73,6 +73,8 @@ public: ContextCheck Operator(clang::OverloadedOperatorKind op) const; + ContextCheck MemberFunction() const; + private: clang::Decl const * const decl_; }; diff --git a/compilerplugins/clang/passstuffbyref.cxx b/compilerplugins/clang/passstuffbyref.cxx index 168550b..1d9339a 100644 --- a/compilerplugins/clang/passstuffbyref.cxx +++ b/compilerplugins/clang/passstuffbyref.cxx @@ -73,10 +73,6 @@ private: std::vector<FDecl> functionDecls_; }; -bool startswith(const std::string& rStr, const char* pSubStr) { - return rStr.compare(0, strlen(pSubStr), pSubStr) == 0; -} - bool PassStuffByRef::TraverseFunctionDecl(FunctionDecl * decl) { return traverseAnyFunctionDecl( decl, &RecursiveASTVisitor::TraverseFunctionDecl); @@ -207,8 +203,10 @@ void PassStuffByRef::checkParams(const FunctionDecl * functionDecl) { return; } // these functions are passed as parameters to another function - std::string aFunctionName = functionDecl->getQualifiedNameAsString(); - if (startswith(aFunctionName, "slideshow::internal::ShapeAttributeLayer")) { + if (loplugin::DeclCheck(functionDecl).MemberFunction() + .Class("ShapeAttributeLayer").Namespace("internal") + .Namespace("slideshow").GlobalNamespace()) + { return; } assert(!functionDecls_.empty()); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits