diff options
author | rakuco <rakuco@FreeBSD.org> | 2014-05-06 04:47:22 +0800 |
---|---|---|
committer | rakuco <rakuco@FreeBSD.org> | 2014-05-06 04:47:22 +0800 |
commit | f42b5431e9f9d7047c4b854d2a8834d8899d3553 (patch) | |
tree | 2015cfd3cef2d1e1dc4c19e9e7c48b34e3510de3 /www/webkit-qt4 | |
parent | 1b4cc3ea3738568cd4efa8cc088bee2cbeeab9f0 (diff) | |
download | freebsd-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/Makefile | 1 | ||||
-rw-r--r-- | www/webkit-qt4/files/patch-libcxx | 369 | ||||
-rw-r--r-- | www/webkit-qt4/files/patch-src__3rdparty__webkit__Source__JavaScriptCore__wtf__Atomics.h | 66 |
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 - |