From 5498de96162fa7571e890e7010045d22298ad72f Mon Sep 17 00:00:00 2001 From: Ewowi Date: Thu, 8 Sep 2022 15:48:47 +0200 Subject: [PATCH 1/2] json mapping: set jMap = nullptr on segment creation --- wled00/FX_fcn.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index 24c7fd12..dd24b4c2 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -89,6 +89,7 @@ Segment::Segment(const Segment &orig) { if (orig.data) { if (allocateData(orig._dataLen)) memcpy(data, orig.data, orig._dataLen); } if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); } if (orig.leds && !Segment::_globalLeds) { leds = (CRGB*)malloc(sizeof(CRGB)*length()); if (leds) memcpy(leds, orig.leds, sizeof(CRGB)*length()); } + jMap = nullptr; //WLEDSR jMap } // move constructor @@ -100,6 +101,7 @@ Segment::Segment(Segment &&orig) noexcept { orig._dataLen = 0; orig._t = nullptr; orig.leds = nullptr; + orig.jMap = nullptr; //WLEDSR jMap } // copy assignment @@ -124,6 +126,7 @@ Segment& Segment::operator= (const Segment &orig) { if (orig.data) { if (allocateData(orig._dataLen)) memcpy(data, orig.data, orig._dataLen); } if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); } if (orig.leds && !Segment::_globalLeds) { leds = (CRGB*)malloc(sizeof(CRGB)*length()); if (leds) memcpy(leds, orig.leds, sizeof(CRGB)*length()); } + jMap = nullptr; //WLEDSR jMap } return *this; } @@ -142,6 +145,7 @@ Segment& Segment::operator= (Segment &&orig) noexcept { orig._dataLen = 0; orig._t = nullptr; orig.leds = nullptr; + orig.jMap = nullptr; //WLEDSR jMap } return *this; } From e10f8c868110d178b3c70b45c9a85e4a138df24c Mon Sep 17 00:00:00 2001 From: Ewowi Date: Tue, 20 Sep 2022 11:18:20 +0200 Subject: [PATCH 2/2] Move from DynamicJsonDocument to PSRAMDynamicJsonDocument --- wled00/FX_fcn.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index dd24b4c2..4ec0cc43 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -475,7 +475,7 @@ class JMapC { return 0; } private: - DynamicJsonDocument *jMapDoc = nullptr; + PSRAMDynamicJsonDocument *jMapDoc = nullptr; uint8_t scale; void updatejMapDoc() { if (jMapDoc && SEGMENT.name == nullptr) { @@ -485,7 +485,7 @@ class JMapC { if (!jMapDoc && SEGMENT.name != nullptr && SEGMENT.map1D2D == M12_jMap) { Serial.println("Create jMapDoc"); - jMapDoc = new DynamicJsonDocument(5*4096); + jMapDoc = new PSRAMDynamicJsonDocument(5*4096); } if (jMapDoc && SEGMENT.name != nullptr && strcmp(SEGMENT.name, previousSegmentName) != 0) {