From 0cbda5fbe81f0cdd67a5c40ef97b7c45e2ea913e Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 24 May 2021 17:52:14 +0100 Subject: [PATCH] Make ringbuffer compatible with old compilers Signed-off-by: falkTX --- distrho/extra/RingBuffer.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/distrho/extra/RingBuffer.hpp b/distrho/extra/RingBuffer.hpp index e8238a6e..bc779b9a 100644 --- a/distrho/extra/RingBuffer.hpp +++ b/distrho/extra/RingBuffer.hpp @@ -119,6 +119,14 @@ struct HugeStackBuffer { uint8_t buf[size]; }; +#ifdef DISTRHO_PROPER_CPP11_SUPPORT +# define HeapBuffer_INIT {0, 0, 0, 0, false, nullptr} +# define StackBuffer_INIT {0, 0, 0, false, {0}} +#else +# define HeapBuffer_INIT +# define StackBuffer_INIT +#endif + // ----------------------------------------------------------------------- // RingBufferControl templated class @@ -670,7 +678,7 @@ class HeapRingBuffer : public RingBufferControl public: /** Constructor. */ HeapRingBuffer() noexcept - : heapBuffer({0, 0, 0, 0, false, nullptr}) + : heapBuffer(HeapBuffer_INIT) { #ifndef DISTRHO_PROPER_CPP11_SUPPORT std::memset(&heapBuffer, 0, sizeof(heapBuffer)); @@ -735,7 +743,7 @@ class SmallStackRingBuffer : public RingBufferControl public: /** Constructor. */ SmallStackRingBuffer() noexcept - : stackBuffer({0, 0, 0, false, {0}}) + : stackBuffer(StackBuffer_INIT) { #ifndef DISTRHO_PROPER_CPP11_SUPPORT std::memset(&stackBuffer, 0, sizeof(stackBuffer));