Skip to content

Commit 1b9b2dc

Browse files
committed
minimal Auto segment creation bugfix
based on wled@13bfda5
1 parent 31cca47 commit 1b9b2dc

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

wled00/FX_fcn.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2205,7 +2205,7 @@ void WS2812FX::makeAutoSegments(bool forceReset) {
22052205
segStops[s] = segStarts[s] + b->getLength();
22062206

22072207
#ifndef WLED_DISABLE_2D
2208-
if (isMatrix && segStops[s] < Segment::maxWidth*Segment::maxHeight) continue; // ignore buses comprising matrix
2208+
if (isMatrix && segStops[s] <= Segment::maxWidth*Segment::maxHeight) continue; // ignore buses comprising matrix
22092209
if (isMatrix && segStarts[s] < Segment::maxWidth*Segment::maxHeight) segStarts[s] = Segment::maxWidth*Segment::maxHeight;
22102210
#endif
22112211

@@ -2278,6 +2278,8 @@ void WS2812FX::fixInvalidSegments() {
22782278
if (_segments[i].stop > _length) _segments[i].stop = _length;
22792279
}
22802280
}
2281+
// if any segments were deleted free memory
2282+
purgeSegments();
22812283
// this is always called as the last step after finalizeInit(), update covered bus types
22822284
for (segment &seg : _segments)
22832285
seg.refreshLightCapabilities();

wled00/json.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId)
516516
//bool didSet = false;
517517
for (size_t s = 0; s < strip.getSegmentsNum(); s++) {
518518
Segment &sg = strip.getSegment(s);
519-
if (sg.isSelected()) {
519+
if (sg.isActive() && sg.isSelected()) {
520520
inDeepCall = true; // WLEDMM remember that we are going into recursion
521521
deserializeSegment(segVar, s, presetId);
522522
if (iAmGroot) inDeepCall = false; // WLEDMM toplevel -> reset recursion flag

0 commit comments

Comments
 (0)