Unlink weakref objects on finalizer-enque ^KT-55364
Co-authored-by: Troels Lund <troels@google.com> Merge-request: KOTLIN-MR-694 Merged-by: Alexander Shabalin <alexander.shabalin@jetbrains.com>
This commit is contained in:
committed by
Space Cloud
parent
710a8f4e0f
commit
20d8f54ea3
@@ -43,6 +43,7 @@ bool SweepObject(uint8_t* object, FinalizerQueue& finalizerQueue, gc::GCHandle::
|
||||
if (!extraObject->getFlag(mm::ExtraObjectData::FLAGS_IN_FINALIZER_QUEUE)) {
|
||||
CustomAllocDebug("SweepObject(%p): needs to be finalized, extraObject at %p", object, extraObject);
|
||||
extraObject->setFlag(mm::ExtraObjectData::FLAGS_IN_FINALIZER_QUEUE);
|
||||
extraObject->ClearRegularWeakReferenceImpl();
|
||||
CustomAllocDebug("SweepObject: fromExtraObject(%p) = %p", extraObject, ExtraObjectCell::fromExtraObject(extraObject));
|
||||
finalizerQueue.Push(ExtraObjectCell::fromExtraObject(extraObject));
|
||||
gcHandle.addMarkedObject();
|
||||
|
||||
Reference in New Issue
Block a user