From 9546ecbd9ebf258ef1eecce3b5bf6d8b6995fc5d Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Wed, 18 Dec 2024 14:11:13 -0700 Subject: [PATCH] Add assert for buffer --- LEGO1/omni/include/mxwavepresenter.h | 1 + LEGO1/omni/src/audio/mxwavepresenter.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/LEGO1/omni/include/mxwavepresenter.h b/LEGO1/omni/include/mxwavepresenter.h index ab0b3f2d..f14b33ec 100644 --- a/LEGO1/omni/include/mxwavepresenter.h +++ b/LEGO1/omni/include/mxwavepresenter.h @@ -96,6 +96,7 @@ class MxWavePresenter : public MxSoundPresenter { struct { ma_audio_buffer buffer; MxU8* data; + MxU32 length; MxU32 offset; } m_ab; diff --git a/LEGO1/omni/src/audio/mxwavepresenter.cpp b/LEGO1/omni/src/audio/mxwavepresenter.cpp index b69450a6..bf16d520 100644 --- a/LEGO1/omni/src/audio/mxwavepresenter.cpp +++ b/LEGO1/omni/src/audio/mxwavepresenter.cpp @@ -59,6 +59,7 @@ void MxWavePresenter::Destroy(MxBool p_fromDestructor) MxBool MxWavePresenter::WriteToSoundBuffer(void* p_audioPtr, MxU32 p_length) { if (m_action->IsLooping()) { + assert(m_ab.offset + p_length <= m_ab.length); memcpy(m_ab.data + m_ab.offset, p_audioPtr, p_length); m_ab.offset += p_length; return TRUE; @@ -136,7 +137,8 @@ void MxWavePresenter::StartingTickle() sampleRate ); - m_ab.data = new MxU8[ma_get_bytes_per_frame(format, channels) * sizeInFrames]; + m_ab.length = ma_get_bytes_per_frame(format, channels) * sizeInFrames; + m_ab.data = new MxU8[m_ab.length]; ma_audio_buffer_config config = ma_audio_buffer_config_init(format, channels, sizeInFrames, m_ab.data, NULL);