Просмотр исходного кода

Set default for `ARDUINOJSON_ENABLE_PROGMEM` to `1` on AVR

Benoit Blanchon 2 лет назад
Родитель
Сommit
082ae69e86
3 измененных файлов с 9 добавлено и 2 удалено
  1. 1 0
      CHANGELOG.md
  2. 2 0
      extras/conf_test/avr.cpp
  3. 6 2
      src/ArduinoJson/Configuration.hpp

+ 1 - 0
CHANGELOG.md

@@ -6,6 +6,7 @@ HEAD
 
 * Fix compatibility with the Zephyr Project (issue #1905)
 * Allow using PROGMEM outside of Arduino (issue #1903)
+* Set default for `ARDUINOJSON_ENABLE_PROGMEM` to `1` on AVR
 
 v6.21.1 (2023-03-27)
 -------

+ 2 - 0
extras/conf_test/avr.cpp

@@ -1,5 +1,7 @@
 #include <ArduinoJson.h>
 
+static_assert(ARDUINOJSON_ENABLE_PROGMEM == 1, "ARDUINOJSON_ENABLE_PROGMEM");
+
 static_assert(ARDUINOJSON_USE_LONG_LONG == 0, "ARDUINOJSON_USE_LONG_LONG");
 
 static_assert(ARDUINOJSON_SLOT_OFFSET_SIZE == 1,

+ 6 - 2
src/ArduinoJson/Configuration.hpp

@@ -130,9 +130,13 @@
 #    define ARDUINOJSON_ENABLE_ARDUINO_PRINT 0
 #  endif
 
-// Disable support for PROGMEM
+// Enable PROGMEM support on AVR only
 #  ifndef ARDUINOJSON_ENABLE_PROGMEM
-#    define ARDUINOJSON_ENABLE_PROGMEM 0
+#    ifdef __AVR__
+#      define ARDUINOJSON_ENABLE_PROGMEM 1
+#    else
+#      define ARDUINOJSON_ENABLE_PROGMEM 0
+#    endif
 #  endif
 
 #endif  // ARDUINO