| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This check ensures that every LayoutObject method begins with |
| // CheckIsNotDestroyed() so that LayoutObject instances are not accessed after |
| // they gets destroyed. |
| |
| #ifndef TOOLS_CLANG_PLUGINS_CHECKLAYOUTOBJECTMETHODSVISITOR_H_ |
| #define TOOLS_CLANG_PLUGINS_CHECKLAYOUTOBJECTMETHODSVISITOR_H_ |
| |
| #include "clang/AST/ASTConsumer.h" |
| #include "clang/Basic/Diagnostic.h" |
| #include "clang/Frontend/CompilerInstance.h" |
| |
| // TODO: Consider moving this checker into a blink plugin when we have it. |
| namespace chrome_checker { |
| |
| class CheckLayoutObjectMethodsVisitor { |
| public: |
| explicit CheckLayoutObjectMethodsVisitor(clang::CompilerInstance& compiler); |
| |
| void VisitLayoutObjectMethods(clang::ASTContext& context); |
| |
| private: |
| static std::string layout_directory; |
| static std::string test_directory; |
| |
| clang::CompilerInstance& compiler_; |
| }; |
| |
| } // namespace chrome_checker |
| |
| #endif // TOOLS_CLANG_PLUGINS_CHECKLAYOUTOBJECTMETHODSVISITOR_H_ |