Functor for functions with STDCALL calling conventions. Allows invoking Windows API.
Review URL: http://codereview.chromium.org/402086
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32613 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/testing/generate_gmock_mutant.py b/testing/generate_gmock_mutant.py
index 8e1fdf0..14ca190b 100644
--- a/testing/generate_gmock_mutant.py
+++ b/testing/generate_gmock_mutant.py
@@ -415,13 +415,21 @@
print mutant2
print "#endif // GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING\n"
+ # OS_WIN specific. Same functors but with stdcall calling conventions.
# Functor for method with __stdcall calling conventions.
print "#if defined (OS_WIN)"
- stdcall = CREATE_METHOD_FUNCTOR_TEMPLATE.replace("U::", "__stdcall U::")
- stdcall = FixCode(stdcall % args)
- print stdcall
+ stdcall_method = CREATE_METHOD_FUNCTOR_TEMPLATE
+ stdcall_method = stdcall_method.replace("U::", "__stdcall U::")
+ stdcall_method = FixCode(stdcall_method % args)
+ print stdcall_method
+ # Functor for free function with __stdcall calling conventions.
+ stdcall_function = CREATE_FUNCTION_FUNCTOR_TEMPLATE
+ stdcall_function = stdcall_function.replace("R (*", "R (__stdcall *");
+ print "\n", FixCode(stdcall_function % args)
+
print "#ifdef GMOCK_MUTANT_INCLUDE_LATE_OBJECT_BINDING"
- stdcall2 = stdcall.replace("CreateFunctor(T* obj,", "CreateFunctor(T** obj,")
+ stdcall2 = stdcall_method;
+ stdcall2 = stdcall2.replace("CreateFunctor(T* obj,", "CreateFunctor(T** obj,")
stdcall2 = stdcall2.replace("new Mutant", "new MutantLateObjectBind")
stdcall2 = stdcall2.replace(" " * 17 + "Tuple", " " * 31 + "Tuple")
print stdcall2