From e42f7dfc46f11b24bae1cb9f3a7ceb487a75ad2d Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Sun, 20 Oct 2024 13:21:48 +0200 Subject: [PATCH] refactor(string_table): don't unnecessarily resize buffer --- src/internal/string_table.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/internal/string_table.cpp b/src/internal/string_table.cpp index 76aa1b61..af682084 100644 --- a/src/internal/string_table.cpp +++ b/src/internal/string_table.cpp @@ -230,18 +230,18 @@ string_table::pack_generic(std::span input, : total_input_size - symtab.size()); size_t num_compressed = 0; - do { + for (;;) { num_compressed = ::fsst_compress( enc.get(), size, len_vec.data(), ptr_vec.data(), buffer.size(), reinterpret_cast(buffer.data()), out_len_vec.data(), out_ptr_vec.data()); - if (num_compressed == size) { + if (num_compressed == size || !options.force_pack_data) { break; } buffer.resize(2 * buffer.size()); - } while (options.force_pack_data); + } pack_data = num_compressed == size; } else {