From 3fb0c8b54a0af705d1450af292355bccff4e5b3a Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Tue, 27 Dec 2022 13:22:43 +0100
Subject: [PATCH] Remove/Rename SDL_FreeWAV() to SDL_free()
---
WhatsNew.txt | 1 +
docs/README-migration.md | 5 +++++
include/SDL3/SDL_audio.h | 23 +++--------------------
include/SDL3/SDL_oldnames.h | 6 ++++++
src/audio/SDL_wave.c | 8 --------
src/dynapi/SDL_dynapi.sym | 1 -
src/dynapi/SDL_dynapi_overrides.h | 1 -
src/dynapi/SDL_dynapi_procs.h | 1 -
test/loopwave.c | 4 ++--
test/loopwavequeue.c | 4 ++--
test/testaudiohotplug.c | 2 +-
test/testmultiaudio.c | 4 ++--
test/testresample.c | 12 ++++++------
13 files changed, 28 insertions(+), 44 deletions(-)
diff --git a/WhatsNew.txt b/WhatsNew.txt
index 2d0a1d7b76a8..bd4511c820ed 100644
--- a/WhatsNew.txt
+++ b/WhatsNew.txt
@@ -16,6 +16,7 @@ General:
* RW_SEEK_END -> SDL_RW_SEEK_END
* RW_SEEK_SET -> SDL_RW_SEEK_SET
* The following functions have been renamed:
+ * SDL_FreeWAV => SDL_free
* Removed the following functions from the API, see docs/README-migration.md for details:
* SDL_CalculateGammaRamp()
* SDL_CreateRGBSurface()
diff --git a/docs/README-migration.md b/docs/README-migration.md
index 6f1ca3e5053c..e782a673433e 100644
--- a/docs/README-migration.md
+++ b/docs/README-migration.md
@@ -40,6 +40,11 @@ begin_code.h and close_code.h in the public headers have been renamed to SDL_beg
The vi format comments have been removed from source code. Vim users can use the [editorconfig plugin](https://github.com/editorconfig/editorconfig-vim) to automatically set tab spacing for the SDL coding style.
+## SDL_audio.h
+
+The following functions have been renamed:
+* SDL_FreeWAV => SDL_free
+
## SDL_cpuinfo.h
- SDL_Has3DNow() has been removed; there is no replacement.
diff --git a/include/SDL3/SDL_audio.h b/include/SDL3/SDL_audio.h
index 51c83440d4c0..6c436f4e1fa1 100644
--- a/include/SDL3/SDL_audio.h
+++ b/include/SDL3/SDL_audio.h
@@ -808,7 +808,7 @@ extern DECLSPEC void SDLCALL SDL_PauseAudioDevice(SDL_AudioDeviceID dev,
* data in the buffer. The `samples` member is set to a sane default and all
* others are set to zero.
*
- * It's necessary to use SDL_FreeWAV() to free the audio data returned in
+ * It's necessary to use SDL_free() to free the audio data returned in
* `audio_buf` when it is no longer used.
*
* Because of the underspecification of the .WAV format, there are many
@@ -860,11 +860,11 @@ extern DECLSPEC void SDLCALL SDL_PauseAudioDevice(SDL_AudioDeviceID dev,
* more information.
*
* When the application is done with the data returned in
- * `audio_buf`, it should call SDL_FreeWAV() to dispose of it.
+ * `audio_buf`, it should call SDL_free() to dispose of it.
*
* \since This function is available since SDL 3.0.0.
*
- * \sa SDL_FreeWAV
+ * \sa SDL_free
* \sa SDL_LoadWAV
*/
extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src,
@@ -880,23 +880,6 @@ extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src,
#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \
SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len)
-/**
- * Free data previously allocated with SDL_LoadWAV() or SDL_LoadWAV_RW().
- *
- * After a WAVE file has been opened with SDL_LoadWAV() or SDL_LoadWAV_RW()
- * its data can eventually be freed with SDL_FreeWAV(). It is safe to call
- * this function with a NULL pointer.
- *
- * \param audio_buf a pointer to the buffer created by SDL_LoadWAV() or
- * SDL_LoadWAV_RW()
- *
- * \since This function is available since SDL 3.0.0.
- *
- * \sa SDL_LoadWAV
- * \sa SDL_LoadWAV_RW
- */
-extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf);
-
/**
* Initialize an SDL_AudioCVT structure for conversion.
*
diff --git a/include/SDL3/SDL_oldnames.h b/include/SDL3/SDL_oldnames.h
index 24f36f69525c..4ffcffec007d 100644
--- a/include/SDL3/SDL_oldnames.h
+++ b/include/SDL3/SDL_oldnames.h
@@ -39,6 +39,9 @@
*/
#ifdef SDL_ENABLE_OLD_NAMES
+/* ##SDL_audio.h */
+#define SDL_FreeWAV SDL_free
+
/* ##SDL_keycode.h */
#define KMOD_ALT SDL_KMOD_ALT
#define KMOD_CAPS SDL_KMOD_CAPS
@@ -74,6 +77,9 @@
#else /* !SDL_ENABLE_OLD_NAMES */
+/* ##SDL_audio.h */
+#define SDL_FreeWAV SDL_FreeWAV_renamed_SDL_free
+
/* ##SDL_keycode.h */
#define KMOD_ALT KMOD_ALT_renamed_SDL_KMOD_ALT
#define KMOD_CAPS KMOD_CAPS_renamed_SDL_KMOD_CAPS
diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c
index c28a31a45d63..04c4f6455aab 100644
--- a/src/audio/SDL_wave.c
+++ b/src/audio/SDL_wave.c
@@ -2124,11 +2124,3 @@ SDL_LoadWAV_RW(SDL_RWops *src, int freesrc, SDL_AudioSpec *spec, Uint8 **audio_b
return spec;
}
-
-/* Since the WAV memory is allocated in the shared library, it must also
- be freed here. (Necessary under Win32, VC++)
- */
-void SDL_FreeWAV(Uint8 *audio_buf)
-{
- SDL_free(audio_buf);
-}
diff --git a/src/dynapi/SDL_dynapi.sym b/src/dynapi/SDL_dynapi.sym
index 1a3e2d69c865..6b5d565c2295 100644
--- a/src/dynapi/SDL_dynapi.sym
+++ b/src/dynapi/SDL_dynapi.sym
@@ -48,7 +48,6 @@ SDL3_0.0.0 {
SDL_PauseAudio;
SDL_PauseAudioDevice;
SDL_LoadWAV_RW;
- SDL_FreeWAV;
SDL_BuildAudioCVT;
SDL_ConvertAudio;
SDL_NewAudioStream;
diff --git a/src/dynapi/SDL_dynapi_overrides.h b/src/dynapi/SDL_dynapi_overrides.h
index dec3fab441bb..35a0a662cd3a 100644
--- a/src/dynapi/SDL_dynapi_overrides.h
+++ b/src/dynapi/SDL_dynapi_overrides.h
@@ -82,7 +82,6 @@
#define SDL_PauseAudio SDL_PauseAudio_REAL
#define SDL_PauseAudioDevice SDL_PauseAudioDevice_REAL
#define SDL_LoadWAV_RW SDL_LoadWAV_RW_REAL
-#define SDL_FreeWAV SDL_FreeWAV_REAL
#define SDL_BuildAudioCVT SDL_BuildAudioCVT_REAL
#define SDL_ConvertAudio SDL_ConvertAudio_REAL
#define SDL_MixAudio SDL_MixAudio_REAL
diff --git a/src/dynapi/SDL_dynapi_procs.h b/src/dynapi/SDL_dynapi_procs.h
index 7a80f80de69d..ce81e7f833d8 100644
--- a/src/dynapi/SDL_dynapi_procs.h
+++ b/src/dynapi/SDL_dynapi_procs.h
@@ -109,7 +109,6 @@ SDL_DYNAPI_PROC(SDL_AudioStatus,SDL_GetAudioDeviceStatus,(SDL_AudioDeviceID a),(
SDL_DYNAPI_PROC(void,SDL_PauseAudio,(int a),(a),)
SDL_DYNAPI_PROC(void,SDL_PauseAudioDevice,(SDL_AudioDeviceID a, int b),(a,b),)
SDL_DYNAPI_PROC(SDL_AudioSpec*,SDL_LoadWAV_RW,(SDL_RWops *a, int b, SDL_AudioSpec *c, Uint8 **d, Uint32 *e),(a,b,c,d,e),return)
-SDL_DYNAPI_PROC(void,SDL_FreeWAV,(Uint8 *a),(a),)
SDL_DYNAPI_PROC(int,SDL_BuildAudioCVT,(SDL_AudioCVT *a, SDL_AudioFormat b, Uint8 c, int d, SDL_AudioFormat e, Uint8 f, int g),(a,b,c,d,e,f,g),return)
SDL_DYNAPI_PROC(int,SDL_ConvertAudio,(SDL_AudioCVT *a),(a),return)
SDL_DYNAPI_PROC(void,SDL_MixAudio,(Uint8 *a, const Uint8 *b, Uint32 c, int d),(a,b,c,d),)
diff --git a/test/loopwave.c b/test/loopwave.c
index eccee138b7d4..a4d05e04dbd0 100644
--- a/test/loopwave.c
+++ b/test/loopwave.c
@@ -59,7 +59,7 @@ open_audio()
device = SDL_OpenAudioDevice(NULL, SDL_FALSE, &wave.spec, NULL, 0);
if (!device) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't open audio: %s\n", SDL_GetError());
- SDL_FreeWAV(wave.sound);
+ SDL_free(wave.sound);
quit(2);
}
@@ -171,7 +171,7 @@ int main(int argc, char *argv[])
/* Clean up on signal */
close_audio();
- SDL_FreeWAV(wave.sound);
+ SDL_free(wave.sound);
SDL_free(filename);
SDL_Quit();
return 0;
diff --git a/test/loopwavequeue.c b/test/loopwavequeue.c
index 3acd92fba6c7..25fce1ec5002 100644
--- a/test/loopwavequeue.c
+++ b/test/loopwavequeue.c
@@ -112,7 +112,7 @@ int main(int argc, char *argv[])
/* Initialize fillerup() variables */
if (SDL_OpenAudio(&wave.spec, NULL) < 0) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't open audio: %s\n", SDL_GetError());
- SDL_FreeWAV(wave.sound);
+ SDL_free(wave.sound);
quit(2);
}
@@ -139,7 +139,7 @@ int main(int argc, char *argv[])
/* Clean up on signal */
SDL_CloseAudio();
- SDL_FreeWAV(wave.sound);
+ SDL_free(wave.sound);
SDL_free(filename);
SDL_Quit();
return 0;
diff --git a/test/testaudiohotplug.c b/test/testaudiohotplug.c
index a5d3c73a007c..085dbb030014 100644
--- a/test/testaudiohotplug.c
+++ b/test/testaudiohotplug.c
@@ -194,7 +194,7 @@ int main(int argc, char *argv[])
/* Clean up on signal */
/* Quit audio first, then free WAV. This prevents access violations in the audio threads. */
SDL_QuitSubSystem(SDL_INIT_AUDIO);
- SDL_FreeWAV(sound);
+ SDL_free(sound);
SDL_free(filename);
SDL_Quit();
return 0;
diff --git a/test/testmultiaudio.c b/test/testmultiaudio.c
index 906cda3cf79c..1e6ad500f53f 100644
--- a/test/testmultiaudio.c
+++ b/test/testmultiaudio.c
@@ -62,7 +62,7 @@ void loop()
#endif
SDL_PauseAudioDevice(cbd[0].dev, 1);
SDL_CloseAudioDevice(cbd[0].dev);
- SDL_FreeWAV(sound);
+ SDL_free(sound);
SDL_Quit();
}
}
@@ -190,7 +190,7 @@ int main(int argc, char **argv)
SDL_GetError());
} else {
test_multi_audio(devcount);
- SDL_FreeWAV(sound);
+ SDL_free(sound);
}
SDL_free(file);
diff --git a/test/testresample.c b/test/testresample.c
index 7d40778f81a3..1487d3d22e20 100644
--- a/test/testresample.c
+++ b/test/testresample.c
@@ -51,7 +51,7 @@ int main(int argc, char **argv)
if (SDL_BuildAudioCVT(&cvt, spec.format, spec.channels, spec.freq,
spec.format, cvtchans, cvtfreq) == -1) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "failed to build CVT: %s\n", SDL_GetError());
- SDL_FreeWAV(data);
+ SDL_free(data);
SDL_Quit();
return 4;
}
@@ -60,7 +60,7 @@ int main(int argc, char **argv)
cvt.buf = (Uint8 *)SDL_malloc((size_t)len * cvt.len_mult);
if (cvt.buf == NULL) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Out of memory.\n");
- SDL_FreeWAV(data);
+ SDL_free(data);
SDL_Quit();
return 5;
}
@@ -69,7 +69,7 @@ int main(int argc, char **argv)
if (SDL_ConvertAudio(&cvt) == -1) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Conversion failed: %s\n", SDL_GetError());
SDL_free(cvt.buf);
- SDL_FreeWAV(data);
+ SDL_free(data);
SDL_Quit();
return 6;
}
@@ -79,7 +79,7 @@ int main(int argc, char **argv)
if (io == NULL) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "fopen('%s') failed: %s\n", argv[2], SDL_GetError());
SDL_free(cvt.buf);
- SDL_FreeWAV(data);
+ SDL_free(data);
SDL_Quit();
return 7;
}
@@ -106,13 +106,13 @@ int main(int argc, char **argv)
if (SDL_RWclose(io) == -1) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "fclose('%s') failed: %s\n", argv[2], SDL_GetError());
SDL_free(cvt.buf);
- SDL_FreeWAV(data);
+ SDL_free(data);
SDL_Quit();
return 8;
} /* if */
SDL_free(cvt.buf);
- SDL_FreeWAV(data);
+ SDL_free(data);
SDL_Quit();
return 0;
} /* main */