Browse Source

More noexcept stuff

tags/1.9.4
falkTX 11 years ago
parent
commit
dfee9c936d
5 changed files with 21 additions and 11 deletions
  1. +1
    -1
      source/utils/CarlaMathUtils.hpp
  2. +10
    -6
      source/utils/CarlaRingBuffer.hpp
  3. +1
    -1
      source/utils/CarlaThread.hpp
  4. +1
    -1
      source/utils/CarlaVstUtils.hpp
  5. +8
    -2
      source/utils/Lv2AtomQueue.hpp

+ 1
- 1
source/utils/CarlaMathUtils.hpp View File

@@ -83,7 +83,7 @@ const T& carla_fixValue(const T& min, const T& max, const T& value) noexcept
* Get next power of 2. * Get next power of 2.
*/ */
static inline static inline
uint32_t carla_nextPowerOf2(uint32_t size)
uint32_t carla_nextPowerOf2(uint32_t size) noexcept
{ {
// http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 // http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
--size; --size;


+ 10
- 6
source/utils/CarlaRingBuffer.hpp View File

@@ -128,8 +128,10 @@ public:
CARLA_SAFE_ASSERT_RETURN(fBuffer != nullptr,); CARLA_SAFE_ASSERT_RETURN(fBuffer != nullptr,);


#ifdef CARLA_OS_WIN #ifdef CARLA_OS_WIN
::VirtualLock(fBuffer, sizeof(BufferStruct));
::VirtualLock(fBuffer->buf, fBuffer->size);
try {
::VirtualLock(fBuffer, sizeof(BufferStruct));
::VirtualLock(fBuffer->buf, fBuffer->size);
} CARLA_SAFE_EXCEPTION("RingBufferControl::lockMemory");
#else #else
::mlock(fBuffer, sizeof(BufferStruct)); ::mlock(fBuffer, sizeof(BufferStruct));
::mlock(fBuffer->buf, fBuffer->size); ::mlock(fBuffer->buf, fBuffer->size);
@@ -290,15 +292,17 @@ protected:
private: private:
BufferStruct* fBuffer; BufferStruct* fBuffer;


static void memoryBarrier()
static void memoryBarrier() noexcept
{ {
try {
#if defined(CARLA_OS_MAC) #if defined(CARLA_OS_MAC)
::OSMemoryBarrier();
::OSMemoryBarrier();
#elif defined(CARLA_OS_WIN) #elif defined(CARLA_OS_WIN)
::MemoryBarrier();
::MemoryBarrier();
#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 401 #elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 401
::__sync_synchronize();
::__sync_synchronize();
#endif #endif
} CARLA_SAFE_EXCEPTION("RingBufferControl::memoryBarrier");
} }


CARLA_PREVENT_HEAP_ALLOCATION CARLA_PREVENT_HEAP_ALLOCATION


+ 1
- 1
source/utils/CarlaThread.hpp View File

@@ -160,7 +160,7 @@ public:


try { try {
pthread_cancel(threadId); pthread_cancel(threadId);
} catch(...) {}
} CARLA_SAFE_EXCEPTION("pthread_cancel");


return false; return false;
} }


+ 1
- 1
source/utils/CarlaVstUtils.hpp View File

@@ -147,7 +147,7 @@ bool vstPluginCanDo(AEffect* const effect, const char* const feature) noexcept


try { try {
ret = (effect->dispatcher(effect, effCanDo, 0, 0, const_cast<char*>(feature), 0.0f) == 1); ret = (effect->dispatcher(effect, effCanDo, 0, 0, const_cast<char*>(feature), 0.0f) == 1);
} catch(...) {}
} CARLA_SAFE_EXCEPTION("vstPluginCanDo");


return ret; return ret;
} }


+ 8
- 2
source/utils/Lv2AtomQueue.hpp View File

@@ -63,8 +63,13 @@ public:
// shouldn't really happen please... // shouldn't really happen please...
CARLA_SAFE_ASSERT_RETURN(size > 0,); CARLA_SAFE_ASSERT_RETURN(size > 0,);


fLv2Buffer.size = carla_nextPowerOf2(size);
fLv2Buffer.buf = new char[fLv2Buffer.size];
const uint32_t p2size(carla_nextPowerOf2(size));

try {
fLv2Buffer.buf = new char[p2size];
} CARLA_SAFE_EXCEPTION_RETURN("Lv2AtomRingBufferControl::createBuffer",);

fLv2Buffer.size = p2size;
setRingBuffer(&fLv2Buffer, true); setRingBuffer(&fLv2Buffer, true);
lockMemory(); lockMemory();
} }
@@ -251,6 +256,7 @@ public:
queue.fRingBufferCtrl.clear(); queue.fRingBufferCtrl.clear();
} }


// used for tmp buffers only
void copyAndDumpDataFromQueue(Lv2AtomQueue& queue, char dumpBuf[]) noexcept void copyAndDumpDataFromQueue(Lv2AtomQueue& queue, char dumpBuf[]) noexcept
{ {
// lock source // lock source


Loading…
Cancel
Save