Fixed incorrect vector reserve when auto recording.

This commit is contained in:
Caball009
2026-09-05 22:46:59 +02:00
parent 479aef7082
commit 534e9c096b
2 changed files with 6 additions and 4 deletions
+2 -1
View File
@@ -326,7 +326,8 @@ namespace // demo class
// store gamestate for user file
write_network_data(crit_data_, network_data);
// reserve memory (low size if auto recording is enabled, because then the demo writes almost directly to disk)
// reserve memory; use smaller buffer size when auto recording is enabled,
// since the data is written to disk almost right away.
const auto reserve_size = (demo_autorecord && demo_autorecord->current.enabled) ? 8192 : 1024 * 1024;
auto_buffer_.reserve_memory(reserve_size);
+4 -3
View File
@@ -377,9 +377,8 @@ namespace // server demos class
// write general, mod and map headers to the buffer once
if (!client.is_buffer_active())
{
// reserve memory (low size if auto recording is enabled, because then the demo writes almost directly to disk)
const auto reserve_size = (sv_demo_autorecord && sv_demo_autorecord->current.enabled) ? 8192 : 512 * 1024;
client.buffer.reserve_memory(reserve_size);
// reserve memory up front to minimize further (re)allocations
client.buffer.reserve_memory(1024 * 1024);
sv_write_general_header(client.buffer, game::mp::svs->clients[client_num.value()].name);
write_mod_header(client.buffer);
@@ -434,6 +433,8 @@ namespace // server demos class
auto& client = get_client(client_num);
// keep buffering data even when recording a demo so subsequent demos for the same client
// can be recorded using the entire buffer; the entire buffer is required for demos to be valid
if (client.is_buffer_active())
{
write_data_internal(client.buffer);