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