From 8ab6c3bb9ec0aff00a17eea6c6796eec73e76058 Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 13 Jan 2026 12:17:40 +0000 Subject: [PATCH] CoreAudio: Fix build issue with Xcode 15.2 due to iterator traits requirement --- .../juce_audio_devices/native/juce_CoreAudio_mac.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/juce_audio_devices/native/juce_CoreAudio_mac.cpp b/modules/juce_audio_devices/native/juce_CoreAudio_mac.cpp index 2dae23c5d6..7210e15c9d 100644 --- a/modules/juce_audio_devices/native/juce_CoreAudio_mac.cpp +++ b/modules/juce_audio_devices/native/juce_CoreAudio_mac.cpp @@ -1115,14 +1115,17 @@ private: for (auto index = 0; index < numInputChans; ++index) { const auto info = inStream->channelInfo.getReference (index); - const auto src = StrideIterator { ((const float*) inInputData->mBuffers[info.streamNum].mData) + info.dataOffsetSamples, - info.dataStrideSamples } - + (ptrdiff_t) sampleOffset; + auto src = StrideIterator { ((const float*) inInputData->mBuffers[info.streamNum].mData) + info.dataOffsetSamples, + info.dataStrideSamples } + + (ptrdiff_t) sampleOffset; if (src.stride == 0) // if this is zero, info is invalid continue; - std::copy (src, src + (ptrdiff_t) numSamplesInChunk, inStream->tempBuffers[(size_t) index]); + const auto end = src + (ptrdiff_t) numSamplesInChunk; + + for (auto dst = inStream->tempBuffers[(size_t) index]; src != end; ++dst, ++src) + *dst = *src; } // only pass a timestamp for the first chunk of each buffer