From 6b1cf437d37bb9b6829586b2be447f7f58565355 Mon Sep 17 00:00:00 2001 From: Andrew Kesterson Date: Sat, 1 Aug 2026 00:16:03 -0400 Subject: [PATCH] Record that akgl_registry_init now brings up the properties registry Missed in the previous commit, which made the change. Co-Authored-By: Claude Opus 5 (1M context) --- TODO.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/TODO.md b/TODO.md index a9f6024..ca81da8 100644 --- a/TODO.md +++ b/TODO.md @@ -660,15 +660,15 @@ Each was found by a test written to assert correct behavior. loop; it should be `dest->layers[i].texture`. It also never NULLs the pointers, so a second release is a use-after-free. 3. **`akgl_registry_init` never initializes the properties registry.** - `akgl_registry_init_properties()` is not called from `akgl_registry_init()` - (`src/registry.c:27`), so `AKGL_REGISTRY_PROPERTIES` stays 0 unless the - caller initializes it separately. `akgl_set_property` is then a silent no-op - and `akgl_get_property` always returns the caller's default, which means - `akgl_physics_init_arcade` and `akgl_render_init2d` silently ignore - configuration. `akgl_game_init` does call it; a caller that does not use - `akgl_game_init` does not get it. + **Fixed in 0.5.0**, alongside internal-consistency item 36, which is the same + function. `akgl_registry_init()` calls `akgl_registry_init_properties()` now, + so `AKGL_REGISTRY_PROPERTIES` is live for callers that do not also go through + `akgl_game_init` -- which is what made `akgl_set_property` a silent no-op and + `akgl_get_property` always hand back the caller's default, and so what made + `akgl_physics_init_arcade` and `akgl_render_2d_init` quietly ignore their + configuration. `tests/registry.c` sets a property and reads it back. 4. **`akgl_path_relative_from` is a stub that leaks.** **Deleted in 0.5.0.** - It claimed a heap string, never wrote `*dst`, and never released it, so 256 + It claimed a heap string, never wrote its output, and never released it, so 256 calls exhausted the string pool. It was declared in no header, called from nowhere, and duplicated what `akgl_path_relative` already does. Fixing an unfinished function nobody can reach is worse than deleting it; this also