Browse Source

Make ringbuffer compatible with old compilers

Signed-off-by: falkTX <falktx@falktx.com>
pull/280/head
falkTX 4 years ago
parent
commit
0cbda5fbe8
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
1 changed files with 10 additions and 2 deletions
  1. +10
    -2
      distrho/extra/RingBuffer.hpp

+ 10
- 2
distrho/extra/RingBuffer.hpp View File

@@ -119,6 +119,14 @@ struct HugeStackBuffer {
uint8_t buf[size]; 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 // RingBufferControl templated class


@@ -670,7 +678,7 @@ class HeapRingBuffer : public RingBufferControl<HeapBuffer>
public: public:
/** Constructor. */ /** Constructor. */
HeapRingBuffer() noexcept HeapRingBuffer() noexcept
: heapBuffer({0, 0, 0, 0, false, nullptr})
: heapBuffer(HeapBuffer_INIT)
{ {
#ifndef DISTRHO_PROPER_CPP11_SUPPORT #ifndef DISTRHO_PROPER_CPP11_SUPPORT
std::memset(&heapBuffer, 0, sizeof(heapBuffer)); std::memset(&heapBuffer, 0, sizeof(heapBuffer));
@@ -735,7 +743,7 @@ class SmallStackRingBuffer : public RingBufferControl<SmallStackBuffer>
public: public:
/** Constructor. */ /** Constructor. */
SmallStackRingBuffer() noexcept SmallStackRingBuffer() noexcept
: stackBuffer({0, 0, 0, false, {0}})
: stackBuffer(StackBuffer_INIT)
{ {
#ifndef DISTRHO_PROPER_CPP11_SUPPORT #ifndef DISTRHO_PROPER_CPP11_SUPPORT
std::memset(&stackBuffer, 0, sizeof(stackBuffer)); std::memset(&stackBuffer, 0, sizeof(stackBuffer));


Loading…
Cancel
Save