From bb96e31381e33d40eaafd035a507df1edfa11e5d Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Mon, 2 Feb 2026 13:33:17 +0100 Subject: [PATCH] use std::vector --- src/network/CrossPointWebServer.cpp | 4 ++-- src/network/CrossPointWebServer.h | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/network/CrossPointWebServer.cpp b/src/network/CrossPointWebServer.cpp index 9cfefd5a..7df92f26 100644 --- a/src/network/CrossPointWebServer.cpp +++ b/src/network/CrossPointWebServer.cpp @@ -467,7 +467,7 @@ static bool flushUploadBuffer(CrossPointWebServer::UploadState& state) { if (state.bufferPos > 0 && state.file) { esp_task_wdt_reset(); // Reset watchdog before potentially slow SD write const unsigned long writeStart = millis(); - const size_t written = state.file.write(state.buffer, state.bufferPos); + const size_t written = state.file.write(state.buffer.data(), state.bufferPos); totalWriteTime += millis() - writeStart; writeCount++; esp_task_wdt_reset(); // Reset watchdog after SD write @@ -565,7 +565,7 @@ void CrossPointWebServer::handleUpload(UploadState& state) const { const size_t space = UploadState::UPLOAD_BUFFER_SIZE - state.bufferPos; const size_t toCopy = (remaining < space) ? remaining : space; - memcpy(state.buffer + state.bufferPos, data, toCopy); + memcpy(state.buffer.data() + state.bufferPos, data, toCopy); state.bufferPos += toCopy; data += toCopy; remaining -= toCopy; diff --git a/src/network/CrossPointWebServer.h b/src/network/CrossPointWebServer.h index 2d5284ed..6f33b2cf 100644 --- a/src/network/CrossPointWebServer.h +++ b/src/network/CrossPointWebServer.h @@ -42,11 +42,10 @@ class CrossPointWebServer { // 4KB is a good balance: large enough to reduce syscall overhead, small enough // to keep individual write times short and avoid watchdog issues static constexpr size_t UPLOAD_BUFFER_SIZE = 4096; // 4KB buffer - uint8_t* buffer = nullptr; + std::vector buffer; size_t bufferPos = 0; - UploadState() : buffer(new uint8_t[UPLOAD_BUFFER_SIZE]) {} - ~UploadState() { delete[] buffer; } + UploadState() { buffer.resize(UPLOAD_BUFFER_SIZE); } } upload; CrossPointWebServer();