From d3cb9672164a89580a92d32521f3066083deb5af Mon Sep 17 00:00:00 2001 From: Thomas Kunze Date: Mon, 4 Nov 2019 21:56:49 +0100 Subject: [PATCH] 16 bit for blocksize should be enough --- src/knx/memory.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/knx/memory.cpp b/src/knx/memory.cpp index 13bbc0b..fdb1663 100644 --- a/src/knx/memory.cpp +++ b/src/knx/memory.cpp @@ -44,8 +44,8 @@ void Memory::readMemory() TableObject* tableObject = dynamic_cast(_saveRestores[i]); if (tableObject) { - uint32_t memorySize = 0; - buffer = popInt(memorySize, buffer); + uint16_t memorySize = 0; + buffer = popWord(memorySize, buffer); // this works because TableObject saves a relative addr and restores it itself addNewUsedBlock(tableObject->_data, memorySize); @@ -75,7 +75,7 @@ void Memory::writeMemory() println("_data of TableObject not in errorlist"); _platform.fatalError(); } - buffer = pushInt(block->size, buffer); + buffer = pushWord(block->size, buffer); } } _platform.commitToEeprom(); @@ -89,6 +89,12 @@ void Memory::addSaveRestore(SaveRestore* obj) _saveRestores[_saveCount] = obj; _saveCount += 1; _metadataSize += obj->saveSize(); + + TableObject* tableObject = dynamic_cast(obj); + if (tableObject) + { + _metadataSize += 2; // + } }