1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

Optimize EEPROM::put (#2487)

* EEPROM Library:
Improved put function, compare data and only in case are different set _dirty flag, copy the data

* It will grant that the _dirty flag is reset only at EEPROM.commit() and no changes are lost
This commit is contained in:
ittacco 2017-10-15 09:16:42 +02:00 committed by Ivan Grokhotkov
parent 9fce9c792c
commit 53d7cc01cf

View File

@ -52,9 +52,11 @@ public:
const T &put(int address, const T &t) { const T &put(int address, const T &t) {
if (address < 0 || address + sizeof(T) > _size) if (address < 0 || address + sizeof(T) > _size)
return t; return t;
if (memcmp(_data + address, (const uint8_t*)&t, sizeof(T)) != 0) {
memcpy(_data + address, (const uint8_t*) &t, sizeof(T));
_dirty = true; _dirty = true;
memcpy(_data + address, (const uint8_t*)&t, sizeof(T));
}
return t; return t;
} }