summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorJob Bautista <jobbautista9@aol.com>2023-03-16 13:54:03 +0800
committerJob Bautista <jobbautista9@aol.com>2023-03-16 14:02:16 +0800
commit948268ffde6f280b2e000845ebb0c6a6837013ae (patch)
tree850e8793712dfba3eb748f1506515f0652ef3290 /js
parentbddc8b630cc0536d9c8945311841fdc1a41277d0 (diff)
downloaduxp-948268ffde6f280b2e000845ebb0c6a6837013ae.tar.gz
Issue #62 - Fix xul.dll link bustage related to MovableCellHasher.
The unsafeSet method is based on Jon Coppeard's part 2 patch for Mozilla bug 1306008. This is needed because of the use of unsafeSet in rekey() of MovableCellHasher<JS::Heap<T>>
Diffstat (limited to 'js')
-rw-r--r--js/public/RootingAPI.h2
-rw-r--r--js/src/gc/Barrier.cpp1
2 files changed, 3 insertions, 0 deletions
diff --git a/js/public/RootingAPI.h b/js/public/RootingAPI.h
index aec25b0ffe..e03bc56fb7 100644
--- a/js/public/RootingAPI.h
+++ b/js/public/RootingAPI.h
@@ -277,6 +277,8 @@ class MOZ_NON_MEMMOVABLE Heap : public js::HeapBase<T, Heap<T>>
T* unsafeGet() { return &ptr; }
+ void unsafeSet(const T& newPtr) { ptr = newPtr; }
+
void set(const T& newPtr) {
T tmp = ptr;
ptr = newPtr;
diff --git a/js/src/gc/Barrier.cpp b/js/src/gc/Barrier.cpp
index efb567acbe..e814d92b6f 100644
--- a/js/src/gc/Barrier.cpp
+++ b/js/src/gc/Barrier.cpp
@@ -182,6 +182,7 @@ MovableCellHasher<T>::match(const Key& k, const Lookup& l)
#endif // JS_BROKEN_GCC_ATTRIBUTE_WARNING
template struct JS_PUBLIC_API(MovableCellHasher<JSObject*>);
+template struct JS_PUBLIC_API(MovableCellHasher<JS::Heap<JSObject*>>);
template struct JS_PUBLIC_API(MovableCellHasher<GlobalObject*>);
template struct JS_PUBLIC_API(MovableCellHasher<SavedFrame*>);
template struct JS_PUBLIC_API(MovableCellHasher<EnvironmentObject*>);