mirror of
https://github.com/esphome/esphome.git
synced 2026-07-10 17:05:36 +00:00
Restore nullptr checks for xQueueCreate failure
This commit is contained in:
@@ -29,7 +29,7 @@ template<class T, uint8_t SIZE> class FreeRTOSQueue {
|
||||
FreeRTOSQueue() : dropped_count_(0) { this->handle_ = xQueueCreate(SIZE, sizeof(T *)); }
|
||||
|
||||
bool push(T *element) {
|
||||
if (element == nullptr)
|
||||
if (element == nullptr || this->handle_ == nullptr)
|
||||
return false;
|
||||
|
||||
if (xQueueSend(this->handle_, &element, 0) != pdPASS) {
|
||||
@@ -40,6 +40,9 @@ template<class T, uint8_t SIZE> class FreeRTOSQueue {
|
||||
}
|
||||
|
||||
T *pop() {
|
||||
if (this->handle_ == nullptr)
|
||||
return nullptr;
|
||||
|
||||
T *element;
|
||||
if (xQueueReceive(this->handle_, &element, 0) != pdTRUE) {
|
||||
return nullptr;
|
||||
@@ -57,11 +60,23 @@ template<class T, uint8_t SIZE> class FreeRTOSQueue {
|
||||
|
||||
void increment_dropped_count() { this->dropped_count_++; }
|
||||
|
||||
bool empty() const { return uxQueueMessagesWaiting(this->handle_) == 0; }
|
||||
bool empty() const {
|
||||
if (this->handle_ == nullptr)
|
||||
return true;
|
||||
return uxQueueMessagesWaiting(this->handle_) == 0;
|
||||
}
|
||||
|
||||
bool full() const { return uxQueueSpacesAvailable(this->handle_) == 0; }
|
||||
bool full() const {
|
||||
if (this->handle_ == nullptr)
|
||||
return true;
|
||||
return uxQueueSpacesAvailable(this->handle_) == 0;
|
||||
}
|
||||
|
||||
size_t size() const { return uxQueueMessagesWaiting(this->handle_); }
|
||||
size_t size() const {
|
||||
if (this->handle_ == nullptr)
|
||||
return 0;
|
||||
return uxQueueMessagesWaiting(this->handle_);
|
||||
}
|
||||
|
||||
protected:
|
||||
QueueHandle_t handle_;
|
||||
|
||||
Reference in New Issue
Block a user