mirror of
https://github.com/esphome/esphome.git
synced 2025-10-18 17:53:47 +01:00
preen
This commit is contained in:
@@ -168,13 +168,17 @@ template<typename T> class FixedVector {
|
|||||||
size_t size_{0};
|
size_t size_{0};
|
||||||
size_t capacity_{0};
|
size_t capacity_{0};
|
||||||
|
|
||||||
|
// Helper to destroy all elements without freeing memory
|
||||||
|
void destroy_elements_() {
|
||||||
|
for (size_t i = 0; i < size_; i++) {
|
||||||
|
data_[i].~T();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Helper to destroy elements and free memory
|
// Helper to destroy elements and free memory
|
||||||
void cleanup_() {
|
void cleanup_() {
|
||||||
if (data_ != nullptr) {
|
if (data_ != nullptr) {
|
||||||
// Manually destroy all elements
|
destroy_elements_();
|
||||||
for (size_t i = 0; i < size_; i++) {
|
|
||||||
data_[i].~T();
|
|
||||||
}
|
|
||||||
// Free raw memory
|
// Free raw memory
|
||||||
::operator delete(data_);
|
::operator delete(data_);
|
||||||
}
|
}
|
||||||
@@ -226,10 +230,7 @@ template<typename T> class FixedVector {
|
|||||||
|
|
||||||
// Clear the vector (destroy all elements, reset size to 0, keep capacity)
|
// Clear the vector (destroy all elements, reset size to 0, keep capacity)
|
||||||
void clear() {
|
void clear() {
|
||||||
// Manually destroy all elements
|
destroy_elements_();
|
||||||
for (size_t i = 0; i < size_; i++) {
|
|
||||||
data_[i].~T();
|
|
||||||
}
|
|
||||||
size_ = 0;
|
size_ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user