diff options
author | Wohlstand <admin@wohlnet.ru> | 2025-06-30 06:51:44 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2025-06-30 06:51:44 +0300 |
commit | fa7a8f6a395e3ee5ea9a045d60576b0ac45b6f96 (patch) | |
tree | 2c148a7f4394473ddacc957a791d360d0c6377fa /utils/midiplay/adlmidiplay.cpp | |
parent | ac371993c1af812eaf4445a5d5b6d537f9e1d87c (diff) | |
download | libADLMIDI-master.tar.gz libADLMIDI-master.tar.bz2 libADLMIDI-master.zip |
The .resize() method behaving faulty when -std=c++11 is set. It's definitely a bug of compiler.
#291
Diffstat (limited to 'utils/midiplay/adlmidiplay.cpp')
-rw-r--r-- | utils/midiplay/adlmidiplay.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/utils/midiplay/adlmidiplay.cpp b/utils/midiplay/adlmidiplay.cpp index e7ff8ef..e14cf9d 100644 --- a/utils/midiplay/adlmidiplay.cpp +++ b/utils/midiplay/adlmidiplay.cpp @@ -1113,10 +1113,15 @@ static int runAudioLoop(ADL_MIDIPlayer *myDevice, AudioOutputSpec &spec) # endif g_audioBuffer_lock.Lock(); +#if defined(__GNUC__) && (__GNUC__ == 15) // Workaround on faulty std::deque's resize() call when C++11 is set + for(size_t p = 0; p < got; ++p) + g_audioBuffer.push_back(buff[p]); +#else size_t pos = g_audioBuffer.size(); g_audioBuffer.resize(pos + got); for(size_t p = 0; p < got; ++p) g_audioBuffer[pos + p] = buff[p]; +#endif g_audioBuffer_lock.Unlock(); const AudioOutputSpec &spec = obtained; |