refactor: file_getfilebuffer → file_readfile (std::vector<char>) — elimina 3 leaks (paleta + música gameplay + música cinemàtica)

This commit is contained in:
2026-04-16 09:43:27 +02:00
parent d343e719ca
commit b3ff620c81
12 changed files with 83 additions and 172 deletions

View File

@@ -9,13 +9,13 @@ namespace scenes {
void playMusic(const char* filename, int loop) {
if (!filename) return;
int size = 0;
char* buffer = file_getfilebuffer(filename, size);
if (!buffer) return;
// JA_LoadMusic fa una còpia del OGG comprimit (SDL_malloc), així que
// el `buffer` original es queda huérfano. Leak conegut heredat del
// codi original — es tractarà quan jfile tinga una API std::vector.
JA_PlayMusic(JA_LoadMusic(reinterpret_cast<Uint8*>(buffer), size, filename), loop);
auto buffer = file_readfile(filename);
if (buffer.empty()) return;
// JA_LoadMusic fa una còpia interna del OGG comprimit (via SDL_malloc)
// per a stb_vorbis. El `buffer` local es destruirà en sortir d'àmbit.
JA_PlayMusic(JA_LoadMusic(reinterpret_cast<Uint8*>(buffer.data()),
static_cast<Uint32>(buffer.size()), filename),
loop);
}
} // namespace scenes