forked from bblanchon/ArduinoJson
Fix cannot convert 'pgm_p' to 'const void*'
(fixes #1707)
This commit is contained in:
@ -1,6 +1,11 @@
|
|||||||
ArduinoJson: change log
|
ArduinoJson: change log
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
HEAD
|
||||||
|
----
|
||||||
|
|
||||||
|
* Fix `cannot convert 'pgm_p' to 'const void*'` (issue #1707)
|
||||||
|
|
||||||
v6.19.1 (2022-01-14)
|
v6.19.1 (2022-01-14)
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ add_executable(MixedConfigurationTests
|
|||||||
enable_progmem_1.cpp
|
enable_progmem_1.cpp
|
||||||
enable_string_deduplication_0.cpp
|
enable_string_deduplication_0.cpp
|
||||||
enable_string_deduplication_1.cpp
|
enable_string_deduplication_1.cpp
|
||||||
|
issue1707.cpp
|
||||||
use_double_0.cpp
|
use_double_0.cpp
|
||||||
use_double_1.cpp
|
use_double_1.cpp
|
||||||
)
|
)
|
||||||
|
17
extras/tests/MixedConfiguration/issue1707.cpp
Normal file
17
extras/tests/MixedConfiguration/issue1707.cpp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// ArduinoJson - https://arduinojson.org
|
||||||
|
// Copyright © 2014-2022, Benoit BLANCHON
|
||||||
|
// MIT License
|
||||||
|
|
||||||
|
#define ARDUINO
|
||||||
|
#define memcpy_P(dest, src, n) memcpy((dest), (src), (n))
|
||||||
|
|
||||||
|
#include <ArduinoJson.h>
|
||||||
|
|
||||||
|
#include <catch.hpp>
|
||||||
|
|
||||||
|
TEST_CASE("Issue1707") {
|
||||||
|
StaticJsonDocument<128> doc;
|
||||||
|
|
||||||
|
DeserializationError err = deserializeJson(doc, F("{\"hello\":12}"));
|
||||||
|
REQUIRE(err == DeserializationError::Ok);
|
||||||
|
}
|
@ -99,7 +99,7 @@ inline void* memcpy_P(void* dst, ARDUINOJSON_NAMESPACE::pgm_p src, size_t n) {
|
|||||||
#ifndef pgm_read_dword
|
#ifndef pgm_read_dword
|
||||||
inline uint32_t pgm_read_dword(ARDUINOJSON_NAMESPACE::pgm_p p) {
|
inline uint32_t pgm_read_dword(ARDUINOJSON_NAMESPACE::pgm_p p) {
|
||||||
uint32_t result;
|
uint32_t result;
|
||||||
memcpy_P(&result, p, 4);
|
memcpy_P(&result, p.address, 4);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -107,7 +107,7 @@ inline uint32_t pgm_read_dword(ARDUINOJSON_NAMESPACE::pgm_p p) {
|
|||||||
#ifndef pgm_read_ptr
|
#ifndef pgm_read_ptr
|
||||||
inline void* pgm_read_ptr(ARDUINOJSON_NAMESPACE::pgm_p p) {
|
inline void* pgm_read_ptr(ARDUINOJSON_NAMESPACE::pgm_p p) {
|
||||||
void* result;
|
void* result;
|
||||||
memcpy_P(&result, p, sizeof(result));
|
memcpy_P(&result, p.address, sizeof(result));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user