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>>
This commit is contained in:
Job Bautista 2023-03-16 13:54:03 +08:00 committed by roytam1
commit 2c8387f4fa
2 changed files with 3 additions and 0 deletions

View file

@ -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;

View file

@ -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*>);