From 7e8831a41402df5ddee43a566a0a1329a1e7f9f8 Mon Sep 17 00:00:00 2001 From: DS Date: Sun, 22 Oct 2023 15:30:11 +0200 Subject: [PATCH] Inventory: Don't throw resize lock exception in destructor (#13894) ... of nodemeta inventories. --- src/nodemetadata.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/nodemetadata.cpp b/src/nodemetadata.cpp index eb577b2da..43770fee1 100644 --- a/src/nodemetadata.cpp +++ b/src/nodemetadata.cpp @@ -225,8 +225,13 @@ void NodeMetadataList::remove(v3s16 p) { NodeMetadata *olddata = get(p); if (olddata) { - if (m_is_metadata_owner) + if (m_is_metadata_owner) { + // clearing can throw an exception due to the invlist resize lock, + // which we don't want to happen in the noexcept destructor + // => call clear before + olddata->clear(); delete olddata; + } m_data.erase(p); } }