summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-02-16 21:05:49 +0000
committerCarl Hetherington <cth@carlh.net>2020-02-16 22:28:25 +0100
commitedf88c66ae4900f6090558dda0667b19857fcb14 (patch)
tree348cd99b43ab3c986e3128a62ff120d93f771668
parentac112cdc14b0f600ac1c2d4e24f8b19eea132f54 (diff)
Better assertion error in copy_from.
-rw-r--r--src/lib/audio_buffers.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/audio_buffers.cc b/src/lib/audio_buffers.cc
index 825c6c2f3..3692c304e 100644
--- a/src/lib/audio_buffers.cc
+++ b/src/lib/audio_buffers.cc
@@ -190,7 +190,12 @@ AudioBuffers::copy_from (AudioBuffers const * from, int32_t frames_to_copy, int3
DCPOMATIC_ASSERT (from);
DCPOMATIC_ASSERT (read_offset >= 0 && (read_offset + frames_to_copy) <= from->_allocated_frames);
- DCPOMATIC_ASSERT (write_offset >= 0 && (write_offset + frames_to_copy) <= _allocated_frames);
+ if (write_offset < 0 || (write_offset + frames_to_copy) > _allocated_frames) {
+ throw ProgrammingError(
+ __FILE__, __LINE__,
+ String::compose("frames_to_copy=%1, read_offset=%2, write_offset=%3", frames_to_copy, read_offset, write_offset)
+ );
+ }
for (int i = 0; i < _channels; ++i) {
memcpy (_data[i] + write_offset, from->_data[i] + read_offset, frames_to_copy * sizeof(float));