Repository navigation
v0.9.0 — memory-safety & audio-callback hardening
Memory-safety and robustness release.
- Array bindings: table→C-array reads are now GC-managed (
lua_newuserdatauv), removing a leak on the Lua-error path, a missing-NULL crash on allocation failure, and asize_t→inttruncation. - Use-after-free: resource structs are zeroed after
Unload*, so reusing a released handle is a safe no-op. (__gcintentionally omitted due to shared ownership like mesh-in-model.) - Audio callbacks: NULL-state guard, callable-check, and
pcallerror handling (logged viaTraceLog). Documented audio-thread caveat. - Data buffers:
lua_tolstring(no NUL truncation) +get_data_buffer_checkedbounds guard. - Build:
-O2 -Wall -Wextra; fixedDecodeDataBase64signedness (raylib 6.0 signature). - Tests: new
tests/test_safety.lua; suite 248 passed, 0 failed.