diff options
author | Martin Stransky <stransky@redhat.com> | 2020-08-21 11:14:37 +0200 |
---|---|---|
committer | Martin Stransky <stransky@redhat.com> | 2020-08-21 11:14:37 +0200 |
commit | 50205986b227cdbdcfdae2f03aa44ae5ffb47acb (patch) | |
tree | 463cafb79a44553cf743e27378cda11acb8e5fc1 /mozilla-1337988.patch | |
parent | Disabled WebGL Dmabuf backend by default (diff) | |
download | librewolf-fedora-ff-50205986b227cdbdcfdae2f03aa44ae5ffb47acb.tar.gz librewolf-fedora-ff-50205986b227cdbdcfdae2f03aa44ae5ffb47acb.tar.bz2 librewolf-fedora-ff-50205986b227cdbdcfdae2f03aa44ae5ffb47acb.zip |
spec cleanup
Diffstat (limited to 'mozilla-1337988.patch')
-rw-r--r-- | mozilla-1337988.patch | 496 |
1 files changed, 0 insertions, 496 deletions
diff --git a/mozilla-1337988.patch b/mozilla-1337988.patch deleted file mode 100644 index 8c40445..0000000 --- a/mozilla-1337988.patch +++ /dev/null @@ -1,496 +0,0 @@ -diff -up firefox-56.0/dom/plugins/base/nsJSNPRuntime.cpp.1337988 firefox-56.0/dom/plugins/base/nsJSNPRuntime.cpp ---- firefox-56.0/dom/plugins/base/nsJSNPRuntime.cpp.1337988 2017-09-14 22:15:56.000000000 +0200 -+++ firefox-56.0/dom/plugins/base/nsJSNPRuntime.cpp 2017-09-25 10:34:11.205611698 +0200 -@@ -1719,7 +1719,7 @@ NPObjWrapper_ObjectMoved(JSObject *obj, - auto entry = - static_cast<NPObjWrapperHashEntry*>(sNPObjWrappers->Search(npobj)); - MOZ_ASSERT(entry && entry->mJSObj); -- MOZ_ASSERT(entry->mJSObj == old); -+ MOZ_ASSERT(entry->mJSObj.unbarrieredGetPtr() == old); - entry->mJSObj = obj; - } - -diff -up firefox-56.0/js/ipc/JavaScriptShared.cpp.1337988 firefox-56.0/js/ipc/JavaScriptShared.cpp ---- firefox-56.0/js/ipc/JavaScriptShared.cpp.1337988 2017-07-31 18:20:47.000000000 +0200 -+++ firefox-56.0/js/ipc/JavaScriptShared.cpp 2017-09-25 10:34:11.205611698 +0200 -@@ -101,7 +101,7 @@ IdToObjectMap::has(const ObjectId& id, c - auto p = table_.lookup(id); - if (!p) - return false; -- return p->value() == obj; -+ return p->value().unbarrieredGet() == obj; - } - #endif - -diff -up firefox-56.0/js/public/RootingAPI.h.1337988 firefox-56.0/js/public/RootingAPI.h ---- firefox-56.0/js/public/RootingAPI.h.1337988 2017-07-31 18:20:47.000000000 +0200 -+++ firefox-56.0/js/public/RootingAPI.h 2017-09-25 10:34:11.206611695 +0200 -@@ -148,6 +148,10 @@ template<typename T> - struct PersistentRootedMarker; - } /* namespace gc */ - -+#define DECLARE_POINTER_COMPARISON_OPS(T) \ -+ bool operator==(const T& other) const { return get() == other; } \ -+ bool operator!=(const T& other) const { return get() != other; } -+ - // Important: Return a reference so passing a Rooted<T>, etc. to - // something that takes a |const T&| is not a GC hazard. - #define DECLARE_POINTER_CONSTREF_OPS(T) \ -@@ -237,8 +241,6 @@ class Heap : public js::HeapBase<T, Heap - static_assert(js::IsHeapConstructibleType<T>::value, - "Type T must be a public GC pointer type"); - public: -- using ElementType = T; -- - Heap() { - static_assert(sizeof(T) == sizeof(Heap<T>), - "Heap<T> must be binary compatible with T."); -@@ -385,8 +387,6 @@ template <typename T> - class TenuredHeap : public js::HeapBase<T, TenuredHeap<T>> - { - public: -- using ElementType = T; -- - TenuredHeap() : bits(0) { - static_assert(sizeof(T) == sizeof(TenuredHeap<T>), - "TenuredHeap<T> must be binary compatible with T."); -@@ -394,6 +394,9 @@ class TenuredHeap : public js::HeapBase< - explicit TenuredHeap(T p) : bits(0) { setPtr(p); } - explicit TenuredHeap(const TenuredHeap<T>& p) : bits(0) { setPtr(p.getPtr()); } - -+ bool operator==(const TenuredHeap<T>& other) { return bits == other.bits; } -+ bool operator!=(const TenuredHeap<T>& other) { return bits != other.bits; } -+ - void setPtr(T newPtr) { - MOZ_ASSERT((reinterpret_cast<uintptr_t>(newPtr) & flagsMask) == 0); - if (newPtr) -@@ -470,8 +473,6 @@ class MOZ_NONHEAP_CLASS Handle : public - friend class JS::MutableHandle<T>; - - public: -- using ElementType = T; -- - /* Creates a handle from a handle of a type convertible to T. */ - template <typename S> - MOZ_IMPLICIT Handle(Handle<S> handle, -@@ -533,6 +534,7 @@ class MOZ_NONHEAP_CLASS Handle : public - MOZ_IMPLICIT Handle(MutableHandle<S>& root, - typename mozilla::EnableIf<mozilla::IsConvertible<S, T>::value, int>::Type dummy = 0); - -+ DECLARE_POINTER_COMPARISON_OPS(T); - DECLARE_POINTER_CONSTREF_OPS(T); - DECLARE_NONPOINTER_ACCESSOR_METHODS(*ptr); - -@@ -559,8 +561,6 @@ template <typename T> - class MOZ_STACK_CLASS MutableHandle : public js::MutableHandleBase<T, MutableHandle<T>> - { - public: -- using ElementType = T; -- - inline MOZ_IMPLICIT MutableHandle(Rooted<T>* root); - inline MOZ_IMPLICIT MutableHandle(PersistentRooted<T>* root); - -@@ -589,6 +589,7 @@ class MOZ_STACK_CLASS MutableHandle : pu - return h; - } - -+ DECLARE_POINTER_COMPARISON_OPS(T); - DECLARE_POINTER_CONSTREF_OPS(T); - DECLARE_NONPOINTER_ACCESSOR_METHODS(*ptr); - DECLARE_NONPOINTER_MUTABLE_ACCESSOR_METHODS(*ptr); -@@ -805,8 +806,6 @@ class MOZ_RAII Rooted : public js::Roote - } - - public: -- using ElementType = T; -- - template <typename RootingContext> - explicit Rooted(const RootingContext& cx) - : ptr(GCPolicy<T>::initial()) -@@ -839,6 +838,7 @@ class MOZ_RAII Rooted : public js::Roote - ptr = mozilla::Move(value); - } - -+ DECLARE_POINTER_COMPARISON_OPS(T); - DECLARE_POINTER_CONSTREF_OPS(T); - DECLARE_POINTER_ASSIGN_OPS(Rooted, T); - DECLARE_NONPOINTER_ACCESSOR_METHODS(ptr); -@@ -903,14 +903,13 @@ template <typename T> - class MOZ_RAII FakeRooted : public RootedBase<T, FakeRooted<T>> - { - public: -- using ElementType = T; -- - template <typename CX> - explicit FakeRooted(CX* cx) : ptr(JS::GCPolicy<T>::initial()) {} - - template <typename CX> - FakeRooted(CX* cx, T initial) : ptr(initial) {} - -+ DECLARE_POINTER_COMPARISON_OPS(T); - DECLARE_POINTER_CONSTREF_OPS(T); - DECLARE_POINTER_ASSIGN_OPS(FakeRooted, T); - DECLARE_NONPOINTER_ACCESSOR_METHODS(ptr); -@@ -931,8 +930,6 @@ template <typename T> - class FakeMutableHandle : public js::MutableHandleBase<T, FakeMutableHandle<T>> - { - public: -- using ElementType = T; -- - MOZ_IMPLICIT FakeMutableHandle(T* t) { - ptr = t; - } -@@ -1124,8 +1121,6 @@ class PersistentRooted : public js::Root - } - - public: -- using ElementType = T; -- - PersistentRooted() : ptr(GCPolicy<T>::initial()) {} - - explicit PersistentRooted(RootingContext* cx) -@@ -1203,6 +1198,7 @@ class PersistentRooted : public js::Root - } - } - -+ DECLARE_POINTER_COMPARISON_OPS(T); - DECLARE_POINTER_CONSTREF_OPS(T); - DECLARE_POINTER_ASSIGN_OPS(PersistentRooted, T); - DECLARE_NONPOINTER_ACCESSOR_METHODS(ptr); -@@ -1234,8 +1230,6 @@ class JS_PUBLIC_API(ObjectPtr) - Heap<JSObject*> value; - - public: -- using ElementType = JSObject*; -- - ObjectPtr() : value(nullptr) {} - - explicit ObjectPtr(JSObject* obj) : value(obj) {} -@@ -1342,177 +1336,6 @@ Swap(JS::TenuredHeap<T>& aX, JS::Tenured - - } /* namespace mozilla */ - --namespace js { --namespace detail { -- --// DefineComparisonOps is a trait which selects which wrapper classes to define --// operator== and operator!= for. It supplies a getter function to extract the --// value to compare. This is used to avoid triggering the automatic read --// barriers where appropriate. --// --// If DefineComparisonOps is not specialized for a particular wrapper you may --// get errors such as 'invalid operands to binary expression' or 'no match for --// operator==' when trying to compare against instances of the wrapper. -- --template <typename T> --struct DefineComparisonOps : mozilla::FalseType {}; -- --template <typename T> --struct DefineComparisonOps<JS::Heap<T>> : mozilla::TrueType { -- static const T& get(const JS::Heap<T>& v) { return v.unbarrieredGet(); } --}; -- --template <typename T> --struct DefineComparisonOps<JS::TenuredHeap<T>> : mozilla::TrueType { -- static const T get(const JS::TenuredHeap<T>& v) { return v.unbarrieredGetPtr(); } --}; -- --template <> --struct DefineComparisonOps<JS::ObjectPtr> : mozilla::TrueType { -- static const JSObject* get(const JS::ObjectPtr& v) { return v.unbarrieredGet(); } --}; -- --template <typename T> --struct DefineComparisonOps<JS::Rooted<T>> : mozilla::TrueType { -- static const T& get(const JS::Rooted<T>& v) { return v.get(); } --}; -- --template <typename T> --struct DefineComparisonOps<JS::Handle<T>> : mozilla::TrueType { -- static const T& get(const JS::Handle<T>& v) { return v.get(); } --}; -- --template <typename T> --struct DefineComparisonOps<JS::MutableHandle<T>> : mozilla::TrueType { -- static const T& get(const JS::MutableHandle<T>& v) { return v.get(); } --}; -- --template <typename T> --struct DefineComparisonOps<JS::PersistentRooted<T>> : mozilla::TrueType { -- static const T& get(const JS::PersistentRooted<T>& v) { return v.get(); } --}; -- --template <typename T> --struct DefineComparisonOps<js::FakeRooted<T>> : mozilla::TrueType { -- static const T& get(const js::FakeRooted<T>& v) { return v.get(); } --}; -- --template <typename T> --struct DefineComparisonOps<js::FakeMutableHandle<T>> : mozilla::TrueType { -- static const T& get(const js::FakeMutableHandle<T>& v) { return v.get(); } --}; -- --} /* namespace detail */ --} /* namespace js */ -- --// Overload operator== and operator!= for all types with the DefineComparisonOps --// trait using the supplied getter. --// --// There are four cases: -- --// Case 1: comparison between two wrapper objects. -- --template <typename T, typename U> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- js::detail::DefineComparisonOps<U>::value, bool>::Type --operator==(const T& a, const U& b) { -- return js::detail::DefineComparisonOps<T>::get(a) == js::detail::DefineComparisonOps<U>::get(b); --} -- --template <typename T, typename U> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- js::detail::DefineComparisonOps<U>::value, bool>::Type --operator!=(const T& a, const U& b) { -- return !(a == b); --} -- --// Case 2: comparison between a wrapper object and its unwrapped element type. -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value, bool>::Type --operator==(const T& a, const typename T::ElementType& b) { -- return js::detail::DefineComparisonOps<T>::get(a) == b; --} -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value, bool>::Type --operator!=(const T& a, const typename T::ElementType& b) { -- return !(a == b); --} -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value, bool>::Type --operator==(const typename T::ElementType& a, const T& b) { -- return a == js::detail::DefineComparisonOps<T>::get(b); --} -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value, bool>::Type --operator!=(const typename T::ElementType& a, const T& b) { -- return !(a == b); --} -- --// Case 3: For pointer wrappers, comparison between the wrapper and a const --// element pointer. -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type --operator==(const typename mozilla::RemovePointer<typename T::ElementType>::Type* a, const T& b) { -- return a == js::detail::DefineComparisonOps<T>::get(b); --} -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type --operator!=(const typename mozilla::RemovePointer<typename T::ElementType>::Type* a, const T& b) { -- return !(a == b); --} -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type --operator==(const T& a, const typename mozilla::RemovePointer<typename T::ElementType>::Type* b) { -- return js::detail::DefineComparisonOps<T>::get(a) == b; --} -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type --operator!=(const T& a, const typename mozilla::RemovePointer<typename T::ElementType>::Type* b) { -- return !(a == b); --} -- --// Case 4: For pointer wrappers, comparison between the wrapper and nullptr. -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type --operator==(std::nullptr_t a, const T& b) { -- return a == js::detail::DefineComparisonOps<T>::get(b); --} -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type --operator!=(std::nullptr_t a, const T& b) { -- return !(a == b); --} -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type --operator==(const T& a, std::nullptr_t b) { -- return js::detail::DefineComparisonOps<T>::get(a) == b; --} -- --template <typename T> --typename mozilla::EnableIf<js::detail::DefineComparisonOps<T>::value && -- mozilla::IsPointer<typename T::ElementType>::value, bool>::Type --operator!=(const T& a, std::nullptr_t b) { -- return !(a == b); --} -- - #undef DELETE_ASSIGNMENT_OPS - - #endif /* js_RootingAPI_h */ -diff -up firefox-56.0/js/src/gc/Barrier.h.1337988 firefox-56.0/js/src/gc/Barrier.h ---- firefox-56.0/js/src/gc/Barrier.h.1337988 2017-09-14 22:16:01.000000000 +0200 -+++ firefox-56.0/js/src/gc/Barrier.h 2017-09-25 10:34:11.206611695 +0200 -@@ -353,8 +353,8 @@ class WriteBarrieredBase : public Barrie - explicit WriteBarrieredBase(const T& v) : BarrieredBase<T>(v) {} - - public: -- using ElementType = T; - -+ DECLARE_POINTER_COMPARISON_OPS(T); - DECLARE_POINTER_CONSTREF_OPS(T); - - // Use this if the automatic coercion to T isn't working. -@@ -612,13 +612,14 @@ class ReadBarriered : public ReadBarrier - return *this; - } - -- const T& get() const { -- if (InternalBarrierMethods<T>::isMarkable(this->value)) -- this->read(); -+ const T get() const { -+ if (!InternalBarrierMethods<T>::isMarkable(this->value)) -+ return JS::GCPolicy<T>::initial(); -+ this->read(); - return this->value; - } - -- const T& unbarrieredGet() const { -+ const T unbarrieredGet() const { - return this->value; - } - -@@ -626,9 +627,9 @@ class ReadBarriered : public ReadBarrier - return bool(this->value); - } - -- operator const T&() const { return get(); } -+ operator const T() const { return get(); } - -- const T& operator->() const { return get(); } -+ const T operator->() const { return get(); } - - T* unsafeGet() { return &this->value; } - T const* unsafeGet() const { return &this->value; } -@@ -955,35 +956,6 @@ typedef ReadBarriered<WasmTableObject*> - - typedef ReadBarriered<Value> ReadBarrieredValue; - --namespace detail { -- --template <typename T> --struct DefineComparisonOps<PreBarriered<T>> : mozilla::TrueType { -- static const T& get(const PreBarriered<T>& v) { return v.get(); } --}; -- --template <typename T> --struct DefineComparisonOps<GCPtr<T>> : mozilla::TrueType { -- static const T& get(const GCPtr<T>& v) { return v.get(); } --}; -- --template <typename T> --struct DefineComparisonOps<HeapPtr<T>> : mozilla::TrueType { -- static const T& get(const HeapPtr<T>& v) { return v.get(); } --}; -- --template <typename T> --struct DefineComparisonOps<ReadBarriered<T>> : mozilla::TrueType { -- static const T& get(const ReadBarriered<T>& v) { return v.unbarrieredGet(); } --}; -- --template <> --struct DefineComparisonOps<HeapSlot> : mozilla::TrueType { -- static const Value& get(const HeapSlot& v) { return v.get(); } --}; -- --} /* namespace detail */ -- - } /* namespace js */ - - #endif /* gc_Barrier_h */ -diff -up firefox-56.0/js/src/jsapi-tests/testGCHeapPostBarriers.cpp.1337988 firefox-56.0/js/src/jsapi-tests/testGCHeapPostBarriers.cpp ---- firefox-56.0/js/src/jsapi-tests/testGCHeapPostBarriers.cpp.1337988 2017-09-14 22:16:02.000000000 +0200 -+++ firefox-56.0/js/src/jsapi-tests/testGCHeapPostBarriers.cpp 2017-09-25 10:34:11.206611695 +0200 -@@ -5,7 +5,6 @@ - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - --#include "mozilla/TypeTraits.h" - #include "mozilla/UniquePtr.h" - - #include "js/RootingAPI.h" -diff -up firefox-56.0/js/src/vm/SharedMem.h.1337988 firefox-56.0/js/src/vm/SharedMem.h ---- firefox-56.0/js/src/vm/SharedMem.h.1337988 2017-06-15 22:52:29.000000000 +0200 -+++ firefox-56.0/js/src/vm/SharedMem.h 2017-09-25 10:34:11.206611695 +0200 -@@ -12,8 +12,8 @@ - template<typename T> - class SharedMem - { -- // static_assert(mozilla::IsPointer<T>::value, -- // "SharedMem encapsulates pointer types"); -+ static_assert(mozilla::IsPointer<T>::value, -+ "SharedMem encapsulates pointer types"); - - enum Sharedness { - IsUnshared, -diff -up firefox-56.0/js/xpconnect/src/XPCInlines.h.1337988 firefox-56.0/js/xpconnect/src/XPCInlines.h ---- firefox-56.0/js/xpconnect/src/XPCInlines.h.1337988 2017-09-14 22:16:03.000000000 +0200 -+++ firefox-56.0/js/xpconnect/src/XPCInlines.h 2017-09-25 10:34:11.206611695 +0200 -@@ -465,7 +465,7 @@ inline - void XPCWrappedNativeTearOff::JSObjectMoved(JSObject* obj, const JSObject* old) - { - MOZ_ASSERT(!IsMarked()); -- MOZ_ASSERT(mJSObject == old); -+ MOZ_ASSERT(mJSObject.unbarrieredGetPtr() == old); - mJSObject = obj; - } - -diff -up firefox-56.0/js/xpconnect/src/XPCWrappedNative.cpp.1337988 firefox-56.0/js/xpconnect/src/XPCWrappedNative.cpp ---- firefox-56.0/js/xpconnect/src/XPCWrappedNative.cpp.1337988 2017-09-14 22:16:03.000000000 +0200 -+++ firefox-56.0/js/xpconnect/src/XPCWrappedNative.cpp 2017-09-25 10:34:11.207611692 +0200 -@@ -874,7 +874,7 @@ void - XPCWrappedNative::FlatJSObjectMoved(JSObject* obj, const JSObject* old) - { - JS::AutoAssertGCCallback inCallback; -- MOZ_ASSERT(mFlatJSObject == old); -+ MOZ_ASSERT(mFlatJSObject.unbarrieredGetPtr() == old); - - nsWrapperCache* cache = nullptr; - CallQueryInterface(mIdentity, &cache); -diff -up firefox-56.0/js/xpconnect/src/XPCWrappedNativeProto.cpp.1337988 firefox-56.0/js/xpconnect/src/XPCWrappedNativeProto.cpp ---- firefox-56.0/js/xpconnect/src/XPCWrappedNativeProto.cpp.1337988 2017-07-31 18:20:47.000000000 +0200 -+++ firefox-56.0/js/xpconnect/src/XPCWrappedNativeProto.cpp 2017-09-25 10:34:11.207611692 +0200 -@@ -101,7 +101,7 @@ XPCWrappedNativeProto::CallPostCreatePro - void - XPCWrappedNativeProto::JSProtoObjectFinalized(js::FreeOp* fop, JSObject* obj) - { -- MOZ_ASSERT(obj == mJSProtoObject, "huh?"); -+ MOZ_ASSERT(obj == mJSProtoObject.unbarrieredGet(), "huh?"); - - #ifdef DEBUG - // Check that this object has already been swept from the map. -@@ -117,7 +117,7 @@ XPCWrappedNativeProto::JSProtoObjectFina - void - XPCWrappedNativeProto::JSProtoObjectMoved(JSObject* obj, const JSObject* old) - { -- MOZ_ASSERT(mJSProtoObject == old); -+ MOZ_ASSERT(mJSProtoObject.unbarrieredGet() == old); - mJSProtoObject.init(obj); // Update without triggering barriers. - } - |