Skip to content

v0.3.0: Major API improvement - Reference-counted ds_builder

Choose a tag to compare

@edadma edadma released this 29 Aug 02:38
· 1 commit to main since this release

Major API Changes

This release introduces significant improvements to the ds_builder API with reference counting for better memory management.

BREAKING CHANGES

  • Renamed ds_stringbuilder to ds_builder for consistency
  • Changed ds_builder to be heap-allocated and reference-counted like ds_string
  • Replaced ds_builder_destroy() with ds_builder_release() that sets pointer to NULL
  • Updated builder functions to take ds_builder (pointer) instead of ds_builder*

NEW FEATURES

  • Added ds_builder_retain() for safe sharing of builders between different parts of code
  • Improved consistent retain/release semantics across both ds_string and ds_builder
  • Enhanced memory management with full reference counting for builders

Migration Guide

Before v0.3.0:

ds_stringbuilder sb = ds_builder_create();
ds_builder_append(&sb, "Hello");
ds_builder_destroy(&sb);

v0.3.0 and later:

ds_builder sb = ds_builder_create();
ds_builder_append(sb, "Hello");
ds_builder_release(&sb);  // sb becomes NULL

Download

All tests pass (71/71) and the library maintains full backwards compatibility for ds_string operations.