summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-10-22 14:53:58 +0200
committerCarl Hetherington <cth@carlh.net>2025-10-22 21:15:16 +0200
commit82c92387d303b912184519f485dd1c8b658223f9 (patch)
tree268f8d72f4e22e6125cce41f138d54f1814f839c
parent05b92f0ff44d9a758de8bbb555dde83351b9133c (diff)
Fix some warnings on macOS about variable-sized arrays.
-rw-r--r--src/lib/dcpomatic_socket.cc16
-rw-r--r--src/lib/image.cc4
-rw-r--r--src/wx/video_waveform_plot.cc3
3 files changed, 11 insertions, 12 deletions
diff --git a/src/lib/dcpomatic_socket.cc b/src/lib/dcpomatic_socket.cc
index 7aecf752f..33182e4a9 100644
--- a/src/lib/dcpomatic_socket.cc
+++ b/src/lib/dcpomatic_socket.cc
@@ -278,18 +278,18 @@ Socket::check_read_digest ()
DCPOMATIC_ASSERT (_read_digester);
int const size = _read_digester->size ();
- uint8_t ref[size];
- _read_digester->get (ref);
+ std::vector<uint8_t> ref(size);
+ _read_digester->get(ref.data());
/* Make sure _read_digester is gone before we call read() so that the digest
* isn't itself digested.
*/
_read_digester.reset ();
- uint8_t actual[size];
- read (actual, size);
+ std::vector<uint8_t> actual(size);
+ read(actual.data(), size);
- return memcmp(ref, actual, size) == 0;
+ return ref == actual;
}
@@ -299,15 +299,15 @@ Socket::finish_write_digest ()
DCPOMATIC_ASSERT (_write_digester);
int const size = _write_digester->size();
- uint8_t buffer[size];
- _write_digester->get (buffer);
+ std::vector<uint8_t> buffer(size);
+ _write_digester->get(buffer.data());
/* Make sure _write_digester is gone before we call write() so that the digest
* isn't itself digested.
*/
_write_digester.reset ();
- write (buffer, size);
+ write(buffer.data(), size);
}
diff --git a/src/lib/image.cc b/src/lib/image.cc
index b1557bf47..f0d6f914c 100644
--- a/src/lib/image.cc
+++ b/src/lib/image.cc
@@ -286,7 +286,7 @@ Image::crop_scale_window (
round_height_for_subsampling((out_size.height - inter_size.height) / 2, out_desc)
);
- uint8_t* scale_out_data[out->planes()];
+ vector<uint8_t*> scale_out_data(out->planes());
for (int c = 0; c < out->planes(); ++c) {
int const x = lrintf(out->bytes_per_pixel(c) * corner.x);
scale_out_data[c] = out->data()[c] + x + out->stride()[c] * (corner.y / out->vertical_factor(c));
@@ -296,7 +296,7 @@ Image::crop_scale_window (
scale_context,
scale_in_data.data(), stride(),
0, cropped_size.height,
- scale_out_data, out->stride()
+ scale_out_data.data(), out->stride()
);
sws_freeContext (scale_context);
diff --git a/src/wx/video_waveform_plot.cc b/src/wx/video_waveform_plot.cc
index 2827689a7..d9fbfb11e 100644
--- a/src/wx/video_waveform_plot.cc
+++ b/src/wx/video_waveform_plot.cc
@@ -162,8 +162,7 @@ VideoWaveformPlot::create_waveform ()
strip is the number of samples in image with the corresponding group of
values.
*/
- int strip[waveform_height];
- memset (strip, 0, waveform_height * sizeof(int));
+ std::vector<int> strip(waveform_height);
int* ip = _image->data (_component) + x;
for (int y = 0; y < image_size.height; ++y) {