From 4e0820dc545c498944a1552cfd206048d624af1c Mon Sep 17 00:00:00 2001 From: Guillaume Buisson Date: Mon, 21 Oct 2019 09:58:20 +0200 Subject: [PATCH] crashfix: IPv4Endpoint should be initialized before use --- OSC/Source/OSC/Private/OscSettings.cpp | 10 +++++----- OSC/Source/OSC/Private/OscSettings.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/OSC/Source/OSC/Private/OscSettings.cpp b/OSC/Source/OSC/Private/OscSettings.cpp index 0303fa9..9a6aca1 100644 --- a/OSC/Source/OSC/Private/OscSettings.cpp +++ b/OSC/Source/OSC/Private/OscSettings.cpp @@ -9,14 +9,14 @@ UOscSettings::UOscSettings() : ReceiveFrom("8000"), - MulticastLoopback(true), - _sendSocket(FUdpSocketBuilder(TEXT("OscSender")).Build()) + MulticastLoopback(true) { + FIPv4Endpoint::Initialize(); + _sendSocket = MakeShareable(FUdpSocketBuilder(TEXT("OscSender")).Build()); SendTargets.Add(TEXT("127.0.0.1:8000")); } UOscSettings::UOscSettings(FVTableHelper & helper) - : _sendSocket(FUdpSocketBuilder(TEXT("OscSender")).Build()) { // Does not need to be a valid object. } @@ -98,7 +98,7 @@ void UOscSettings::Send(const uint8 *buffer, int32 length, int32 targetIndex) bool error = false; for(const auto & address : _sendAddresses) { - if(!SendImpl(&_sendSocket.Get(), buffer, length, *address)) + if(!SendImpl(_sendSocket.Get(), buffer, length, *address)) { const auto target = address->ToString(true); UE_LOG(LogOSC, Error, TEXT("Cannot send OSC: %s : socket cannot send data"), *target); @@ -120,7 +120,7 @@ void UOscSettings::Send(const uint8 *buffer, int32 length, int32 targetIndex) else if(targetIndex < _sendAddresses.Num()) { bool error = false; - if(!SendImpl(&_sendSocket.Get(), buffer, length, *_sendAddresses[targetIndex])) + if(!SendImpl(_sendSocket.Get(), buffer, length, *_sendAddresses[targetIndex])) { const auto target = _sendAddresses[targetIndex]->ToString(true); UE_LOG(LogOSC, Error, TEXT("Cannot send OSC: %s : socket cannot send data"), *target); diff --git a/OSC/Source/OSC/Private/OscSettings.h b/OSC/Source/OSC/Private/OscSettings.h index a885e2e..deec70e 100644 --- a/OSC/Source/OSC/Private/OscSettings.h +++ b/OSC/Source/OSC/Private/OscSettings.h @@ -91,7 +91,7 @@ private: int32 AddSendTarget(const FString & ip_port); private: - TSharedRef _sendSocket; + TSharedPtr _sendSocket; TArray> _sendAddresses; TMap _sendAddressesIndex; TArray> _keyReceivers;