fix nullptr

This commit is contained in:
DashyFox 2024-03-01 17:54:15 +03:00
parent af6041c5ae
commit 5547bec263

View File

@ -81,11 +81,12 @@ void IR_DecoderRaw::listenStart() {
void IR_DecoderRaw::tick() { void IR_DecoderRaw::tick() {
FrontStorage currentFront; FrontStorage currentFront;
noInterrupts(); uint8_t oldSREG = SREG;
cli();
listenStart(); listenStart();
if (firstUnHandledFront == nullptr) { isSubBufferOverflow = false; interrupts(); return; } //Если данных нет - ничего не делаем if (firstUnHandledFront == nullptr) { isSubBufferOverflow = false; SREG = oldSREG; return; } //Если данных нет - ничего не делаем
currentFront = *((FrontStorage*)firstUnHandledFront); //найти следующий необработанный фронт/спад currentFront = *((FrontStorage*)firstUnHandledFront); //найти следующий необработанный фронт/спад
interrupts(); SREG = oldSREG;
if (currentFront.next == nullptr) { isRecive = false; return; } if (currentFront.next == nullptr) { isRecive = false; return; }
//////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -272,7 +273,12 @@ void IR_DecoderRaw::tick() {
digitalWrite(writeOp, isPreamb); digitalWrite(writeOp, isPreamb);
#endif #endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
firstUnHandledFront = firstUnHandledFront->next; //переместить флаг на следующий элемент для обработки (next or nullptr) oldSREG = SREG;
cli();
if (firstUnHandledFront != nullptr) {
firstUnHandledFront = firstUnHandledFront->next; //переместить флаг на следующий элемент для обработки (next or nullptr)
}
SREG = oldSREG;
} }
void IR_DecoderRaw::writeToBuffer(bool bit) { void IR_DecoderRaw::writeToBuffer(bool bit) {