Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Unified Diff: tools/clang/BindMigrate/PostTaskTransform.h

Issue 7886056: Clang plugin that rewrites PostTask(_, NewRunnableMethod(...)) to PostTask(_, base::Bind(...)); (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix lifetime issue where BindMigrateAction is deleted before the ASTConsumer is finished. Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/clang/BindMigrate/OldCallbackTransform.cpp ('k') | tools/clang/BindMigrate/PostTaskTransform.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/clang/BindMigrate/PostTaskTransform.h
diff --git a/tools/clang/BindMigrate/PostTaskTransform.h b/tools/clang/BindMigrate/PostTaskTransform.h
new file mode 100644
index 0000000000000000000000000000000000000000..2f062350f709f8218b9baa7eb3c940c478b7a021
--- /dev/null
+++ b/tools/clang/BindMigrate/PostTaskTransform.h
@@ -0,0 +1,46 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TOOL_CLANG_BINDMIGRATE_POST_TASK_TRANSFORM_H_
+#define TOOL_CLANG_BINDMIGRATE_POST_TASK_TRANSFORM_H_
+
+#include <set>
+#include <string>
+
+#include "Transform.h"
+
+namespace clang {
+
+class ASTContext;
+class CXXMemberCallExpr;
+class DiagnosticEmitter;
+class Exprt;
+class Rewriter;
+
+class PostTaskTransform : public Transform {
+ public:
+ PostTaskTransform(ASTContext* context,
+ Rewriter* rewriter,
+ DiagnosticEmitter* emitter);
+
+ // Transform Overrides.
+ virtual bool WouldTransformStmt(Stmt* statement);
+ virtual void TransformStmt(Stmt* statement);
+
+ private:
+ bool IsPostTaskNRMExpr(Stmt* statement);
+ bool IsRefcountedType(QualType type);
+ bool RewriteIfNewRunnableSomething(Expr* post_task_arg);
+
+ ASTContext* context_;
+ Rewriter* rewriter_;
+ DiagnosticEmitter* error_emitter_;
+
+ // Names for matching.
+ std::set<std::string> interesting_classes_;
+};
+
+} // namespace clang
+
+#endif // TOOL_CLANG_BINDMIGRATE_POST_TASK_TRANSFORM_H_
« no previous file with comments | « tools/clang/BindMigrate/OldCallbackTransform.cpp ('k') | tools/clang/BindMigrate/PostTaskTransform.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698