From abbea170e701626a3a4bf28ecd91a23d94a0c264 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Sat, 18 Apr 2015 19:01:35 +0200 Subject: [PATCH] preventing asserting on vector item access (nw) --- src/emu/sound.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/emu/sound.c b/src/emu/sound.c index 6c8f4b74da2..cf022cef8a8 100644 --- a/src/emu/sound.c +++ b/src/emu/sound.c @@ -598,6 +598,8 @@ void sound_stream::postload() void sound_stream::generate_samples(int samples) { + stream_sample_t **inputs = NULL; + stream_sample_t **outputs = NULL; // if we're already there, skip it if (samples <= 0) return; @@ -616,6 +618,11 @@ void sound_stream::generate_samples(int samples) m_input_array[inputnum] = generate_resampled_data(input, samples); } + if (m_input.size()>0) + { + inputs = &m_input_array[0]; + } + // loop over all outputs and compute the output pointer for (unsigned int outputnum = 0; outputnum < m_output.size(); outputnum++) { @@ -623,9 +630,14 @@ void sound_stream::generate_samples(int samples) m_output_array[outputnum] = &output.m_buffer[m_output_sampindex - m_output_base_sampindex]; } + if (m_output.size()>0) + { + outputs = &m_output_array[0]; + } + // run the callback VPRINTF((" callback(%p, %d)\n", this, samples)); - m_callback(*this, &m_input_array[0], &m_output_array[0], samples); + m_callback(*this, inputs, outputs, samples); VPRINTF((" callback done\n")); }