crashfix: IPv4Endpoint should be initialized before use

This commit is contained in:
Guillaume Buisson
2019-10-21 09:58:20 +02:00
parent 8f3ada2dd6
commit 4e0820dc54
2 changed files with 6 additions and 6 deletions
+5 -5
View File
@@ -9,14 +9,14 @@
UOscSettings::UOscSettings() UOscSettings::UOscSettings()
: ReceiveFrom("8000"), : ReceiveFrom("8000"),
MulticastLoopback(true), MulticastLoopback(true)
_sendSocket(FUdpSocketBuilder(TEXT("OscSender")).Build())
{ {
FIPv4Endpoint::Initialize();
_sendSocket = MakeShareable(FUdpSocketBuilder(TEXT("OscSender")).Build());
SendTargets.Add(TEXT("127.0.0.1:8000")); SendTargets.Add(TEXT("127.0.0.1:8000"));
} }
UOscSettings::UOscSettings(FVTableHelper & helper) UOscSettings::UOscSettings(FVTableHelper & helper)
: _sendSocket(FUdpSocketBuilder(TEXT("OscSender")).Build())
{ {
// Does not need to be a valid object. // 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; bool error = false;
for(const auto & address : _sendAddresses) 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); const auto target = address->ToString(true);
UE_LOG(LogOSC, Error, TEXT("Cannot send OSC: %s : socket cannot send data"), *target); 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()) else if(targetIndex < _sendAddresses.Num())
{ {
bool error = false; 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); const auto target = _sendAddresses[targetIndex]->ToString(true);
UE_LOG(LogOSC, Error, TEXT("Cannot send OSC: %s : socket cannot send data"), *target); UE_LOG(LogOSC, Error, TEXT("Cannot send OSC: %s : socket cannot send data"), *target);
+1 -1
View File
@@ -91,7 +91,7 @@ private:
int32 AddSendTarget(const FString & ip_port); int32 AddSendTarget(const FString & ip_port);
private: private:
TSharedRef<FSocket> _sendSocket; TSharedPtr<FSocket> _sendSocket;
TArray<TSharedRef<FInternetAddr>> _sendAddresses; TArray<TSharedRef<FInternetAddr>> _sendAddresses;
TMap<FString, int32> _sendAddressesIndex; TMap<FString, int32> _sendAddressesIndex;
TArray<std::unique_ptr<OscReceiverInputKey>> _keyReceivers; TArray<std::unique_ptr<OscReceiverInputKey>> _keyReceivers;