diff options
| author | DeeJayLSP <djlsplays@gmail.com> | 2024-08-27 23:56:26 -0300 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-16 17:25:14 +0200 |
| commit | 682ee73f64ffa8bdb257510ab52d21c7e8afbfae (patch) | |
| tree | 573c88ef8fa3f825ba5ffe17bdd8ec0ee3663fd8 /thirdparty | |
| parent | 9946eba398408505268bc5b0a5aeaae91d185139 (diff) | |
| download | redot-engine-682ee73f64ffa8bdb257510ab52d21c7e8afbfae.tar.gz | |
Fix memory leak on QOA import
(cherry picked from commit e67cc7346387c0bf27bd9606ebfca2f550d59bcd)
Diffstat (limited to 'thirdparty')
| -rw-r--r-- | thirdparty/README.md | 4 | ||||
| -rw-r--r-- | thirdparty/misc/patches/qoa-min-fix.patch | 14 | ||||
| -rw-r--r-- | thirdparty/misc/qoa.h | 6 |
3 files changed, 10 insertions, 14 deletions
diff --git a/thirdparty/README.md b/thirdparty/README.md index 9a56f6baa4..2e2d24e0d8 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -681,8 +681,8 @@ Collection of single-file libraries used in Godot components. * License: MIT - `qoa.h` * Upstream: https://github.com/phoboslab/qoa - * Version: git (5c2a86d615661f34636cf179abf4fa278d3257e0, 2024) - * Modifications: Inlined functions, patched uninitialized variables and untyped mallocs. + * Version: git (e0c69447d4d3945c3c92ac1751e4cdc9803a8303, 2024) + * Modifications: Added a few modifiers to comply with C++ nature. * License: MIT - `r128.{c,h}` * Upstream: https://github.com/fahickman/r128 diff --git a/thirdparty/misc/patches/qoa-min-fix.patch b/thirdparty/misc/patches/qoa-min-fix.patch index 38303a1521..6008b5f8bc 100644 --- a/thirdparty/misc/patches/qoa-min-fix.patch +++ b/thirdparty/misc/patches/qoa-min-fix.patch @@ -1,5 +1,5 @@ diff --git a/qoa.h b/qoa.h -index 592082933a..c890b88bd6 100644 +index cfed266bef..23612bb0bf 100644 --- a/qoa.h +++ b/qoa.h @@ -140,14 +140,14 @@ typedef struct { @@ -24,19 +24,15 @@ index 592082933a..c890b88bd6 100644 #ifndef QOA_NO_STDIO -@@ -394,9 +394,9 @@ unsigned int qoa_encode_frame(const short *sample_data, qoa_desc *qoa, unsigned - #ifdef QOA_RECORD_TOTAL_ERROR +@@ -395,7 +395,7 @@ unsigned int qoa_encode_frame(const short *sample_data, qoa_desc *qoa, unsigned qoa_uint64_t best_error = -1; #endif -- qoa_uint64_t best_slice; + qoa_uint64_t best_slice = 0; - qoa_lms_t best_lms; -- int best_scalefactor; -+ qoa_uint64_t best_slice = -1; -+ qoa_lms_t best_lms = {{-1, -1, -1, -1}, {-1, -1, -1, -1}}; -+ int best_scalefactor = -1; ++ qoa_lms_t best_lms = {}; + int best_scalefactor = 0; for (int sfi = 0; sfi < 16; sfi++) { - /* There is a strong correlation between the scalefactors of @@ -500,7 +500,7 @@ void *qoa_encode(const short *sample_data, qoa_desc *qoa, unsigned int *out_len) num_frames * QOA_LMS_LEN * 4 * qoa->channels + /* 4 * 4 bytes lms state per channel */ num_slices * 8 * qoa->channels; /* 8 byte slices */ diff --git a/thirdparty/misc/qoa.h b/thirdparty/misc/qoa.h index c890b88bd6..23612bb0bf 100644 --- a/thirdparty/misc/qoa.h +++ b/thirdparty/misc/qoa.h @@ -394,9 +394,9 @@ unsigned int qoa_encode_frame(const short *sample_data, qoa_desc *qoa, unsigned #ifdef QOA_RECORD_TOTAL_ERROR qoa_uint64_t best_error = -1; #endif - qoa_uint64_t best_slice = -1; - qoa_lms_t best_lms = {{-1, -1, -1, -1}, {-1, -1, -1, -1}}; - int best_scalefactor = -1; + qoa_uint64_t best_slice = 0; + qoa_lms_t best_lms = {}; + int best_scalefactor = 0; for (int sfi = 0; sfi < 16; sfi++) { /* There is a strong correlation between the scalefactors of |
