diff options
author | Job Bautista <jobbautista9@aol.com> | 2023-03-16 13:54:03 +0800 |
---|---|---|
committer | Job Bautista <jobbautista9@aol.com> | 2023-03-16 14:02:16 +0800 |
commit | 948268ffde6f280b2e000845ebb0c6a6837013ae (patch) | |
tree | 850e8793712dfba3eb748f1506515f0652ef3290 /js | |
parent | bddc8b630cc0536d9c8945311841fdc1a41277d0 (diff) | |
download | uxp-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.h | 2 | ||||
-rw-r--r-- | js/src/gc/Barrier.cpp | 1 |
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*>); |