From 863f8c0c0a1f3d8efe9b9cdb7f474efdfac54b76 Mon Sep 17 00:00:00 2001
From: Cameron Cawley <[EMAIL REDACTED]>
Date: Tue, 2 Jul 2024 11:05:31 +0100
Subject: [PATCH] stb_vorbis: Make static arrays const.
https://github.com/nothings/stb/pull/1660
---
src/codecs/stb_vorbis/stb_vorbis.h | 50 +++++++++++++++---------------
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/src/codecs/stb_vorbis/stb_vorbis.h b/src/codecs/stb_vorbis/stb_vorbis.h
index 00386eef..9accfc8d 100644
--- a/src/codecs/stb_vorbis/stb_vorbis.h
+++ b/src/codecs/stb_vorbis/stb_vorbis.h
@@ -839,9 +839,9 @@ struct stb_vorbis
int close_on_free;
#endif
- uint8 *stream;
- uint8 *stream_start;
- uint8 *stream_end;
+ const uint8 *stream;
+ const uint8 *stream_start;
+ const uint8 *stream_end;
uint32 stream_len;
@@ -1081,7 +1081,7 @@ static float square(float x)
// @OPTIMIZE: called multiple times per-packet with "constants"; move to setup
static int ilog(int32 n)
{
- static signed char log2_4[16] = { 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4 };
+ static const signed char log2_4[16] = { 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4 };
if (n < 0) return 0; // signed n returns 0
@@ -1218,8 +1218,8 @@ static void compute_accelerated_huffman(Codebook *c)
static int STBV_CDECL uint32_compare(const void *p, const void *q)
{
- uint32 x = * (uint32 *) p;
- uint32 y = * (uint32 *) q;
+ uint32 x = * (const uint32 *) p;
+ uint32 y = * (const uint32 *) q;
return x < y ? -1 : x > y;
}
@@ -1289,7 +1289,7 @@ static void compute_sorted_huffman(Codebook *c, uint8 *lengths, uint32 *values)
// only run while parsing the header (3 times)
static int vorbis_validate(uint8 *data)
{
- static uint8 vorbis[6] = { 'v', 'o', 'r', 'b', 'i', 's' };
+ static const uint8 vorbis[6] = { 'v', 'o', 'r', 'b', 'i', 's' };
return memcmp(data, vorbis, 6) == 0;
}
@@ -1380,8 +1380,8 @@ typedef struct
static int STBV_CDECL point_compare(const void *p, const void *q)
{
- stbv__floor_ordering *a = (stbv__floor_ordering *) p;
- stbv__floor_ordering *b = (stbv__floor_ordering *) q;
+ const stbv__floor_ordering *a = (const stbv__floor_ordering *) p;
+ const stbv__floor_ordering *b = (const stbv__floor_ordering *) q;
return a->x < b->x ? -1 : a->x > b->x;
}
@@ -1526,7 +1526,7 @@ static int set_file_offset(stb_vorbis *f, unsigned int loc)
}
-static uint8 ogg_page_header[4] = { 0x4f, 0x67, 0x67, 0x53 };
+static const uint8 ogg_page_header[4] = { 0x4f, 0x67, 0x67, 0x53 };
static int capture_pattern(vorb *f)
{
@@ -2047,7 +2047,7 @@ static int predict_point(int x, int x0, int x1, int y0, int y1)
}
// the following table is block-copied from the specification
-static float inverse_db_table[256] =
+static const float inverse_db_table[256] =
{
1.0649863e-07f, 1.1341951e-07f, 1.2079015e-07f, 1.2863978e-07f,
1.3699951e-07f, 1.4590251e-07f, 1.5538408e-07f, 1.6548181e-07f,
@@ -3310,7 +3310,7 @@ static int vorbis_decode_packet_rest(vorb *f, int *len, Mode *m, int left_start,
if (get_bits(f, 1)) {
short *finalY;
uint8 step2_flag[256];
- static int range_list[4] = { 256, 128, 86, 64 };
+ static const int range_list[4] = { 256, 128, 86, 64 };
int range = range_list[g->floor1_multiplier-1];
int offset = 2;
finalY = f->finalY[i];
@@ -3633,7 +3633,7 @@ static int is_whole_packet_present(stb_vorbis *f)
// of state to restore (primarily the page segment table)
int s = f->next_seg, first = TRUE;
- uint8 *p = f->stream;
+ const uint8 *p = f->stream;
if (s != -1) { // if we're not starting the packet with a 'continue on next page' flag
for (; s < f->segment_count; ++s) {
@@ -3648,7 +3648,7 @@ static int is_whole_packet_present(stb_vorbis *f)
first = FALSE;
}
for (; s == -1;) {
- uint8 *q;
+ const uint8 *q;
int n;
// check that we have the page header ready
@@ -4513,7 +4513,7 @@ void stb_vorbis_flush_pushdata(stb_vorbis *f)
f->channel_buffer_end = 0;
}
-static int vorbis_search_for_page_pushdata(vorb *f, uint8 *data, int data_len)
+static int vorbis_search_for_page_pushdata(vorb *f, const uint8 *data, int data_len)
{
int i,n;
for (i=0; i < f->page_crc_tests; ++i)
@@ -4619,11 +4619,11 @@ int stb_vorbis_decode_frame_pushdata(
if (f->page_crc_tests >= 0) {
*samples = 0;
- return vorbis_search_for_page_pushdata(f, (uint8 *) data, data_len);
+ return vorbis_search_for_page_pushdata(f, data, data_len);
}
- f->stream = (uint8 *) data;
- f->stream_end = (uint8 *) data + data_len;
+ f->stream = (const uint8 *) data;
+ f->stream_end = (const uint8 *) data + data_len;
f->error = VORBIS__no_error;
// check that we have the entire packet in memory
@@ -4681,8 +4681,8 @@ stb_vorbis *stb_vorbis_open_pushdata(
{
stb_vorbis *f, p;
vorbis_init(&p, alloc);
- p.stream = (uint8 *) data;
- p.stream_end = (uint8 *) data + data_len;
+ p.stream = (const uint8 *) data;
+ p.stream_end = (const uint8 *) data + data_len;
p.push_mode = TRUE;
if (!start_decoder(&p)) {
if (p.eof)
@@ -5310,9 +5310,9 @@ stb_vorbis * stb_vorbis_open_memory(const unsigned char *data, int len, int *err
return NULL;
}
vorbis_init(&p, alloc);
- p.stream = (uint8 *) data;
- p.stream_end = (uint8 *) data + len;
- p.stream_start = (uint8 *) p.stream;
+ p.stream = (const uint8 *) data;
+ p.stream_end = (const uint8 *) data + len;
+ p.stream_start = (const uint8 *) p.stream;
p.stream_len = len;
p.push_mode = FALSE;
if (start_decoder(&p)) {
@@ -5338,7 +5338,7 @@ stb_vorbis * stb_vorbis_open_memory(const unsigned char *data, int len, int *err
#define C (PLAYBACK_LEFT | PLAYBACK_RIGHT | PLAYBACK_MONO)
#define R (PLAYBACK_RIGHT | PLAYBACK_MONO)
-static int8 channel_position[7][6] =
+static const int8 channel_position[7][6] =
{
{ 0 },
{ C },
@@ -5453,7 +5453,7 @@ static void convert_samples_short(int buf_c, short **buffer, int b_offset, int d
{
int i;
if (buf_c != data_c && buf_c <= 2 && data_c <= 6) {
- static int channel_selector[3][2] = { {0}, {PLAYBACK_MONO}, {PLAYBACK_LEFT, PLAYBACK_RIGHT} };
+ static const int channel_selector[3][2] = { {0}, {PLAYBACK_MONO}, {PLAYBACK_LEFT, PLAYBACK_RIGHT} };
for (i=0; i < buf_c; ++i)
compute_samples(channel_selector[buf_c][i], buffer[i]+b_offset, data_c, data, d_offset, samples);
} else {