From 74cf412f47c22ce418c761d78510a84e63ebd9de Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 20 Mar 2019 19:27:46 +0100 Subject: [PATCH] utils: add debugable spa_memcpy --- spa/include/spa/utils/defs.h | 11 +++++++++++ spa/plugins/alsa/alsa-utils.c | 8 ++++---- spa/plugins/audioconvert/channelmix-ops-sse.c | 2 +- spa/plugins/audioconvert/channelmix-ops.c | 2 +- spa/plugins/audioconvert/fmt-ops.c | 16 ++++++++-------- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/spa/include/spa/utils/defs.h b/spa/include/spa/utils/defs.h index 9226f48de..eb9b9917e 100644 --- a/spa/include/spa/utils/defs.h +++ b/spa/include/spa/utils/defs.h @@ -239,6 +239,17 @@ struct spa_param_info { strerror(_err); \ }) +#ifdef SPA_DEBUG_MEMCPY +#define spa_memcpy(d,s,n) \ +({ \ + fprintf(stderr, "%s:%u %s() memcpy(%p, %p, %zd)\n", \ + __FILE__, __LINE__, __func__, (d), (s), (size_t)(n)); \ + memcpy(d,s,n); \ +}) +#else +#define spa_memcpy(d,s,n) memcpy(d,s,n) +#endif + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/spa/plugins/alsa/alsa-utils.c b/spa/plugins/alsa/alsa-utils.c index db1bb0461..0b7a91e4f 100644 --- a/spa/plugins/alsa/alsa-utils.c +++ b/spa/plugins/alsa/alsa-utils.c @@ -716,9 +716,9 @@ again: l0 = SPA_MIN(n_bytes, maxsize - offs); l1 = n_bytes - l0; - memcpy(dst, src + offs, l0); + spa_memcpy(dst, src + offs, l0); if (l1 > 0) - memcpy(dst + l0, src, l1); + spa_memcpy(dst + l0, src, l1); state->ready_offset += n_bytes; @@ -811,9 +811,9 @@ push_frames(struct state *state, l0 = SPA_MIN(n_bytes, d[0].maxsize - offs); l1 = n_bytes - l0; - memcpy(SPA_MEMBER(d[0].data, offs, void), src, l0); + spa_memcpy(SPA_MEMBER(d[0].data, offs, void), src, l0); if (l1 > 0) - memcpy(d[0].data, src + l0, l1); + spa_memcpy(d[0].data, src + l0, l1); d[0].chunk->offset = index; d[0].chunk->size = n_bytes; diff --git a/spa/plugins/audioconvert/channelmix-ops-sse.c b/spa/plugins/audioconvert/channelmix-ops-sse.c index fdd2e49ff..d167f0f78 100644 --- a/spa/plugins/audioconvert/channelmix-ops-sse.c +++ b/spa/plugins/audioconvert/channelmix-ops-sse.c @@ -39,7 +39,7 @@ channelmix_copy_sse(void *data, int n_dst, void *dst[n_dst], } else if (v == VOLUME_NORM) { for (i = 0; i < n_dst; i++) - memcpy(d[i], s[i], n_samples * sizeof(float)); + spa_memcpy(d[i], s[i], n_samples * sizeof(float)); } else { for (i = 0; i < n_dst; i++) { diff --git a/spa/plugins/audioconvert/channelmix-ops.c b/spa/plugins/audioconvert/channelmix-ops.c index 1b6781635..08e045901 100644 --- a/spa/plugins/audioconvert/channelmix-ops.c +++ b/spa/plugins/audioconvert/channelmix-ops.c @@ -49,7 +49,7 @@ channelmix_copy(void *data, int n_dst, void *dst[n_dst], } else if (v == VOLUME_NORM) { for (i = 0; i < n_dst; i++) - memcpy(d[i], s[i], n_samples * sizeof(float)); + spa_memcpy(d[i], s[i], n_samples * sizeof(float)); } else { for (i = 0; i < n_dst; i++) diff --git a/spa/plugins/audioconvert/fmt-ops.c b/spa/plugins/audioconvert/fmt-ops.c index ff0be8862..db8e1ce15 100644 --- a/spa/plugins/audioconvert/fmt-ops.c +++ b/spa/plugins/audioconvert/fmt-ops.c @@ -95,13 +95,13 @@ conv_copy8d(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src { uint32_t i; for (i = 0; i < n_channels; i++) - memcpy(dst[i], src[i], n_samples); + spa_memcpy(dst[i], src[i], n_samples); } static void conv_copy8(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[], uint32_t n_channels, uint32_t n_samples) { - memcpy(dst[0], src[0], n_samples * n_channels); + spa_memcpy(dst[0], src[0], n_samples * n_channels); } @@ -110,13 +110,13 @@ conv_copy16d(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT sr { uint32_t i; for (i = 0; i < n_channels; i++) - memcpy(dst[i], src[i], n_samples * sizeof(int16_t)); + spa_memcpy(dst[i], src[i], n_samples * sizeof(int16_t)); } static void conv_copy16(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[], uint32_t n_channels, uint32_t n_samples) { - memcpy(dst[0], src[0], n_samples * sizeof(int16_t) * n_channels); + spa_memcpy(dst[0], src[0], n_samples * sizeof(int16_t) * n_channels); } static void @@ -124,13 +124,13 @@ conv_copy24d(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT sr { uint32_t i; for (i = 0; i < n_channels; i++) - memcpy(dst[i], src[i], n_samples * 3); + spa_memcpy(dst[i], src[i], n_samples * 3); } static void conv_copy24(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[], uint32_t n_channels, uint32_t n_samples) { - memcpy(dst[0], src[0], n_samples * 3 * n_channels); + spa_memcpy(dst[0], src[0], n_samples * 3 * n_channels); } static void @@ -138,13 +138,13 @@ conv_copy32d(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT sr { uint32_t i; for (i = 0; i < n_channels; i++) - memcpy(dst[i], src[i], n_samples * sizeof(int32_t)); + spa_memcpy(dst[i], src[i], n_samples * sizeof(int32_t)); } static void conv_copy32(void *data, void * SPA_RESTRICT dst[], const void * SPA_RESTRICT src[], uint32_t n_channels, uint32_t n_samples) { - memcpy(dst[0], src[0], n_samples * sizeof(int32_t) * n_channels); + spa_memcpy(dst[0], src[0], n_samples * sizeof(int32_t) * n_channels); } static void