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

Unified Diff: ppapi/shared_impl/proxy_lock.h

Issue 552423003: PPAPI: Make CallWhileUnlocked more permissive. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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 | « ppapi/proxy/video_capture_resource.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/shared_impl/proxy_lock.h
diff --git a/ppapi/shared_impl/proxy_lock.h b/ppapi/shared_impl/proxy_lock.h
index 8e82ea609aa988f396816bf336552b6c30e4e63a..23afc0e5506e5160b575e08735e44413c0ddbdfb 100644
--- a/ppapi/shared_impl/proxy_lock.h
+++ b/ppapi/shared_impl/proxy_lock.h
@@ -117,28 +117,34 @@ ReturnType CallWhileUnlocked(ReturnType (*function)()) {
ProxyAutoUnlock unlock;
return function();
}
-template <class ReturnType, class P1>
-ReturnType CallWhileUnlocked(ReturnType (*function)(P1), const P1& p1) {
+// Note we use 2 types for the params, even though for the most part we expect
+// A1 to match P1. We let the compiler determine if P1 can convert safely to
+// A1. This allows callers to avoid having to do things like
+// const_cast to add const.
+template <class ReturnType, class A1, class P1>
+ReturnType CallWhileUnlocked(ReturnType (*function)(A1), const P1& p1) {
ProxyAutoUnlock unlock;
return function(p1);
}
-template <class ReturnType, class P1, class P2>
-ReturnType CallWhileUnlocked(ReturnType (*function)(P1, P2),
+template <class ReturnType, class A1, class A2, class P1, class P2>
+ReturnType CallWhileUnlocked(ReturnType (*function)(A1, A2),
const P1& p1,
const P2& p2) {
ProxyAutoUnlock unlock;
return function(p1, p2);
}
-template <class ReturnType, class P1, class P2, class P3>
-ReturnType CallWhileUnlocked(ReturnType (*function)(P1, P2, P3),
+template <class ReturnType, class A1, class A2, class A3, class P1, class P2,
+ class P3>
+ReturnType CallWhileUnlocked(ReturnType (*function)(A1, A2, A3),
const P1& p1,
const P2& p2,
const P3& p3) {
ProxyAutoUnlock unlock;
return function(p1, p2, p3);
}
-template <class ReturnType, class P1, class P2, class P3, class P4>
-ReturnType CallWhileUnlocked(ReturnType (*function)(P1, P2, P3, P4),
+template <class ReturnType, class A1, class A2, class A3, class A4, class P1,
+ class P2, class P3, class P4>
+ReturnType CallWhileUnlocked(ReturnType (*function)(A1, A2, A3, A4),
const P1& p1,
const P2& p2,
const P3& p3,
@@ -146,8 +152,9 @@ ReturnType CallWhileUnlocked(ReturnType (*function)(P1, P2, P3, P4),
ProxyAutoUnlock unlock;
return function(p1, p2, p3, p4);
}
-template <class ReturnType, class P1, class P2, class P3, class P4, class P5>
-ReturnType CallWhileUnlocked(ReturnType (*function)(P1, P2, P3, P4, P5),
+template <class ReturnType, class A1, class A2, class A3, class A4, class A5,
+ class P1, class P2, class P3, class P4, class P5>
+ReturnType CallWhileUnlocked(ReturnType (*function)(A1, A2, A3, A4, A5),
const P1& p1,
const P2& p2,
const P3& p3,
« no previous file with comments | « ppapi/proxy/video_capture_resource.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698