mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-03-30 17:18:57 +00:00
unregister before releasingRef to avoid potential use-after-free
This commit is contained in:
@@ -190,11 +190,11 @@ pub fn disconnect(self: *IntersectionObserver, page: *Page) void {
|
|||||||
const observing_count = self._observing.items.len;
|
const observing_count = self._observing.items.len;
|
||||||
self._observing.clearRetainingCapacity();
|
self._observing.clearRetainingCapacity();
|
||||||
|
|
||||||
|
page.unregisterIntersectionObserver(self);
|
||||||
|
|
||||||
if (observing_count > 0) {
|
if (observing_count > 0) {
|
||||||
_ = self.releaseRef(page._session);
|
_ = self.releaseRef(page._session);
|
||||||
}
|
}
|
||||||
|
|
||||||
page.unregisterIntersectionObserver(self);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn takeRecords(self: *IntersectionObserver, page: *Page) ![]*IntersectionObserverEntry {
|
pub fn takeRecords(self: *IntersectionObserver, page: *Page) ![]*IntersectionObserverEntry {
|
||||||
|
|||||||
Reference in New Issue
Block a user