What I am trying to do:
Download image data from URL and add it to Dictionary
TMap<FString, TArray<uint8>> URLToImageTArrayDictionary ;
What is working:
Assigning Dictionary values on Game-Thread works fine. Forex.
FString key = "key";
TArray<uint8> IntArray;
IntArray.Init(10, 5);
URLToImageTArrayDictionary.Add(key, IntArray); //No Problem
What is not working: Calling .Add(key, value) from a parallel thread via a Delegate.
DownloadTexturesFromURLs()
{
TSharedRef<IHttpRequest> ThumbRequest = FHttpModule::Get().CreateRequest();
ThumbRequest->SetVerb("GET");
ThumbRequest->SetURL(URL);
ThumbRequest->OnProcessRequestComplete().BindRaw(this, &DataTransfer::OnImageDataReceived);
ThumbRequest->ProcessRequest();
}
OnImageDataReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)
{
if (bWasSuccessful && Response.IsValid())
{
FString key = "key";
TArray<uint8> IntArray;
IntArray.Init(10, 5);
URLToImageTArrayDictionary.Add(key, IntArray); //This crashes with error given log
}
}
Crash Logs:
[2020.05.18-12.43.39:871][658]LogWindows: Windows GetLastError: The operation completed successfully. (0)
[2020.05.18-12.43.42:274][658]LogWindows: Error: === Critical error:
===
[2020.05.18-12.43.42:274][658]LogWindows: Error:
[2020.05.18-12.43.42:274][658]LogWindows: Error: Assertion failed: Index>=0 && Index<NumBits [File:C:\Program Files\Epic Games\UE_4.24\Engine\Source\Runtime\Core\Public\Containers/BitArray.h] [Line: 737]
[2020.05.18-12.43.42:274][658]LogWindows: Error:
[2020.05.18-12.43.42:274][658]LogWindows: Error:
[2020.05.18-12.43.42:274][658]LogWindows: Error:
[2020.05.18-12.43.42:274][658]LogWindows: Error: [Callstack] 0x00007ff9d353a799 KERNELBASE.dll!UnknownFunction []
[2020.05.18-12.43.42:274][658]LogWindows: Error: [Callstack] 0x00007ff96567a7b6 UE4Editor-Core.dll!UnknownFunction []
[2020.05.18-12.43.42:274][658]LogWindows: Error: [Callstack] 0x00007ff96567dc58 UE4Editor-Core.dll!UnknownFunction []
[2020.05.18-12.43.42:274][658]LogWindows: Error: [Callstack] 0x00007ff965432c7d UE4Editor-Core.dll!UnknownFunction []
[2020.05.18-12.43.42:274][658]LogWindows: Error: [Callstack] 0x00007ff9653bfd43 UE4Editor-Core.dll!UnknownFunction []
[2020.05.18-12.43.42:274][658]LogWindows: Error: [Callstack] 0x00007ff9653c20c0 UE4Editor-Core.dll!UnknownFunction []
[2020.05.18-12.43.42:274][658]LogWindows: Error: [Callstack] 0x00007ff9a8aa6bc7 UE4Editor-xx-0001.dll!TBitArray<FDefaultBitArrayAllocator>::Add() [C:\Program Files\Epic Games\UE_4.24\Engine\Source\Runtime\Core\Public\Containers\BitArray.h:346]
[2020.05.18-12.43.42:274][658]LogWindows: Error: [Callstack] 0x00007ff9a8aa2b7d UE4Editor-xx-0001.dll!TSet<TTuple<FString,TArray<unsigned char,TSizedDefaultAllocator<32> >
>,TDefaultMapHashableKeyFuncs<FString,TArray<unsigned char,TSizedDefaultAllocator<32>
>,0>,FDefaultSetAllocator>::Emplace<TPairInitializer<FString const &,TArray<unsigned char,TSizedDefaultAllocator<32> > const &> >() [C:\Program Files\Epic Games\UE_4.24\Engine\Source\Runtime\Core\Public\Containers\Set.h:588]
[2020.05.18-12.43.42:274][658]LogWindows: Error: [Callstack] 0x00007ff9a8aa8619 UE4Editor-xx-0001.dll!Classname::OnImageDataReceived() [C:dir/file.cpp:180]