| @@ -4266,7 +4266,7 @@ public: | |||
| if (! File(bridgeBinary.buffer()).existsAsFile()) | |||
| return nullptr; | |||
| return bridgeBinary.dup(); | |||
| return bridgeBinary.dupSafe(); | |||
| } | |||
| // ------------------------------------------------------------------- | |||
| @@ -294,9 +294,9 @@ bool BridgeRtClientControl::waitForClient(const uint msecs) noexcept | |||
| return false; | |||
| } | |||
| void BridgeRtClientControl::writeOpcode(const PluginBridgeRtClientOpcode opcode) noexcept | |||
| bool BridgeRtClientControl::writeOpcode(const PluginBridgeRtClientOpcode opcode) noexcept | |||
| { | |||
| writeUInt(static_cast<uint32_t>(opcode)); | |||
| return writeUInt(static_cast<uint32_t>(opcode)); | |||
| } | |||
| PluginBridgeRtClientOpcode BridgeRtClientControl::readOpcode() noexcept | |||
| @@ -442,11 +442,11 @@ void BridgeNonRtClientControl::waitIfDataIsReachingLimit() noexcept | |||
| carla_stderr("Server waitIfDataIsReachingLimit() reached and failed"); | |||
| } | |||
| void BridgeNonRtClientControl::writeOpcode(const PluginBridgeNonRtClientOpcode opcode) noexcept | |||
| bool BridgeNonRtClientControl::writeOpcode(const PluginBridgeNonRtClientOpcode opcode) noexcept | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(isServer,); | |||
| CARLA_SAFE_ASSERT_RETURN(isServer, false); | |||
| writeUInt(static_cast<uint32_t>(opcode)); | |||
| return writeUInt(static_cast<uint32_t>(opcode)); | |||
| } | |||
| PluginBridgeNonRtClientOpcode BridgeNonRtClientControl::readOpcode() noexcept | |||
| @@ -587,11 +587,11 @@ void BridgeNonRtServerControl::waitIfDataIsReachingLimit() noexcept | |||
| carla_stderr("Client waitIfDataIsReachingLimit() reached and failed"); | |||
| } | |||
| void BridgeNonRtServerControl::writeOpcode(const PluginBridgeNonRtServerOpcode opcode) noexcept | |||
| bool BridgeNonRtServerControl::writeOpcode(const PluginBridgeNonRtServerOpcode opcode) noexcept | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(! isServer,); | |||
| CARLA_SAFE_ASSERT_RETURN(! isServer, false); | |||
| writeUInt(static_cast<uint32_t>(opcode)); | |||
| return writeUInt(static_cast<uint32_t>(opcode)); | |||
| } | |||
| // ------------------------------------------------------------------------------------------------------------------- | |||
| @@ -247,7 +247,7 @@ struct BridgeRtClientControl : public CarlaRingBufferControl<SmallStackBuffer> { | |||
| // non-bridge, server | |||
| bool waitForClient(const uint msecs) noexcept; | |||
| void writeOpcode(const PluginBridgeRtClientOpcode opcode) noexcept; | |||
| bool writeOpcode(const PluginBridgeRtClientOpcode opcode) noexcept; | |||
| // bridge, client | |||
| PluginBridgeRtClientOpcode readOpcode() noexcept; | |||
| @@ -287,7 +287,7 @@ struct BridgeNonRtClientControl : public CarlaRingBufferControl<BigStackBuffer> | |||
| // non-bridge, server | |||
| void waitIfDataIsReachingLimit() noexcept; | |||
| void writeOpcode(const PluginBridgeNonRtClientOpcode opcode) noexcept; | |||
| bool writeOpcode(const PluginBridgeNonRtClientOpcode opcode) noexcept; | |||
| // bridge, client | |||
| PluginBridgeNonRtClientOpcode readOpcode() noexcept; | |||
| @@ -319,7 +319,7 @@ struct BridgeNonRtServerControl : public CarlaRingBufferControl<HugeStackBuffer> | |||
| // bridge, client | |||
| void waitIfDataIsReachingLimit() noexcept; | |||
| void writeOpcode(const PluginBridgeNonRtServerOpcode opcode) noexcept; | |||
| bool writeOpcode(const PluginBridgeNonRtServerOpcode opcode) noexcept; | |||
| CARLA_DECLARE_NON_COPY_STRUCT(BridgeNonRtServerControl) | |||
| }; | |||
| @@ -238,68 +238,68 @@ public: | |||
| // ------------------------------------------------------------------- | |||
| void writeBool(const bool value) noexcept | |||
| bool writeBool(const bool value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(bool)); | |||
| return tryWrite(&value, sizeof(bool)); | |||
| } | |||
| void writeByte(const uint8_t value) noexcept | |||
| bool writeByte(const uint8_t value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(uint8_t)); | |||
| return tryWrite(&value, sizeof(uint8_t)); | |||
| } | |||
| void writeShort(const int16_t value) noexcept | |||
| bool writeShort(const int16_t value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(int16_t)); | |||
| return tryWrite(&value, sizeof(int16_t)); | |||
| } | |||
| void writeUShort(const uint16_t value) noexcept | |||
| bool writeUShort(const uint16_t value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(uint16_t)); | |||
| return tryWrite(&value, sizeof(uint16_t)); | |||
| } | |||
| void writeInt(const int32_t value) noexcept | |||
| bool writeInt(const int32_t value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(int32_t)); | |||
| return tryWrite(&value, sizeof(int32_t)); | |||
| } | |||
| void writeUInt(const uint32_t value) noexcept | |||
| bool writeUInt(const uint32_t value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(uint32_t)); | |||
| return tryWrite(&value, sizeof(uint32_t)); | |||
| } | |||
| void writeLong(const int64_t value) noexcept | |||
| bool writeLong(const int64_t value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(int64_t)); | |||
| return tryWrite(&value, sizeof(int64_t)); | |||
| } | |||
| void writeULong(const uint64_t value) noexcept | |||
| bool writeULong(const uint64_t value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(uint64_t)); | |||
| return tryWrite(&value, sizeof(uint64_t)); | |||
| } | |||
| void writeFloat(const float value) noexcept | |||
| bool writeFloat(const float value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(float)); | |||
| return tryWrite(&value, sizeof(float)); | |||
| } | |||
| void writeDouble(const double value) noexcept | |||
| bool writeDouble(const double value) noexcept | |||
| { | |||
| tryWrite(&value, sizeof(double)); | |||
| return tryWrite(&value, sizeof(double)); | |||
| } | |||
| void writeCustomData(const void* const data, const uint32_t size) noexcept | |||
| bool writeCustomData(const void* const data, const uint32_t size) noexcept | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(data != nullptr,); | |||
| CARLA_SAFE_ASSERT_RETURN(size > 0,); | |||
| CARLA_SAFE_ASSERT_RETURN(data != nullptr, false); | |||
| CARLA_SAFE_ASSERT_RETURN(size > 0, false); | |||
| tryWrite(data, size); | |||
| return tryWrite(data, size); | |||
| } | |||
| template <typename T> | |||
| void writeCustomType(const T& type) noexcept | |||
| bool writeCustomType(const T& type) noexcept | |||
| { | |||
| tryWrite(&type, sizeof(T)); | |||
| return tryWrite(&type, sizeof(T)); | |||
| } | |||
| // ------------------------------------------------------------------- | |||