aboutsummaryrefslogtreecommitdiffstats
path: root/www/webkit-qt4
diff options
context:
space:
mode:
authorrakuco <rakuco@FreeBSD.org>2014-05-06 04:47:22 +0800
committerrakuco <rakuco@FreeBSD.org>2014-05-06 04:47:22 +0800
commitf42b5431e9f9d7047c4b854d2a8834d8899d3553 (patch)
tree2015cfd3cef2d1e1dc4c19e9e7c48b34e3510de3 /www/webkit-qt4
parent1b4cc3ea3738568cd4efa8cc088bee2cbeeab9f0 (diff)
downloadfreebsd-ports-gnome-f42b5431e9f9d7047c4b854d2a8834d8899d3553.tar.gz
freebsd-ports-gnome-f42b5431e9f9d7047c4b854d2a8834d8899d3553.tar.zst
freebsd-ports-gnome-f42b5431e9f9d7047c4b854d2a8834d8899d3553.zip
The KDE on FreeBSD team presents Qt 4.8.6.
This is a minor bugfix release that fortunately contains quite a few patches that we have upstreamed in the past months. See http://blog.qt.digia.com/blog/2014/04/24/qt-4-8-6-released/ for a summary of changes, and http://download.qt-project.org/official_releases/qt/4.8/4.8.6/changes-4.8.6 for a detailed list of changes. This patch contains commits by me, makc@ and Schaich Alonso. PR: ports/189213
Diffstat (limited to 'www/webkit-qt4')
-rw-r--r--www/webkit-qt4/Makefile1
-rw-r--r--www/webkit-qt4/files/patch-libcxx369
-rw-r--r--www/webkit-qt4/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h66
3 files changed, 7 insertions, 429 deletions
diff --git a/www/webkit-qt4/Makefile b/www/webkit-qt4/Makefile
index a795db62eec4..fb34e6aac9a9 100644
--- a/www/webkit-qt4/Makefile
+++ b/www/webkit-qt4/Makefile
@@ -3,7 +3,6 @@
PORTNAME= webkit
DISTVERSION= ${QT4_VERSION}
-PORTREVISION= 1
CATEGORIES= www
PKGNAMEPREFIX= qt4-
diff --git a/www/webkit-qt4/files/patch-libcxx b/www/webkit-qt4/files/patch-libcxx
index 1107c65e587f..ab695126e9fc 100644
--- a/www/webkit-qt4/files/patch-libcxx
+++ b/www/webkit-qt4/files/patch-libcxx
@@ -208,7 +208,7 @@ libc++ provides std::nullptr emulation, so we don't have to.
#define __has_feature(feature) 0
#endif
--#if __has_feature(cxx_nullptr) || (GCC_VERSION_AT_LEAST(4, 6, 0) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && _MSC_VER >= 1600 && !COMPILER(INTEL))
+-#if __has_feature(cxx_nullptr) || (GCC_VERSION_AT_LEAST(4, 6, 0) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && _MSC_VER >= 1600 && !COMPILER(INTEL)) || defined(_LIBCPP_VERSION)
+#include <ciso646>
+
+#if __has_feature(cxx_nullptr) || (GCC_VERSION_AT_LEAST(4, 6, 0) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && _MSC_VER >= 1600 && !COMPILER(INTEL)) || defined(_LIBCPP_VERSION)
@@ -231,288 +231,6 @@ libc++ provides std::nullptr emulation, so we don't have to.
document()->setParsing(false); // Make the doc think it's done, so it will apply xsl sheets.
document()->styleSelectorChanged(RecalcStyleImmediately);
document()->setParsing(true);
---- src/3rdparty/webkit/Source/WebCore/platform/Timer.cpp (revision 92555)
-+++ src/3rdparty/webkit/Source/WebCore/platform/Timer.cpp (revision 92556)
-@@ -41,6 +41,8 @@
-
- namespace WebCore {
-
-+class TimerHeapReference;
-+
- // Timers are stored in a heap data structure, used to implement a priority queue.
- // This allows us to efficiently determine which timer needs to fire the soonest.
- // Then we set a single shared system timer to fire at that time.
-@@ -53,113 +55,141 @@
- return threadGlobalData().threadTimers().timerHeap();
- }
-
--// Class to represent elements in the heap when calling the standard library heap algorithms.
--// Maintains the m_heapIndex value in the timers themselves, which allows us to do efficient
--// modification of the heap.
--class TimerHeapElement {
-+// ----------------
-+
-+class TimerHeapPointer {
- public:
-- explicit TimerHeapElement(int i)
-- : m_index(i)
-- , m_timer(timerHeap()[m_index])
-- {
-- checkConsistency();
-- }
-+ TimerHeapPointer(TimerBase** pointer) : m_pointer(pointer) { }
-+ TimerHeapReference operator*() const;
-+ TimerBase* operator->() const { return *m_pointer; }
-+private:
-+ TimerBase** m_pointer;
-+};
-
-- TimerHeapElement(const TimerHeapElement&);
-- TimerHeapElement& operator=(const TimerHeapElement&);
--
-- TimerBase* timer() const { return m_timer; }
--
-- void checkConsistency() const
-- {
-- ASSERT(m_index >= 0);
-- ASSERT(m_index < static_cast<int>(timerHeap().size()));
-- }
--
-+class TimerHeapReference {
-+public:
-+ TimerHeapReference(TimerBase*& reference) : m_reference(reference) { }
-+ operator TimerBase*() const { return m_reference; }
-+ TimerHeapPointer operator&() const { return &m_reference; }
-+ TimerHeapReference& operator=(TimerBase*);
-+ TimerHeapReference& operator=(TimerHeapReference);
- private:
-- TimerHeapElement();
--
-- int m_index;
-- TimerBase* m_timer;
-+ TimerBase*& m_reference;
- };
-
--inline TimerHeapElement::TimerHeapElement(const TimerHeapElement& o)
-- : m_index(-1), m_timer(o.timer())
-+inline TimerHeapReference TimerHeapPointer::operator*() const
- {
-+ return *m_pointer;
- }
-
--inline TimerHeapElement& TimerHeapElement::operator=(const TimerHeapElement& o)
-+inline TimerHeapReference& TimerHeapReference::operator=(TimerBase* timer)
- {
-- TimerBase* t = o.timer();
-- m_timer = t;
-- if (m_index != -1) {
-- checkConsistency();
-- timerHeap()[m_index] = t;
-- t->m_heapIndex = m_index;
-- }
-+ m_reference = timer;
-+ Vector<TimerBase*>& heap = timerHeap();
-+ if (&m_reference >= heap.data() && &m_reference < heap.data() + heap.size())
-+ timer->m_heapIndex = &m_reference - heap.data();
- return *this;
- }
-
--inline bool operator<(const TimerHeapElement& a, const TimerHeapElement& b)
-+inline TimerHeapReference& TimerHeapReference::operator=(TimerHeapReference b)
- {
-- // The comparisons below are "backwards" because the heap puts the largest
-- // element first and we want the lowest time to be the first one in the heap.
-- double aFireTime = a.timer()->m_nextFireTime;
-- double bFireTime = b.timer()->m_nextFireTime;
-- if (bFireTime != aFireTime)
-- return bFireTime < aFireTime;
--
-- // We need to look at the difference of the insertion orders instead of comparing the two
-- // outright in case of overflow.
-- unsigned difference = a.timer()->m_heapInsertionOrder - b.timer()->m_heapInsertionOrder;
-- return difference < UINT_MAX / 2;
-+ TimerBase* timer = b;
-+ return *this = timer;
- }
-
-+inline void swap(TimerHeapReference a, TimerHeapReference b)
-+{
-+ TimerBase* timerA = a;
-+ TimerBase* timerB = b;
-+
-+ // Invoke the assignment operator, since that takes care of updating m_heapIndex.
-+ a = timerB;
-+ b = timerA;
-+}
-+
- // ----------------
-
- // Class to represent iterators in the heap when calling the standard library heap algorithms.
--// Returns TimerHeapElement for elements in the heap rather than the TimerBase pointers themselves.
--class TimerHeapIterator : public iterator<random_access_iterator_tag, TimerHeapElement, int> {
-+// Uses a custom pointer and reference type that update indices for pointers in the heap.
-+class TimerHeapIterator : public iterator<random_access_iterator_tag, TimerBase*, ptrdiff_t, TimerHeapPointer, TimerHeapReference> {
- public:
-- TimerHeapIterator() : m_index(-1) { }
-- TimerHeapIterator(int i) : m_index(i) { checkConsistency(); }
-+ explicit TimerHeapIterator(TimerBase** pointer) : m_pointer(pointer) { checkConsistency(); }
-
-- TimerHeapIterator& operator++() { checkConsistency(); ++m_index; checkConsistency(); return *this; }
-- TimerHeapIterator operator++(int) { checkConsistency(); checkConsistency(1); return m_index++; }
-+ TimerHeapIterator& operator++() { checkConsistency(); ++m_pointer; checkConsistency(); return *this; }
-+ TimerHeapIterator operator++(int) { checkConsistency(1); return TimerHeapIterator(m_pointer++); }
-
-- TimerHeapIterator& operator--() { checkConsistency(); --m_index; checkConsistency(); return *this; }
-- TimerHeapIterator operator--(int) { checkConsistency(); checkConsistency(-1); return m_index--; }
-+ TimerHeapIterator& operator--() { checkConsistency(); --m_pointer; checkConsistency(); return *this; }
-+ TimerHeapIterator operator--(int) { checkConsistency(-1); return TimerHeapIterator(m_pointer--); }
-
-- TimerHeapIterator& operator+=(int i) { checkConsistency(); m_index += i; checkConsistency(); return *this; }
-- TimerHeapIterator& operator-=(int i) { checkConsistency(); m_index -= i; checkConsistency(); return *this; }
-+ TimerHeapIterator& operator+=(ptrdiff_t i) { checkConsistency(); m_pointer += i; checkConsistency(); return *this; }
-+ TimerHeapIterator& operator-=(ptrdiff_t i) { checkConsistency(); m_pointer -= i; checkConsistency(); return *this; }
-
-- TimerHeapElement operator*() const { return TimerHeapElement(m_index); }
-- TimerHeapElement operator[](int i) const { return TimerHeapElement(m_index + i); }
-+ TimerHeapReference operator*() const { return TimerHeapReference(*m_pointer); }
-+ TimerHeapReference operator[](ptrdiff_t i) const { return TimerHeapReference(m_pointer[i]); }
-+ TimerBase* operator->() const { return *m_pointer; }
-
-- int index() const { return m_index; }
--
-- void checkConsistency(int offset = 0) const
-+private:
-+ void checkConsistency(ptrdiff_t offset = 0) const
- {
-- ASSERT_UNUSED(offset, m_index + offset >= 0);
-- ASSERT_UNUSED(offset, m_index + offset <= static_cast<int>(timerHeap().size()));
-+ ASSERT(m_pointer >= timerHeap().data());
-+ ASSERT(m_pointer <= timerHeap().data() + timerHeap().size());
-+ ASSERT_UNUSED(offset, m_pointer + offset >= timerHeap().data());
-+ ASSERT_UNUSED(offset, m_pointer + offset <= timerHeap().data() + timerHeap().size());
- }
-
--private:
-- int m_index;
-+ friend bool operator==(TimerHeapIterator, TimerHeapIterator);
-+ friend bool operator!=(TimerHeapIterator, TimerHeapIterator);
-+ friend bool operator<(TimerHeapIterator, TimerHeapIterator);
-+ friend bool operator>(TimerHeapIterator, TimerHeapIterator);
-+ friend bool operator<=(TimerHeapIterator, TimerHeapIterator);
-+ friend bool operator>=(TimerHeapIterator, TimerHeapIterator);
-+
-+ friend TimerHeapIterator operator+(TimerHeapIterator, size_t);
-+ friend TimerHeapIterator operator+(size_t, TimerHeapIterator);
-+
-+ friend TimerHeapIterator operator-(TimerHeapIterator, size_t);
-+ friend ptrdiff_t operator-(TimerHeapIterator, TimerHeapIterator);
-+
-+ TimerBase** m_pointer;
- };
-
--inline bool operator==(TimerHeapIterator a, TimerHeapIterator b) { return a.index() == b.index(); }
--inline bool operator!=(TimerHeapIterator a, TimerHeapIterator b) { return a.index() != b.index(); }
--inline bool operator<(TimerHeapIterator a, TimerHeapIterator b) { return a.index() < b.index(); }
-+inline bool operator==(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer == b.m_pointer; }
-+inline bool operator!=(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer != b.m_pointer; }
-+inline bool operator<(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer < b.m_pointer; }
-+inline bool operator>(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer > b.m_pointer; }
-+inline bool operator<=(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer <= b.m_pointer; }
-+inline bool operator>=(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer >= b.m_pointer; }
-
--inline TimerHeapIterator operator+(TimerHeapIterator a, int b) { return a.index() + b; }
--inline TimerHeapIterator operator+(int a, TimerHeapIterator b) { return a + b.index(); }
-+inline TimerHeapIterator operator+(TimerHeapIterator a, size_t b) { return TimerHeapIterator(a.m_pointer + b); }
-+inline TimerHeapIterator operator+(size_t a, TimerHeapIterator b) { return TimerHeapIterator(a + b.m_pointer); }
-
--inline TimerHeapIterator operator-(TimerHeapIterator a, int b) { return a.index() - b; }
--inline int operator-(TimerHeapIterator a, TimerHeapIterator b) { return a.index() - b.index(); }
-+inline TimerHeapIterator operator-(TimerHeapIterator a, size_t b) { return TimerHeapIterator(a.m_pointer - b); }
-+inline ptrdiff_t operator-(TimerHeapIterator a, TimerHeapIterator b) { return a.m_pointer - b.m_pointer; }
-
- // ----------------
-
-+class TimerHeapLessThanFunction {
-+public:
-+ bool operator()(TimerBase*, TimerBase*) const;
-+};
-+
-+inline bool TimerHeapLessThanFunction::operator()(TimerBase* a, TimerBase* b) const
-+{
-+ // The comparisons below are "backwards" because the heap puts the largest
-+ // element first and we want the lowest time to be the first one in the heap.
-+ double aFireTime = a->m_nextFireTime;
-+ double bFireTime = b->m_nextFireTime;
-+ if (bFireTime != aFireTime)
-+ return bFireTime < aFireTime;
-+
-+ // We need to look at the difference of the insertion orders instead of comparing the two
-+ // outright in case of overflow.
-+ unsigned difference = a->m_heapInsertionOrder - b->m_heapInsertionOrder;
-+ return difference < numeric_limits<unsigned>::max() / 2;
-+}
-+
-+// ----------------
-+
- TimerBase::TimerBase()
- : m_nextFireTime(0)
- , m_repeatInterval(0)
-@@ -225,7 +255,8 @@
- {
- ASSERT(m_nextFireTime != 0);
- checkHeapIndex();
-- push_heap(TimerHeapIterator(0), TimerHeapIterator(m_heapIndex + 1));
-+ TimerBase** heapData = timerHeap().data();
-+ push_heap(TimerHeapIterator(heapData), TimerHeapIterator(heapData + m_heapIndex + 1), TimerHeapLessThanFunction());
- checkHeapIndex();
- }
-
-@@ -274,7 +305,9 @@
- {
- ASSERT(this == timerHeap().first());
- checkHeapIndex();
-- pop_heap(TimerHeapIterator(0), TimerHeapIterator(timerHeap().size()));
-+ Vector<TimerBase*>& heap = timerHeap();
-+ TimerBase** heapData = heap.data();
-+ pop_heap(TimerHeapIterator(heapData), TimerHeapIterator(heapData + heap.size()), TimerHeapLessThanFunction());
- checkHeapIndex();
- ASSERT(this == timerHeap().last());
- }
---- src/3rdparty/webkit/Source/WebCore/platform/Timer.h (revision 92555)
-+++ src/3rdparty/webkit/Source/WebCore/platform/Timer.h (revision 92556)
-@@ -84,9 +84,9 @@
- ThreadIdentifier m_thread;
- #endif
-
-- friend class TimerHeapElement;
- friend class ThreadTimers;
-- friend bool operator<(const TimerHeapElement&, const TimerHeapElement&);
-+ friend class TimerHeapLessThanFunction;
-+ friend class TimerHeapReference;
- };
-
- template <typename TimerFiredClass> class Timer : public TimerBase {
---- src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp (revision 86531)
-+++ src/3rdparty/webkit/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp (revision 86532)
-@@ -944,7 +944,7 @@
-
- GraphicsLayerQt::GraphicsLayerQt(GraphicsLayerClient* client)
- : GraphicsLayer(client)
-- , m_impl(PassOwnPtr<GraphicsLayerQtImpl>(new GraphicsLayerQtImpl(this)))
-+ , m_impl(adoptPtr(new GraphicsLayerQtImpl(this)))
- {
- }
-
-@@ -955,7 +955,7 @@
- // This is the hook for WebCore compositor to know that Qt implements compositing with GraphicsLayerQt.
- PassOwnPtr<GraphicsLayer> GraphicsLayer::create(GraphicsLayerClient* client)
- {
-- return new GraphicsLayerQt(client);
-+ return adoptPtr(new GraphicsLayerQt(client));
- }
-
- /* \reimp (GraphicsLayer.h): The current size might change, thus we need to update the whole display.
-
--- src/3rdparty/webkit/Source/WebCore/loader/icon/IconRecord.h
+++ src/3rdparty/webkit/Source/WebCore/loader/icon/IconRecord.h
@@ -38,7 +38,7 @@
@@ -548,15 +266,6 @@ libc++ provides std::nullptr emulation, so we don't have to.
--- src/3rdparty/webkit/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp (revision 86529)
+++ src/3rdparty/webkit/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp (revision 86530)
-@@ -235,7 +235,7 @@
- resetConnections();
- QNetworkReply* reply = m_reply;
- m_reply = 0;
-- m_sniffer = 0;
-+ m_sniffer = nullptr;
-
- reply->setParent(0);
- return reply;
@@ -285,7 +285,7 @@
Q_ASSERT(!m_sniffer);
@@ -566,58 +275,7 @@ libc++ provides std::nullptr emulation, so we don't have to.
if (m_sniffer->isFinished()) {
receiveSniffedMIMEType();
-@@ -300,7 +300,7 @@
- Q_ASSERT(m_sniffer);
-
- m_sniffedMIMEType = m_sniffer->mimeType();
-- m_sniffer = 0;
-+ m_sniffer = nullptr;
-
- emitMetaDataChanged();
- }
-@@ -417,7 +417,7 @@
- return 0;
-
- QNetworkReply* reply = m_replyWrapper->release();
-- m_replyWrapper = 0;
-+ m_replyWrapper = nullptr;
- return reply;
- }
-
-@@ -440,12 +440,12 @@
-
- ResourceHandleClient* client = m_resourceHandle->client();
- if (!client) {
-- m_replyWrapper = 0;
-+ m_replyWrapper = nullptr;
- return;
- }
-
- if (m_replyWrapper->wasRedirected()) {
-- m_replyWrapper = 0;
-+ m_replyWrapper = nullptr;
- m_queue.push(&QNetworkReplyHandler::start);
- return;
- }
-@@ -465,7 +465,7 @@
- }
- }
-
-- m_replyWrapper = 0;
-+ m_replyWrapper = nullptr;
- }
-
- void QNetworkReplyHandler::sendResponseIfNeeded()
-@@ -539,7 +539,7 @@
- newUrl.toString(),
- QCoreApplication::translate("QWebPage", "Redirection limit reached"));
- client->didFail(m_resourceHandle, error);
-- m_replyWrapper = 0;
-+ m_replyWrapper = nullptr;
- return;
- }
-
-@@ -660,7 +660,7 @@
+@@ -666,7 +666,7 @@
if (!reply)
return;
@@ -641,16 +299,7 @@ libc++ provides std::nullptr emulation, so we don't have to.
--- src/3rdparty/webkit/Source/WebKit/qt/Api/qgraphicswebview.cpp (revision 86532)
+++ src/3rdparty/webkit/Source/WebKit/qt/Api/qgraphicswebview.cpp (revision 86533)
-@@ -473,7 +473,7 @@
- return;
-
- page->d->view.clear();
-- page->d->client = 0;
-+ page->d->client = nullptr;
-
- // if the page was created by us, we own it and need to
- // destroy it as well.
-@@ -506,7 +506,7 @@
+@@ -504,7 +504,7 @@
if (!d->page)
return;
@@ -927,18 +576,6 @@ libc++ provides std::nullptr emulation, so we don't have to.
, m_destroyingInspectorView(false)
--- src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp (revision 86536)
+++ src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp (revision 86550)
-@@ -73,9 +73,9 @@
- #if ENABLE(NOTIFICATIONS)
-
- #ifndef QT_NO_SYSTEMTRAYICON
-- m_notificationIcon = 0;
-+ m_notificationIcon = nullptr;
- #endif
-- m_presenter = 0;
-+ m_presenter = nullptr;
- #endif
- }
-
@@ -211,9 +211,9 @@
QPixmap pixmap;
if (bytes.length() && pixmap.loadFromData(bytes)) {
diff --git a/www/webkit-qt4/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h b/www/webkit-qt4/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h
index 3e08330c3868..4fc6d3251ea5 100644
--- a/www/webkit-qt4/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h
+++ b/www/webkit-qt4/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h
@@ -1,49 +1,5 @@
-From e3c44790065894f4e7f98ab097fce22c5bcbbd0a Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <rakuco@FreeBSD.org>
-Date: Tue, 2 Jul 2013 13:48:28 +0300
-Subject: [PATCH] Bring in WebKit revisions 139553 and 139921.
-
-They are primarily useful for getting rid of some libstdc++-specific
-includes which break the build with libc++, and also for simplifying the
-code and removing a Darwin-specific code path.
-
-r139553 by ossy@webkit.org:
- Use sync_add_and_fetch instead of gnu_cxx::exchange_and_add
- https://bugs.webkit.org/show_bug.cgi?id=106729
-
- After r139514 we need atomicIncrement(int64_t volatile*) for all
- platform. Now the GCC implementation of atomicIncrement() is based on
- gnu_cxx::exchange_and_add, which doesn't support int64_t type, but
- sync_add_and_fetch does.
-
- Reviewed by Benjamin Poulain.
-
-r139921 by benjamin@webkit.org:
- Use GCC's implementation of atomicIncrement/Decrement on Mac
- https://bugs.webkit.org/show_bug.cgi?id=106976
-
- Reviewed by Filip Pizlo.
-
- wtf/Atomics.h: GCC and LLVM have builtin for atomic ADD and SUB:
- sync_add_and_fetch, sync_sub_and_fetch.
-
- Using them let the compiler just generate the atomic operations inline
- instead of generating a function call to LibC. It also simplify the
- code a bit.
-
-Cherry-picked from qtwebkit/0baf197 and qtwebkit/801fc96. I'm cherry-picking
-both revisions together to match what was done in 0de22e80.
-
-Change-Id: Ie5c1067980662ff04e8e36d8cf6e9459b7c46aab
-Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
----
- .../webkit/Source/JavaScriptCore/wtf/Atomics.h | 18 ++----------------
- 1 file changed, 2 insertions(+), 16 deletions(-)
-
-diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h
-index bce5fba..acf0e5a 100644
---- src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h
-+++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h
+--- src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h.orig 2014-04-10 20:37:11.000000000 +0200
++++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h 2014-04-24 16:11:40.000000000 +0200
@@ -63,18 +63,10 @@
#if OS(WINDOWS)
@@ -63,12 +19,12 @@ index bce5fba..acf0e5a 100644
#endif
namespace WTF {
-@@ -90,12 +82,6 @@ inline int atomicIncrement(int volatile* addend) { return InterlockedIncrement(r
+@@ -90,12 +82,6 @@
inline int atomicDecrement(int volatile* addend) { return InterlockedDecrement(reinterpret_cast<long volatile*>(addend)); }
#endif
-#elif OS(DARWIN)
--#define WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED 1
+-#define WTF_USE_LOCKFREE_THREADSAFESHARED 1
-
-inline int atomicIncrement(int volatile* addend) { return OSAtomicIncrement32Barrier(const_cast<int*>(addend)); }
-inline int atomicDecrement(int volatile* addend) { return OSAtomicDecrement32Barrier(const_cast<int*>(addend)); }
@@ -76,17 +32,3 @@ index bce5fba..acf0e5a 100644
#elif OS(ANDROID)
inline int atomicIncrement(int volatile* addend) { return android_atomic_inc(addend); }
-@@ -109,8 +95,8 @@ inline int atomicDecrement(int volatile* addend) { return (int) atomic_sub_value
- #elif COMPILER(GCC) && !CPU(SPARC64) && !OS(SYMBIAN) // sizeof(_Atomic_word) != sizeof(int) on sparc64 gcc
- #define WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED 1
-
--inline int atomicIncrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, 1) + 1; }
--inline int atomicDecrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, -1) - 1; }
-+inline int atomicIncrement(int volatile* addend) { return __sync_add_and_fetch(addend, 1); }
-+inline int atomicDecrement(int volatile* addend) { return __sync_sub_and_fetch(addend, 1); }
-
- #endif
-
---
-1.8.4
-