diff options
author | William Wilgus <wilgus.william@gmail.com> | 2021-08-08 23:02:51 -0400 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2021-08-10 11:22:13 +0000 |
commit | 4fb5aeb096ec911c54662caa8606c413b91deb00 (patch) | |
tree | cd01aee0a29b9583a8b203b0d276495d1007c32b | |
parent | 2f0fd66e44a2f3535d0d161144156c1551249010 (diff) | |
download | rockbox-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
-rw-r--r-- | apps/recorder/pcm_record.c | 32 |
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) | |||
873 | static void * ICODE_ATTR | 873 | static void * ICODE_ATTR |
874 | copy_buffer_mono_lr(void *dst, const void *src, size_t src_size) | 874 | copy_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) | |||
888 | static void * ICODE_ATTR | 892 | static void * ICODE_ATTR |
889 | copy_buffer_mono_l(void *dst, const void *src, size_t src_size) | 893 | copy_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) | |||
903 | static void * ICODE_ATTR | 907 | static void * ICODE_ATTR |
904 | copy_buffer_mono_r(void *dst, const void *src, size_t src_size) | 908 | copy_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 | } |