From 70de65d2e0400a858385cbd541dfdf12ca03c230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cornelius=20K=C3=B6pp?= <121643070+cornelius-koepp@users.noreply.github.com> Date: Sat, 23 Aug 2025 13:52:52 +0200 Subject: [PATCH] Fix: Special Case Handling for Unload-Timeout `_savedTimeout==0` is defined as no timeout running. Prevent this rare case. --- src/knx/memory.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/knx/memory.cpp b/src/knx/memory.cpp index fe08a92..2963f4e 100644 --- a/src/knx/memory.cpp +++ b/src/knx/memory.cpp @@ -302,6 +302,8 @@ void Memory::freeMemory(uint8_t* ptr) removeFromUsedList(block); addToFreeList(block); _saveTimeout = millis(); + if (_saveTimeout == 0) + _saveTimeout = 1; // prevent 0=disabled; no impact by minimal increased timeout } void Memory::writeMemory(uint32_t relativeAddress, size_t size, uint8_t* data) @@ -309,6 +311,8 @@ void Memory::writeMemory(uint32_t relativeAddress, size_t size, uint8_t* data) if(_saveTimeout != 0) { _saveTimeout = millis(); + if (_saveTimeout == 0) + _saveTimeout = 1; // prevent 0=disabled; no impact by minimal increased timeout } _platform.writeNonVolatileMemory(relativeAddress, data, size); }