x
Dependencies: BLE_API mbed-dev-bin nRF51822
Fork of microbit-dal by
Diff: source/drivers/MicroBitStorage.cpp
- Revision:
- 48:34d1adb6771c
- Parent:
- 37:b624ae5e94a5
diff -r 69f452b1a5c9 -r 34d1adb6771c source/drivers/MicroBitStorage.cpp --- a/source/drivers/MicroBitStorage.cpp Wed Jul 13 12:18:26 2016 +0100 +++ b/source/drivers/MicroBitStorage.cpp Wed Jul 13 12:18:27 2016 +0100 @@ -223,6 +223,16 @@ if(keySize > (int)sizeof(pair.key) || dataSize > (int)sizeof(pair.value) || dataSize < 0) return MICROBIT_INVALID_PARAMETER; + KeyValuePair *currentValue = get(key); + + int upToDate = currentValue && (memcmp(currentValue->value, data, dataSize) == 0); + + if(currentValue) + delete currentValue; + + if(upToDate) + return MICROBIT_OK; + memcpy(pair.key, key, keySize); memcpy(pair.value, data, dataSize);