no more ORANGE on effect memory failure
For maintainers of custom effects: replace "return mode_solid()" with "return mode_oops()" Effect errors fall back to Akemi (2D) or Rainbow(1D) instead of SOLID ORANGE.
This commit is contained in:
379
wled00/FX.cpp
379
wled00/FX.cpp
File diff suppressed because it is too large
Load Diff
@@ -249,7 +249,7 @@ bool Segment::allocateData(size_t len) {
|
|||||||
Segment::addUsedSegmentData(len);
|
Segment::addUsedSegmentData(len);
|
||||||
_dataLen = len;
|
_dataLen = len;
|
||||||
memset(data, 0, len);
|
memset(data, 0, len);
|
||||||
if (errorFlag == ERR_LOW_SEG_MEM) errorFlag = ERR_NONE; // WLEDMM reset errorflag on success
|
if ((errorFlag == ERR_LOW_SEG_MEM) || (errorFlag == ERR_LOW_MEM) || (errorFlag == ERR_NORAM_PX)) errorFlag = ERR_NONE; // WLEDMM reset errorflag on success
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1844,7 +1844,7 @@ void WS2812FX::finalizeInit(void)
|
|||||||
//#endif
|
//#endif
|
||||||
if (arrSize > 0) Segment::_globalLeds = (CRGB*) malloc(arrSize); // WLEDMM avoid malloc(0)
|
if (arrSize > 0) Segment::_globalLeds = (CRGB*) malloc(arrSize); // WLEDMM avoid malloc(0)
|
||||||
if ((Segment::_globalLeds != nullptr) && (arrSize > 0)) memset(Segment::_globalLeds, 0, arrSize); // WLEDMM avoid dereferencing nullptr
|
if ((Segment::_globalLeds != nullptr) && (arrSize > 0)) memset(Segment::_globalLeds, 0, arrSize); // WLEDMM avoid dereferencing nullptr
|
||||||
if ((Segment::_globalLeds == nullptr) && (arrSize > 0)) errorFlag = ERR_LOW_MEM; // WLEDMM raise errorflag
|
if ((Segment::_globalLeds == nullptr) && (arrSize > 0)) errorFlag = ERR_NORAM_PX; // WLEDMM raise errorflag
|
||||||
}
|
}
|
||||||
|
|
||||||
//segments are created in makeAutoSegments();
|
//segments are created in makeAutoSegments();
|
||||||
|
|||||||
@@ -1977,7 +1977,7 @@ function readState(s,command=false)
|
|||||||
errstr = "Buffer locked!";
|
errstr = "Buffer locked!";
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
errstr = "No RAM for buffer!";
|
errstr = "No RAM for pixel buffer!";
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
errstr = "Effect RAM depleted!";
|
errstr = "Effect RAM depleted!";
|
||||||
|
|||||||
Reference in New Issue
Block a user