From 6a0aa10c781d3535670682c127bb32b91e37bbda Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sun, 30 Sep 2018 23:39:58 +0200 Subject: [PATCH] mp3_afh: Move mode_text[] into header_mode(). The array is only used in header_mode(), so it should be local to the function. Also, it's confusing to let the last element play the role of the invalid header mode, and it's clearer to use ARRAY_SIZE() instead of spelling out the index of the last element. Next, it's unnecessary to write to the mp3header structure, so avoid this and mark the pointer argument const. Finally, the patch makes the array constant, not only the mode strings. --- mp3_afh.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mp3_afh.c b/mp3_afh.c index 42dd7539..471efd99 100644 --- a/mp3_afh.c +++ b/mp3_afh.c @@ -63,8 +63,6 @@ static const int mp3info_bitrate[2][3][14] = { }; static const int frame_size_index[] = {24000, 72000, 72000}; -static const char *mode_text[] = {"stereo", "joint stereo", "dual channel", "mono", "invalid"}; - #ifdef HAVE_ID3TAG #include @@ -433,10 +431,13 @@ static int header_frequency(struct mp3header *h) return frequencies[h->version][h->freq]; } -static const char *header_mode(struct mp3header *h) +static const char *header_mode(const struct mp3header *h) { - if (h->mode > 4) - h->mode = 4; /* invalid */ + const char * const mode_text[] = {"stereo", "joint stereo", + "dual channel", "mono"}; + + if (h->mode >= ARRAY_SIZE(mode_text)) + return "invalid"; return mode_text[h->mode]; } -- 2.39.5