From 808bb2269ac8eb64ff5fbc030525740f003feb7a Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sat, 7 Dec 2024 04:37:45 -0800 Subject: [PATCH] Try to workaround a Clang bug not recognizing some spans --- alc/alu.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/alc/alu.cpp b/alc/alu.cpp index 2d81818303..8e3f6a1f15 100644 --- a/alc/alu.cpp +++ b/alc/alu.cpp @@ -2142,8 +2142,8 @@ void Write(const al::span InBuffer, void *OutBuffer, cons ASSUME(FrameStep > 0); ASSUME(SamplesToDo > 0); - const auto output = al::span{static_cast(OutBuffer), (Offset+SamplesToDo)*FrameStep} - .subspan(Offset*FrameStep); + const auto outbuf = al::span{static_cast(OutBuffer), (Offset+SamplesToDo)*FrameStep}; + const auto output = outbuf.subspan(Offset*FrameStep); size_t c{0}; for(const FloatBufferLine &inbuf : InBuffer) { @@ -2174,7 +2174,8 @@ void Write(const al::span InBuffer, al::span OutBu for(auto *dstbuf : OutBuffers) { const auto src = al::span{*srcbuf}.first(SamplesToDo); - const auto dst = al::span{static_cast(dstbuf), Offset+SamplesToDo}.subspan(Offset); + const auto dstline = al::span{static_cast(dstbuf), Offset+SamplesToDo}; + const auto dst = dstline.subspan(Offset); std::transform(src.cbegin(), src.end(), dst.begin(), SampleConv); ++srcbuf; }