forked from alterware/iw6-mod
Fixed incorrect vector reserve when auto recording.
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user