Work around a bug in the MSVC2005 compiler
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 14 Dec 2011 23:55:12 +0000 (23:55 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 14 Dec 2011 23:55:12 +0000 (23:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=74550

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Add template parameters for the return types of the partial specializations of BoundFunctionImpl.

* wtf/Functional.h:
(WTF::R):

Tools:

Re-enable tests.

* TestWebKitAPI/Tests/WTF/Functional.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@102839 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/wtf/Functional.h
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WTF/Functional.cpp

index 0c6b14e..f72b916 100644 (file)
@@ -1,3 +1,15 @@
+2011-12-14  Anders Carlsson  <andersca@apple.com>
+
+        Work around a bug in the MSVC2005 compiler
+        https://bugs.webkit.org/show_bug.cgi?id=74550
+
+        Reviewed by Sam Weinig.
+
+        Add template parameters for the return types of the partial specializations of BoundFunctionImpl.
+
+        * wtf/Functional.h:
+        (WTF::R):
+
 2011-12-13  Jon Lee  <jonlee@apple.com>
 
         Enable notifications on Mac.
index 60e514c..3e4181c 100644 (file)
@@ -149,14 +149,14 @@ public:
 template<typename FunctionWrapper, typename FunctionType>
 class BoundFunctionImpl;
 
-template<typename FunctionWrapper> class BoundFunctionImpl<FunctionWrapper, typename FunctionWrapper::ResultType ()> : public FunctionImpl<typename FunctionWrapper::ResultType ()> {
+template<typename FunctionWrapper, typename R> class BoundFunctionImpl<FunctionWrapper, R ()> : public FunctionImpl<typename FunctionWrapper::ResultType ()> {
 public:
     explicit BoundFunctionImpl(FunctionWrapper functionWrapper)
         : m_functionWrapper(functionWrapper)
     {
     }
 
-    virtual typename FunctionWrapper::ResultType operator()()
+    virtual R operator()()
     {
         return m_functionWrapper();
     }
@@ -165,7 +165,7 @@ private:
     FunctionWrapper m_functionWrapper;
 };
 
-template<typename FunctionWrapper, typename P0> class BoundFunctionImpl<FunctionWrapper, typename FunctionWrapper::ResultType (P0)> : public FunctionImpl<typename FunctionWrapper::ResultType ()> {
+template<typename FunctionWrapper, typename R, typename P0> class BoundFunctionImpl<FunctionWrapper, R (P0)> : public FunctionImpl<typename FunctionWrapper::ResultType ()> {
 
 public:
     BoundFunctionImpl(FunctionWrapper functionWrapper, const P0& p0)
@@ -174,7 +174,7 @@ public:
     {
     }
 
-    virtual typename FunctionWrapper::ResultType operator()()
+    virtual R operator()()
     {
         return m_functionWrapper(m_p0);
     }
@@ -184,7 +184,7 @@ private:
     P0 m_p0;
 };
 
-template<typename FunctionWrapper, typename P0, typename P1> class BoundFunctionImpl<FunctionWrapper, typename FunctionWrapper::ResultType (P0, P1)> : public FunctionImpl<typename FunctionWrapper::ResultType ()> {
+template<typename FunctionWrapper, typename R, typename P0, typename P1> class BoundFunctionImpl<FunctionWrapper, R (P0, P1)> : public FunctionImpl<typename FunctionWrapper::ResultType ()> {
 public:
     BoundFunctionImpl(FunctionWrapper functionWrapper, const P0& p0, const P1& p1)
         : m_functionWrapper(functionWrapper)
index 0f3110e..c6fbad7 100644 (file)
@@ -1,3 +1,14 @@
+2011-12-14  Anders Carlsson  <andersca@apple.com>
+
+        Work around a bug in the MSVC2005 compiler
+        https://bugs.webkit.org/show_bug.cgi?id=74550
+
+        Reviewed by Sam Weinig.
+
+        Re-enable tests.
+
+        * TestWebKitAPI/Tests/WTF/Functional.cpp:
+
 2011-12-14  Csaba Osztrogon√°c  <ossy@webkit.org>
 
         [Qt] Test fonts are not used with Qt5
index 9f141b9..f9c8519 100644 (file)
@@ -28,8 +28,6 @@
 
 namespace TestWebKitAPI {
 
-#if !COMPILER(MSVC)
-
 static int returnFortyTwo()
 {
     return 42;
@@ -107,6 +105,4 @@ TEST(FunctionalTest, MemberFunctionBind)
     ASSERT_EQ(25, function2());
 }
 
-#endif // !COMPILER(MSVC)
-
 } // namespace TestWebKitAPI