From 365f4dfee88889fd0970323ee0961fcbb90a5a8b Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 31 Oct 2025 13:03:04 +0100 Subject: [PATCH] mh, try to check for IsLinked to prevent crash on Linux --- src/core/file_sys/vfs/vfs_real.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/core/file_sys/vfs/vfs_real.cpp b/src/core/file_sys/vfs/vfs_real.cpp index 6efbb0428b..d4be525bdc 100644 --- a/src/core/file_sys/vfs/vfs_real.cpp +++ b/src/core/file_sys/vfs/vfs_real.cpp @@ -221,7 +221,7 @@ std::unique_lock RealVfsFilesystem::RefreshReference(const std::stri // Reinsert into list. this->InsertReferenceIntoListLocked(reference); - return lk; + return std::move(lk); } void RealVfsFilesystem::DropReference(std::unique_ptr&& reference) { @@ -275,7 +275,9 @@ void RealVfsFilesystem::InsertReferenceIntoListLocked(FileReference& reference) // Unlink from the list it currently belongs to. if (reference.file) { open_references.erase(open_references.iterator_to(reference)); - } else { + } + + if (reference.IsLinked()) { closed_references.erase(closed_references.iterator_to(reference)); } } @@ -296,7 +298,9 @@ void RealVfsFilesystem::RemoveReferenceFromListLocked(FileReference& reference) // Erase from the correct list to avoid cross-list corruption. if (reference.file) { open_references.erase(open_references.iterator_to(reference)); - } else { + } + + if(reference.IsLinked()) { closed_references.erase(closed_references.iterator_to(reference)); } }