update builder to always clear after retrieving output

This commit is contained in:
2025-12-13 16:16:25 +01:00
parent 289f4bb371
commit c660d1ec1e
2 changed files with 7 additions and 5 deletions
+3 -3
View File
@@ -325,7 +325,7 @@ typedef struct string_builder {
} string_builder_t; } string_builder_t;
string_builder_t sb_create(allocator_t builder_allocator); string_builder_t sb_create(allocator_t builder_allocator);
// assumes the provided string will live until sb_build is called. // assumes the provided string will live until sb_build_and_clear is called.
void sb_add_string(string_builder_t *this, const char *string); void sb_add_string(string_builder_t *this, const char *string);
void sb_add_i64(string_builder_t *this, int64_t i64); void sb_add_i64(string_builder_t *this, int64_t i64);
void sb_add_i32(string_builder_t *this, int32_t i32); void sb_add_i32(string_builder_t *this, int32_t i32);
@@ -336,8 +336,8 @@ void sb_add_u32(string_builder_t *this, uint32_t u32);
void sb_add_u16(string_builder_t *this, uint16_t u16); void sb_add_u16(string_builder_t *this, uint16_t u16);
void sb_add_u8(string_builder_t *this, uint8_t u8); void sb_add_u8(string_builder_t *this, uint8_t u8);
void sb_add_substring(string_builder_t *this, const char *string, size_t substring_length); void sb_add_substring(string_builder_t *this, const char *string, size_t substring_length);
const char *sb_build(string_builder_t *this, allocator_t output_allocator); const char *sb_build_and_clear(string_builder_t *this, allocator_t output_allocator);
void sb_fprint(string_builder_t *this, FILE *dest); void sb_fprint_and_clear(string_builder_t *this, FILE *dest);
#ifdef CIG_IMPL #ifdef CIG_IMPL
+4 -2
View File
@@ -91,7 +91,7 @@ void sb_add_substring(string_builder_t *this, const char *string, size_t substri
sb_add_string(this, buffer); sb_add_string(this, buffer);
} }
const char *sb_build( const char *sb_build_and_clear(
string_builder_t *this, string_builder_t *this,
allocator_t output_allocator allocator_t output_allocator
) { ) {
@@ -123,7 +123,7 @@ const char *sb_build(
return buffer; return buffer;
} }
void sb_fprint(string_builder_t *this, FILE *dest) { void sb_fprint_and_clear(string_builder_t *this, FILE *dest) {
for ( for (
string_builder_node_t *node = this->head; string_builder_node_t *node = this->head;
node != NULL; node != NULL;
@@ -131,4 +131,6 @@ void sb_fprint(string_builder_t *this, FILE *dest) {
) { ) {
fprintf(dest, "%s", node->string); fprintf(dest, "%s", node->string);
} }
this->head = NULL;
this->tail = NULL;
} }