diff options
author | Evan Welsh <contact@evanwelsh.com> | 2022-07-22 10:46:14 -0700 |
---|---|---|
committer | Philip Chimento <philip.chimento@gmail.com> | 2022-08-07 16:42:03 -0700 |
commit | 1deacb549cc91a2e57aac0e484c4301a0a1b1e82 (patch) | |
tree | 83726201d779e05bf99cbe8545f68e017ba98702 /gi/object.cpp | |
parent | a4f570f5fb76943b064e8867bacd3b4857841443 (diff) | |
download | gjs-1deacb549cc91a2e57aac0e484c4301a0a1b1e82.tar.gz |
js: Add JSTracer* argument to JS_UpdateWeakPointerAfterGC()
This has some cascade effects on the signatures of other methods, since
we now need to pass the JSTracer in.
Diffstat (limited to 'gi/object.cpp')
-rw-r--r-- | gi/object.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gi/object.cpp b/gi/object.cpp index f0f5c497..ed98ac50 100644 --- a/gi/object.cpp +++ b/gi/object.cpp @@ -1584,7 +1584,7 @@ ObjectPrototype::ObjectPrototype(GIObjectInfo* info, GType gtype) * Private callback, called after the JS engine finishes garbage collection, and * notifies when weak pointers need to be either moved or swept. */ -void ObjectInstance::update_heap_wrapper_weak_pointers(JSContext*, +void ObjectInstance::update_heap_wrapper_weak_pointers(JSTracer* trc, JS::Compartment*, void*) { gjs_debug_lifecycle(GJS_DEBUG_GOBJECT, "Weak pointer update callback, " @@ -1596,15 +1596,15 @@ void ObjectInstance::update_heap_wrapper_weak_pointers(JSContext*, auto locked_queue = ToggleQueue::get_default(); ObjectInstance::remove_wrapped_gobjects_if( - std::mem_fn(&ObjectInstance::weak_pointer_was_finalized), + [&trc](ObjectInstance* instance) -> bool { + return instance->weak_pointer_was_finalized(trc); + }, std::mem_fn(&ObjectInstance::disassociate_js_gobject)); s_wrapped_gobject_list.shrink_to_fit(); } -bool -ObjectInstance::weak_pointer_was_finalized(void) -{ +bool ObjectInstance::weak_pointer_was_finalized(JSTracer* trc) { if (has_wrapper() && !wrapper_is_rooted()) { bool toggle_down_queued, toggle_up_queued; @@ -1615,7 +1615,7 @@ ObjectInstance::weak_pointer_was_finalized(void) if (!toggle_down_queued && toggle_up_queued) return false; - if (!update_after_gc()) + if (!update_after_gc(trc)) return false; if (toggle_down_queued) |