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:
parent
9fce9c792c
commit
53d7cc01cf
@ -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) {
|
||||||
|
_dirty = true;
|
||||||
|
memcpy(_data + address, (const uint8_t*)&t, sizeof(T));
|
||||||
|
}
|
||||||
|
|
||||||
memcpy(_data + address, (const uint8_t*) &t, sizeof(T));
|
|
||||||
_dirty = true;
|
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user