Преглед на файлове

Increased the default capacity of `DynamicJsonDocument`

Benoit Blanchon преди 7 години
родител
ревизия
5dc7dc1216
променени са 3 файла, в които са добавени 12 реда и са изтрити 1 реда
  1. 1 0
      CHANGELOG.md
  2. 10 0
      src/ArduinoJson/Configuration.hpp
  3. 1 1
      src/ArduinoJson/Memory/DynamicMemoryPool.hpp

+ 1 - 0
CHANGELOG.md

@@ -8,6 +8,7 @@ HEAD
 * Allow mixed configuration in compilation units (issue #809)
 * Fixed object keys not being duplicated
 * `JsonPair::key()` now returns a `JsonKey`
+* Increased the default capacity of `DynamicJsonDocument`
 
 v6.4.0-beta (2018-09-11)
 -----------

+ 10 - 0
src/ArduinoJson/Configuration.hpp

@@ -53,6 +53,11 @@
 #define ARDUINOJSON_DEFAULT_NESTING_LIMIT 10
 #endif
 
+// Default capacity for DynamicJsonDocument
+#ifndef ARDUINOJSON_DEFAULT_POOL_SIZE
+#define ARDUINOJSON_DEFAULT_POOL_SIZE 1024
+#endif
+
 #else  // ARDUINOJSON_EMBEDDED_MODE
 
 // On a computer we have plenty of memory so we can use doubles
@@ -84,6 +89,11 @@
 #define ARDUINOJSON_DEFAULT_NESTING_LIMIT 50
 #endif
 
+// Default capacity for DynamicJsonDocument
+#ifndef ARDUINOJSON_DEFAULT_POOL_SIZE
+#define ARDUINOJSON_DEFAULT_POOL_SIZE 16384
+#endif
+
 #endif  // ARDUINOJSON_EMBEDDED_MODE
 
 #ifdef ARDUINO

+ 1 - 1
src/ArduinoJson/Memory/DynamicMemoryPool.hpp

@@ -45,7 +45,7 @@ class DynamicMemoryPoolBase : public MemoryPool {
  public:
   enum { EmptyBlockSize = sizeof(EmptyBlock) };
 
-  DynamicMemoryPoolBase(size_t initialSize = 256)
+  DynamicMemoryPoolBase(size_t initialSize = ARDUINOJSON_DEFAULT_POOL_SIZE)
       : _head(NULL), _nextBlockCapacity(initialSize) {}
 
   ~DynamicMemoryPoolBase() {