diff --git a/driver.c b/driver.c index c6040f2875..341b6cbfc5 100644 --- a/driver.c +++ b/driver.c @@ -21,7 +21,6 @@ #include "file.h" #include #include -#include #include #include "posix_string.h" @@ -288,13 +287,11 @@ void init_audio(void) size_t max_bufsamples = AUDIO_CHUNK_SIZE_NONBLOCKING * 2; // Used for recording even if audio isn't enabled. - g_extern.audio_data.conv_outsamples = (int16_t*)malloc(max_bufsamples * sizeof(int16_t) * AUDIO_MAX_RATIO); - assert(g_extern.audio_data.conv_outsamples); + ssnes_assert((g_extern.audio_data.conv_outsamples = (int16_t*)malloc(max_bufsamples * sizeof(int16_t) * AUDIO_MAX_RATIO))); g_extern.audio_data.chunk_size = g_extern.audio_data.block_chunk_size; // Needs to be able to hold full content of a full max_bufsamples in addition to its own. - g_extern.audio_data.rewind_buf = (int16_t*)malloc(max_bufsamples * sizeof(int16_t)); - assert(g_extern.audio_data.rewind_buf); + ssnes_assert((g_extern.audio_data.rewind_buf = (int16_t*)malloc(max_bufsamples * sizeof(int16_t)))); g_extern.audio_data.rewind_size = max_bufsamples; if (!g_settings.audio.enable) @@ -328,13 +325,11 @@ void init_audio(void) if (!g_extern.audio_data.source) g_extern.audio_active = false; - g_extern.audio_data.data = (float*)malloc(max_bufsamples * sizeof(float)); - assert(g_extern.audio_data.data); + ssnes_assert((g_extern.audio_data.data = (float*)malloc(max_bufsamples * sizeof(float)))); g_extern.audio_data.data_ptr = 0; - assert(g_settings.audio.out_rate < g_settings.audio.in_rate * AUDIO_MAX_RATIO); - g_extern.audio_data.outsamples = (float*)malloc(max_bufsamples * sizeof(float) * AUDIO_MAX_RATIO); - assert(g_extern.audio_data.outsamples); + ssnes_assert(g_settings.audio.out_rate < g_settings.audio.in_rate * AUDIO_MAX_RATIO); + ssnes_assert((g_extern.audio_data.outsamples = (float*)malloc(max_bufsamples * sizeof(float) * AUDIO_MAX_RATIO))); g_extern.audio_data.src_ratio = (double)g_settings.audio.out_rate / g_settings.audio.in_rate; @@ -416,10 +411,10 @@ static void init_filter(void) g_extern.filter.buffer = (uint32_t*)malloc(SSNES_SCALE_BASE * SSNES_SCALE_BASE * g_extern.filter.scale * g_extern.filter.scale * sizeof(uint32_t)); g_extern.filter.pitch = SSNES_SCALE_BASE * g_extern.filter.scale * sizeof(uint32_t); - assert(g_extern.filter.buffer); + ssnes_assert(g_extern.filter.buffer); g_extern.filter.colormap = (uint32_t*)malloc(32768 * sizeof(uint32_t)); - assert(g_extern.filter.colormap); + ssnes_assert(g_extern.filter.colormap); // Set up conversion map from 16-bit XRGB1555 to 32-bit ARGB. for (int i = 0; i < 32768; i++) diff --git a/file.c b/file.c index 56697cd031..7a4a38e778 100644 --- a/file.c +++ b/file.c @@ -21,7 +21,6 @@ #include "boolean.h" #include "libsnes.hpp" #include -#include #include #include "dynamic.h" #include "movie.h" @@ -986,23 +985,24 @@ bool path_file_exists(const char *path) void fill_pathname(char *out_path, const char *in_path, const char *replace, size_t size) { char tmp_path[MAXPATHLEN]; - assert(strlcpy(tmp_path, in_path, sizeof(tmp_path)) < sizeof(tmp_path)); + + ssnes_assert(strlcpy(tmp_path, in_path, sizeof(tmp_path)) < sizeof(tmp_path)); char *tok = strrchr(tmp_path, '.'); if (tok != NULL) *tok = '\0'; - assert(strlcpy(out_path, tmp_path, size) < size); - assert(strlcat(out_path, replace, size) < size); + ssnes_assert(strlcpy(out_path, tmp_path, size) < size); + ssnes_assert(strlcat(out_path, replace, size) < size); } void fill_pathname_noext(char *out_path, const char *in_path, const char *replace, size_t size) { - assert(strlcpy(out_path, in_path, size) < size); - assert(strlcat(out_path, replace, size) < size); + ssnes_assert(strlcpy(out_path, in_path, size) < size); + ssnes_assert(strlcat(out_path, replace, size) < size); } void fill_pathname_dir(char *in_dir, const char *in_basename, const char *replace, size_t size) { - assert(strlcat(in_dir, "/", size) < size); + ssnes_assert(strlcat(in_dir, "/", size) < size); const char *base = strrchr(in_basename, '/'); if (!base) @@ -1013,6 +1013,6 @@ void fill_pathname_dir(char *in_dir, const char *in_basename, const char *replac else base = in_basename; - assert(strlcat(in_dir, base, size) < size); - assert(strlcat(in_dir, replace, size) < size); + ssnes_assert(strlcat(in_dir, base, size) < size); + ssnes_assert(strlcat(in_dir, replace, size) < size); } diff --git a/general.h b/general.h index 9da36e0b6c..b6246fa41b 100644 --- a/general.h +++ b/general.h @@ -418,6 +418,9 @@ static inline void ssnes_sleep(unsigned msec) #endif } +#define ssnes_assert(cond) \ + if (!(cond)) { SSNES_ERR("Assertion failed at %s:%d!\n", __FILE__, __LINE__); exit(2); } + #endif