Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 28 Jan 2013 00:26:55 +0000 (00:26 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 28 Jan 2013 00:26:55 +0000 (00:26 +0000)
https://bugs.webkit.org/show_bug.cgi?id=106740

Patch by Zoltan Arvai <zarvai@inf.u-szeged.hu> on 2013-01-27
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

* config.h:

Source/WebCore:

* WebCorePrefix.h:
* config.h:

Source/WebKit/win:

* WebKitPrefix.h:

Source/WebKit2:

* config.h:

Source/WTF:

Adding int64_t type atomicIncrement and atomicDecrement implementations for Windows
into Atomics.h required by WebKit2 after r139514. Separating WinCE implementation
that does not support WebKit2 and has no support for 64 bit interlocked methods.

Increasing WINVER and _WIN32_WINNT to XP SP2, because the 64 bit type interlocked methods
are not supported on previous versions on 32 bit target.

* config.h:
* wtf/Atomics.h:
(WTF):
(WTF::atomicIncrement):
(WTF::atomicDecrement):

Tools:

* DumpRenderTree/config.h:
* WinLauncher/stdafx.h:

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

15 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/config.h
Source/WTF/ChangeLog
Source/WTF/config.h
Source/WTF/wtf/Atomics.h
Source/WebCore/ChangeLog
Source/WebCore/WebCorePrefix.h
Source/WebCore/config.h
Source/WebKit/win/ChangeLog
Source/WebKit/win/WebKitPrefix.h
Source/WebKit2/ChangeLog
Source/WebKit2/config.h
Tools/ChangeLog
Tools/DumpRenderTree/config.h
Tools/WinLauncher/stdafx.h

index 7a5d68b..2888ed8 100644 (file)
@@ -1,3 +1,12 @@
+2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
+
+        Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
+        https://bugs.webkit.org/show_bug.cgi?id=106740
+
+        Reviewed by Benjamin Poulain.
+
+        * config.h:
+
 2013-01-25  Filip Pizlo  <fpizlo@apple.com>
 
         DFG variable event stream shouldn't use NodeIndex
index 485f1f4..7976ec4 100644 (file)
 #if OS(WINDOWS)
 
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0501
+#define _WIN32_WINNT 0x0502
 #endif
 
 #ifndef WINVER
-#define WINVER 0x0501
+#define WINVER 0x0502
 #endif
 
 // If we don't define these, they get defined in windef.h. 
index f1443df..9b38af6 100644 (file)
@@ -1,3 +1,23 @@
+2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
+
+        Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
+        https://bugs.webkit.org/show_bug.cgi?id=106740
+
+        Reviewed by Benjamin Poulain.
+
+        Adding int64_t type atomicIncrement and atomicDecrement implementations for Windows
+        into Atomics.h required by WebKit2 after r139514. Separating WinCE implementation
+        that does not support WebKit2 and has no support for 64 bit interlocked methods.
+
+        Increasing WINVER and _WIN32_WINNT to XP SP2, because the 64 bit type interlocked methods
+        are not supported on previous versions on 32 bit target.
+
+        * config.h:
+        * wtf/Atomics.h:
+        (WTF):
+        (WTF::atomicIncrement):
+        (WTF::atomicDecrement):
+
 2013-01-26  Andras Becsi  <andras.becsi@digia.com>
 
         Unreviewed fix after r140451 to make GIT-SVN repositories happy.
index 0876514..5552be3 100644 (file)
 #if OS(WINDOWS)
 
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0501
+#define _WIN32_WINNT 0x0502
 #endif
 
 #ifndef WINVER
-#define WINVER 0x0501
+#define WINVER 0x0502
 #endif
 
 // If we don't define these, they get defined in windef.h. 
index d6cd88d..d760f22 100644 (file)
@@ -76,12 +76,21 @@ namespace WTF {
 #if OS(WINDOWS)
 #define WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED 1
 
-#if COMPILER(MINGW) || COMPILER(MSVC7_OR_LOWER) || OS(WINCE)
+#if OS(WINCE)
+inline int atomicIncrement(int* addend) { return InterlockedIncrement(reinterpret_cast<long*>(addend)); }
+inline int atomicDecrement(int* addend) { return InterlockedDecrement(reinterpret_cast<long*>(addend)); }
+#elif COMPILER(MINGW) || COMPILER(MSVC7_OR_LOWER)
 inline int atomicIncrement(int* addend) { return InterlockedIncrement(reinterpret_cast<long*>(addend)); }
 inline int atomicDecrement(int* addend) { return InterlockedDecrement(reinterpret_cast<long*>(addend)); }
+
+inline int64_t atomicIncrement(int64_t* addend) { return InterlockedIncrement64(reinterpret_cast<long long*>(addend)); }
+inline int64_t atomicDecrement(int64_t* addend) { return InterlockedDecrement64(reinterpret_cast<long long*>(addend)); }
 #else
 inline int atomicIncrement(int volatile* addend) { return InterlockedIncrement(reinterpret_cast<long volatile*>(addend)); }
 inline int atomicDecrement(int volatile* addend) { return InterlockedDecrement(reinterpret_cast<long volatile*>(addend)); }
+
+inline int64_t atomicIncrement(int64_t volatile* addend) { return InterlockedIncrement64(reinterpret_cast<long long volatile*>(addend)); }
+inline int64_t atomicDecrement(int64_t volatile* addend) { return InterlockedDecrement64(reinterpret_cast<long long volatile*>(addend)); }
 #endif
 
 #elif OS(QNX)
index e25da05..02e4539 100644 (file)
@@ -1,3 +1,13 @@
+2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
+
+        Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
+        https://bugs.webkit.org/show_bug.cgi?id=106740
+
+        Reviewed by Benjamin Poulain.
+
+        * WebCorePrefix.h:
+        * config.h:
+
 2013-01-27  Jochen Eisinger  <jochen@chromium.org>
 
         Check notification permissions in the show() method
index 1334d87..495c6ec 100644 (file)
 #if defined(WIN32) || defined(_WIN32)
 
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0501
+#define _WIN32_WINNT 0x0502
 #endif
 
 #ifndef WINVER
-#define WINVER 0x0501
+#define WINVER 0x0502
 #endif
 
 #ifndef WTF_USE_CURL
index 9536fd6..df6ff92 100644 (file)
 #if OS(WINDOWS)
 
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0501
+#define _WIN32_WINNT 0x0502
 #endif
 
 #ifndef WINVER
-#define WINVER 0x0501
+#define WINVER 0x0502
 #endif
 
 // If we don't define these, they get defined in windef.h.
index 0493e9c..2f847c7 100644 (file)
@@ -1,3 +1,12 @@
+2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
+
+        Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
+        https://bugs.webkit.org/show_bug.cgi?id=106740
+
+        Reviewed by Benjamin Poulain.
+
+        * WebKitPrefix.h:
+
 2013-01-26  Alexey Proskuryakov  <ap@apple.com>
 
         Remove code for handling NetworkProcess authentication challenges in WebProcess
index 2ff6baf..92af4d0 100644 (file)
  */ 
 
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0500
+#define _WIN32_WINNT 0x0502
 #endif
 
 #ifndef WINVER
-#define WINVER 0x0500
+#define WINVER 0x0502
 #endif
 
 // If we don't define these, they get defined in windef.h.
index be4f84e..91e5ee7 100644 (file)
@@ -1,3 +1,12 @@
+2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
+
+        Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
+        https://bugs.webkit.org/show_bug.cgi?id=106740
+
+        Reviewed by Benjamin Poulain.
+
+        * config.h:
+
 2013-01-27  Sam Weinig  <sam@webkit.org>
 
         Add support for launching WebKit2 plugins using XPC
index 9995ea7..77b9a21 100644 (file)
@@ -62,11 +62,11 @@ static const type& name() \
 #if defined(WIN32) || defined(_WIN32)
 
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0500
+#define _WIN32_WINNT 0x0502
 #endif
 
 #ifndef WINVER
-#define WINVER 0x0500
+#define WINVER 0x0502
 #endif
 
 /* If we don't define these, they get defined in windef.h. */
index c006523..bc5bd7b 100644 (file)
@@ -1,3 +1,13 @@
+2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
+
+        Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
+        https://bugs.webkit.org/show_bug.cgi?id=106740
+
+        Reviewed by Benjamin Poulain.
+
+        * DumpRenderTree/config.h:
+        * WinLauncher/stdafx.h:
+
 2013-01-26  David Farler  <dfarler@apple.com>
 
         Makefiles should work for arbitrary SDKs and architectures on Apple ports
index ccff71c..c6ae105 100644 (file)
 #endif
 
 #undef _WIN32_WINNT
-#define _WIN32_WINNT 0x0500
+#define _WIN32_WINNT 0x0502
 
 #undef WINVER
-#define WINVER 0x0500
+#define WINVER 0x0502
 
 #undef _WINSOCKAPI_
 #define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h
index 86f76cc..b38e221 100644 (file)
 
 // Modify the following defines if you have to target a platform prior to the ones specified below.
 // Refer to MSDN for the latest info on corresponding values for different platforms.
-#ifndef WINVER                // Allow use of features specific to Windows XP or later.
-#define WINVER 0x0501        // Change this to the appropriate value to target other versions of Windows.
+#ifndef WINVER // Allow use of features specific to Windows XP SP2 or later.
+#define WINVER 0x0502 // Change this to the appropriate value to target other versions of Windows.
 #endif
 
-#ifndef _WIN32_WINNT        // Allow use of features specific to Windows XP or later.                   
-#define _WIN32_WINNT 0x0501    // Change this to the appropriate value to target other versions of Windows.
+#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP SP2 or later.
+#define _WIN32_WINNT 0x0502 // Change this to the appropriate value to target other versions of Windows.
 #endif                        
 
 #ifndef _WIN32_WINDOWS        // Allow use of features specific to Windows 98 or later.