summaryrefslogtreecommitdiff
path: root/src/audio/include/stream_info.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-04-06 16:19:02 +1000
committerjacqueline <me@jacqueline.id.au>2023-04-19 10:29:40 +1000
commit25c5896dc5c239e3a175c6c8fc5d7368946adeb6 (patch)
treec5147094818afa223a2e155d83445f0a669317e4 /src/audio/include/stream_info.hpp
parent7a54ff0df9c18b662e5bdc11ac2e26ff052cfa4d (diff)
downloadtangara-fw-25c5896dc5c239e3a175c6c8fc5d7368946adeb6.tar.gz
add some bounds checking asserts
Diffstat (limited to 'src/audio/include/stream_info.hpp')
-rw-r--r--src/audio/include/stream_info.hpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/audio/include/stream_info.hpp b/src/audio/include/stream_info.hpp
index 5a36384c..6256f2ee 100644
--- a/src/audio/include/stream_info.hpp
+++ b/src/audio/include/stream_info.hpp
@@ -67,6 +67,7 @@ class InputStream {
explicit InputStream(RawStream* s) : raw_(s) {}
void consume(std::size_t bytes) const {
+ assert(raw_->info->bytes_in_stream >= bytes);
auto new_data = raw_->data.subspan(bytes);
std::move(new_data.begin(), new_data.end(), raw_->data.begin());
raw_->info->bytes_in_stream = new_data.size_bytes();
@@ -88,7 +89,10 @@ class OutputStream {
public:
explicit OutputStream(RawStream* s) : raw_(s) {}
- void add(std::size_t bytes) const { raw_->info->bytes_in_stream += bytes; }
+ void add(std::size_t bytes) const {
+ assert(raw_->info->bytes_in_stream + bytes <= raw_->data.size_bytes());
+ raw_->info->bytes_in_stream += bytes;
+ }
bool prepare(const StreamInfo::Format& new_format) {
if (std::holds_alternative<std::monostate>(raw_->info->format)) {