Skip to content

Commit fbe81e2

Browse files
committed
Fix put/get Long64 ULong64 by using putBytes instead of printf format specifiers
1 parent 15827d6 commit fbe81e2

File tree

1 file changed

+4
-26
lines changed

1 file changed

+4
-26
lines changed

libraries/Preferences/src/Preferences.cpp

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -141,23 +141,11 @@ size_t Preferences::putULong(const char* key, uint32_t value) {
141141
}
142142

143143
size_t Preferences::putLong64(const char* key, int64_t value) {
144-
string res = "";
145-
if (key != nullptr && strlen(key) > 0) {
146-
if (modem.write(string(PROMPT(_PREF_PUT)), res, "%s%s,%d,%lld\r\n", CMD_WRITE(_PREF_PUT), key, PT_I64, value)) {
147-
return atoi(res.c_str());
148-
}
149-
}
150-
return 0;
144+
return putBytes(key, (void*)&value, sizeof(int64_t));
151145
}
152146

153147
size_t Preferences::putULong64(const char* key, uint64_t value) {
154-
string res = "";
155-
if (key != nullptr && strlen(key) > 0) {
156-
if (modem.write(string(PROMPT(_PREF_PUT)), res, "%s%s,%d,%llu\r\n", CMD_WRITE(_PREF_PUT), key, PT_U64, value)) {
157-
return atoi(res.c_str());
158-
}
159-
}
160-
return 0;
148+
return putBytes(key, (void*)&value, sizeof(uint64_t));
161149
}
162150

163151
size_t Preferences::putFloat(const char* key, const float_t value) {
@@ -291,23 +279,13 @@ uint32_t Preferences::getULong(const char* key, const uint32_t defaultValue) {
291279

292280
int64_t Preferences::getLong64(const char* key, const int64_t defaultValue) {
293281
int64_t value = defaultValue;
294-
string res = "";
295-
if (key != nullptr && strlen(key) > 0) {
296-
if (modem.write(string(PROMPT(_PREF_GET)), res, "%s%s,%d,%lld\r\n", CMD_WRITE(_PREF_GET), key, PT_I64, defaultValue)) {
297-
sscanf(res.c_str(), "%lld", &value);
298-
}
299-
}
282+
getBytes(key, (void*) &value, sizeof(int64_t));
300283
return value;
301284
}
302285

303286
uint64_t Preferences::getULong64(const char* key, const uint64_t defaultValue) {
304287
uint64_t value = defaultValue;
305-
string res = "";
306-
if (key != nullptr && strlen(key) > 0) {
307-
if (modem.write(string(PROMPT(_PREF_GET)), res, "%s%s,%d,%llu\r\n", CMD_WRITE(_PREF_GET), key, PT_U64, defaultValue)) {
308-
sscanf(res.c_str(), "%llu", &value);
309-
}
310-
}
288+
getBytes(key, (void*) &value, sizeof(uint64_t));
311289
return value;
312290
}
313291

0 commit comments

Comments
 (0)