mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-08 17:47:18 +00:00
Kernel: Remove flawed SharedInodeVMObject assertion
This assertion cannot be safely/reliably made in the ~SharedInodeVMObject destructor. The problem is that Inode::is_shared_vmobject holds a weak reference to the instance that is being destroyed (ref count 0). Checking the pointer using WeakPtr::unsafe_ptr will produce nullptr depending on timing in this case, and WeakPtr::safe_ref will reliably produce a nullptr as soon as the reference count drops to 0. The only case where this assertion could succeed is when WeakPtr::unsafe_ptr returned the pointer because it won the race against revoking it. And because WeakPtr::safe_ref will always return a nullptr, we cannot reliably assert this from the ~SharedInodeVMObject destructor. Fixes #4621
This commit is contained in:
@@ -56,9 +56,4 @@ SharedInodeVMObject::SharedInodeVMObject(const SharedInodeVMObject& other)
|
||||
{
|
||||
}
|
||||
|
||||
SharedInodeVMObject::~SharedInodeVMObject()
|
||||
{
|
||||
ASSERT(inode().is_shared_vmobject(*this));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user