summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2021-08-08 23:02:51 -0400
committerWilliam Wilgus <me.theuser@yahoo.com>2021-08-10 11:22:13 +0000
commit4fb5aeb096ec911c54662caa8606c413b91deb00 (patch)
treecd01aee0a29b9583a8b203b0d276495d1007c32b /apps
parent2f0fd66e44a2f3535d0d161144156c1551249010 (diff)
downloadrockbox-4fb5aeb096ec911c54662caa8606c413b91deb00.tar.gz
rockbox-4fb5aeb096ec911c54662caa8606c413b91deb00.zip
recorder/pcm_record.c cleanup copy function
re: coverity write_write_order: In long(*s++) + *s++, s is written in *s++ and written in long(*s++) but the order in which the side effects take place is undefined because there is no intervening sequence point. Change-Id: I2911c240f3e85fcfbf77297e8579e02e217c5af5
Diffstat (limited to 'apps')
-rw-r--r--apps/recorder/pcm_record.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/apps/recorder/pcm_record.c b/apps/recorder/pcm_record.c
index b5de670c0d..0a6e1b5a51 100644
--- a/apps/recorder/pcm_record.c
+++ b/apps/recorder/pcm_record.c
@@ -873,13 +873,17 @@ static bool open_rec_file(bool create)
873static void * ICODE_ATTR 873static void * ICODE_ATTR
874copy_buffer_mono_lr(void *dst, const void *src, size_t src_size) 874copy_buffer_mono_lr(void *dst, const void *src, size_t src_size)
875{ 875{
876 int16_t *d = dst; 876 int16_t *d = (int16_t*) dst;
877 int16_t const *s = src; 877 int16_t const *s = (int16_t const*) src;
878 878 ssize_t copy_size = src_size;
879 /* mono = (L + R) / 2 */ 879
880 /* mono = (L + R) / 2 */
880 do 881 do
881 *d++ = ((int32_t){ *s++ } + *s++ + 1) >> 1; 882 {
882 while (src_size -= PCM_SAMP_SIZE); 883 *d++ = ((int32_t){s[0]} + s[1] + 1) >> 1;
884 s+=2;
885 }
886 while ((copy_size -= PCM_SAMP_SIZE) > 0);
883 887
884 return dst; 888 return dst;
885} 889}
@@ -888,13 +892,13 @@ copy_buffer_mono_lr(void *dst, const void *src, size_t src_size)
888static void * ICODE_ATTR 892static void * ICODE_ATTR
889copy_buffer_mono_l(void *dst, const void *src, size_t src_size) 893copy_buffer_mono_l(void *dst, const void *src, size_t src_size)
890{ 894{
891 int16_t *d = dst; 895 int16_t *d = (int16_t*)dst;
892 int16_t const *s = (int16_t *)src - 2; 896 int16_t const *s = (int16_t const*)src - 2;
893 897 ssize_t copy_size = src_size;
894 /* mono = L */ 898 /* mono = L */
895 do 899 do
896 *d++ = *(s += 2); 900 *d++ = *(s += 2);
897 while (src_size -= PCM_SAMP_SIZE); 901 while ((copy_size -= PCM_SAMP_SIZE) > 0);
898 902
899 return dst; 903 return dst;
900} 904}
@@ -903,13 +907,13 @@ copy_buffer_mono_l(void *dst, const void *src, size_t src_size)
903static void * ICODE_ATTR 907static void * ICODE_ATTR
904copy_buffer_mono_r(void *dst, const void *src, size_t src_size) 908copy_buffer_mono_r(void *dst, const void *src, size_t src_size)
905{ 909{
906 int16_t *d = dst; 910 int16_t *d = (int16_t*)dst;
907 int16_t const *s = (int16_t *)src - 1; 911 int16_t const *s = (int16_t const*)src - 1;
908 912 ssize_t copy_size = src_size;
909 /* mono = R */ 913 /* mono = R */
910 do 914 do
911 *d++ = *(s += 2); 915 *d++ = *(s += 2);
912 while (src_size -= PCM_SAMP_SIZE); 916 while ((copy_size -= PCM_SAMP_SIZE) > 0);
913 917
914 return dst; 918 return dst;
915} 919}