Fix bug 4746 - introduce SDL_zeroa macro.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
diff --git a/include/SDL_stdinc.h b/include/SDL_stdinc.h
index 28bb7b9..6ef5e3a 100644
--- a/include/SDL_stdinc.h
+++ b/include/SDL_stdinc.h
@@ -415,6 +415,7 @@ extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c,
#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x)))
#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
+#define SDL_zeroa(x) SDL_memset((x), 0, sizeof((x)))
/* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */
SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c
index e8c6cfb..768db02 100644
--- a/src/audio/SDL_audio.c
+++ b/src/audio/SDL_audio.c
@@ -948,7 +948,7 @@ SDL_AudioInit(const char *driver_name)
}
SDL_zero(current_audio);
- SDL_zero(open_devices);
+ SDL_zeroa(open_devices);
/* Select the proper audio driver */
if (driver_name == NULL) {
@@ -1608,7 +1608,7 @@ SDL_AudioQuit(void)
SDL_DestroyMutex(current_audio.detectionLock);
SDL_zero(current_audio);
- SDL_zero(open_devices);
+ SDL_zeroa(open_devices);
#ifdef HAVE_LIBSAMPLERATE_H
UnloadLibSampleRate();
diff --git a/src/audio/SDL_audiocvt.c b/src/audio/SDL_audiocvt.c
index 3d0e22e..284f1c5 100644
--- a/src/audio/SDL_audiocvt.c
+++ b/src/audio/SDL_audiocvt.c
@@ -915,7 +915,7 @@ SDL_BuildAudioCVT(SDL_AudioCVT * cvt,
cvt->dst_format = dst_fmt;
cvt->needed = 0;
cvt->filter_index = 0;
- SDL_zero(cvt->filters);
+ SDL_zeroa(cvt->filters);
cvt->len_mult = 1;
cvt->len_ratio = 1.0;
cvt->rate_incr = ((double) dst_rate) / ((double) src_rate);
diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c
index d5d4eed..ed6e410 100644
--- a/src/audio/SDL_wave.c
+++ b/src/audio/SDL_wave.c
@@ -647,7 +647,7 @@ MS_ADPCM_Decode(WaveFile *file, Uint8 **audio_buf, Uint32 *audio_len)
MS_ADPCM_ChannelState cstate[2];
SDL_zero(state);
- SDL_zero(cstate);
+ SDL_zeroa(cstate);
if (chunk->size != chunk->length) {
/* Could not read everything. Recalculate number of sample frames. */
diff --git a/src/joystick/SDL_gamecontroller.c b/src/joystick/SDL_gamecontroller.c
index d417a44..488ccb5 100644
--- a/src/joystick/SDL_gamecontroller.c
+++ b/src/joystick/SDL_gamecontroller.c
@@ -642,8 +642,8 @@ SDL_PrivateGameControllerParseControllerConfigString(SDL_GameController *gamecon
int i = 0;
const char *pchPos = pchString;
- SDL_zero(szGameButton);
- SDL_zero(szJoystickButton);
+ SDL_zeroa(szGameButton);
+ SDL_zeroa(szJoystickButton);
while (pchPos && *pchPos) {
if (*pchPos == ':') {
@@ -655,8 +655,8 @@ SDL_PrivateGameControllerParseControllerConfigString(SDL_GameController *gamecon
i = 0;
bGameButton = SDL_TRUE;
SDL_PrivateGameControllerParseElement(gamecontroller, szGameButton, szJoystickButton);
- SDL_zero(szGameButton);
- SDL_zero(szJoystickButton);
+ SDL_zeroa(szGameButton);
+ SDL_zeroa(szJoystickButton);
} else if (bGameButton) {
if (i >= sizeof(szGameButton)) {