mirror of
https://github.com/esphome/esphome.git
synced 2026-02-16 06:19:32 -07:00
Compare commits
1 Commits
dev
...
online-ima
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6273ad6bf8 |
@@ -7,7 +7,8 @@ namespace esphome::online_image {
|
|||||||
static const char *const TAG = "online_image.download_buffer";
|
static const char *const TAG = "online_image.download_buffer";
|
||||||
|
|
||||||
DownloadBuffer::DownloadBuffer(size_t size) : size_(size) {
|
DownloadBuffer::DownloadBuffer(size_t size) : size_(size) {
|
||||||
this->buffer_ = this->allocator_.allocate(size);
|
RAMAllocator<uint8_t> allocator;
|
||||||
|
this->buffer_ = allocator.allocate(size);
|
||||||
this->reset();
|
this->reset();
|
||||||
if (!this->buffer_) {
|
if (!this->buffer_) {
|
||||||
ESP_LOGE(TAG, "Initial allocation of download buffer failed!");
|
ESP_LOGE(TAG, "Initial allocation of download buffer failed!");
|
||||||
@@ -38,15 +39,16 @@ size_t DownloadBuffer::resize(size_t size) {
|
|||||||
// Avoid useless reallocations; if the buffer is big enough, don't reallocate.
|
// Avoid useless reallocations; if the buffer is big enough, don't reallocate.
|
||||||
return this->size_;
|
return this->size_;
|
||||||
}
|
}
|
||||||
this->allocator_.deallocate(this->buffer_, this->size_);
|
RAMAllocator<uint8_t> allocator;
|
||||||
this->buffer_ = this->allocator_.allocate(size);
|
allocator.deallocate(this->buffer_, this->size_);
|
||||||
|
this->buffer_ = allocator.allocate(size);
|
||||||
this->reset();
|
this->reset();
|
||||||
if (this->buffer_) {
|
if (this->buffer_) {
|
||||||
this->size_ = size;
|
this->size_ = size;
|
||||||
return size;
|
return size;
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGE(TAG, "allocation of %zu bytes failed. Biggest block in heap: %zu Bytes", size,
|
ESP_LOGE(TAG, "allocation of %zu bytes failed. Biggest block in heap: %zu Bytes", size,
|
||||||
this->allocator_.get_max_free_block_size());
|
allocator.get_max_free_block_size());
|
||||||
this->size_ = 0;
|
this->size_ = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,10 @@ namespace esphome::online_image {
|
|||||||
class DownloadBuffer {
|
class DownloadBuffer {
|
||||||
public:
|
public:
|
||||||
DownloadBuffer(size_t size);
|
DownloadBuffer(size_t size);
|
||||||
~DownloadBuffer() { this->allocator_.deallocate(this->buffer_, this->size_); }
|
~DownloadBuffer() {
|
||||||
|
RAMAllocator<uint8_t> allocator;
|
||||||
|
allocator.deallocate(this->buffer_, this->size_);
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t *data(size_t offset = 0);
|
uint8_t *data(size_t offset = 0);
|
||||||
uint8_t *append() { return this->data(this->unread_); }
|
uint8_t *append() { return this->data(this->unread_); }
|
||||||
@@ -34,7 +37,6 @@ class DownloadBuffer {
|
|||||||
size_t resize(size_t size);
|
size_t resize(size_t size);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
RAMAllocator<uint8_t> allocator_{};
|
|
||||||
uint8_t *buffer_;
|
uint8_t *buffer_;
|
||||||
size_t size_;
|
size_t size_;
|
||||||
/** Total number of downloaded bytes not yet read. */
|
/** Total number of downloaded bytes not yet read. */
|
||||||
|
|||||||
Reference in New Issue
Block a user