I’am running into following bug, while using Blueprints and Blueprint Interfaces.
a) I have a BP Interface with one function, which returns a Vector array.
b) Then there is a BP ‘Base’ class, which implements this function and returns an empty array.
c) final BP is derived from b) and implements/overrides also interface function, but returns a valid array.
This is how it looks like before a restart:
Everything works as expected until I restart editor. Than I get an ‘unresolved compilation problem’ while starting editor and when I press Play a warning message is displayed (One or more blueprints has an unresolved compiler error, are you sure you want to Play in Editor?
Building_Store).
This is how it looks like after a editor restart:
When I press ‘Yes’, editor crashes: 0xC0000005…:
UE4Editor-CoreUObject.dll!UObject::CallFunction(FFrame & Stack, void * const Result, UFunction * Function) Line 450 C++
UE4Editor-CoreUObject.dll!UObject::ProcessContextOpcode(FFrame & Stack, void * const Result, bool bCanFailSilently) Line 1451 C++
UE4Editor-CoreUObject.dll!UObject::ProcessInternal(FFrame & Stack, void * const Result) Line 602 C++
UE4Editor-CoreUObject.dll!UObject::CallFunction(FFrame & Stack, void * const Result, UFunction * Function) Line 516 C++
UE4Editor-CoreUObject.dll!UObject::ProcessInternal(FFrame & Stack, void * const Result) Line 602 C++
UE4Editor-CoreUObject.dll!UObject::CallFunction(FFrame & Stack, void * const Result, UFunction * Function) Line 516 C++
UE4Editor-CoreUObject.dll!UObject::ProcessInternal(FFrame & Stack, void * const Result) Line 602 C++
UE4Editor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Result) Line 3716 C++
UE4Editor-CoreUObject.dll!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 924 C++
UE4Editor-Engine.dll!AActor::ProcessEvent(UFunction * Function, void * Parameters) Line 514 C++
UE4Editor-Engine.dll!AWorldSettings::NotifyBeginPlay() Line 126 C++
UE4Editor-Engine.dll!AGameMode::SetMatchState(FName NewState) Line 709 C++
UE4Editor-Engine.dll!AGameMode::StartPlay() Line 526 C++
UE4Editor-Engine.dll!UGameInstance::StartPIEGameInstance(ULocalPlayer * LocalPlayer, bool bInSimulateInEditor, bool bAnyBlueprintErrors, bool bStartInSpectatorMode) Line 218 C++
UE4Editor-UnrealEd.dll!UEditorEngine::CreatePIEGameInstance(int PIEInstance, bool bInSimulateInEditor, bool bAnyBlueprintErrors, bool bStartInSpectatorMode, bool bRunAsDedicated, float PIEStartTime) Line 2854 C++
UE4Editor-UnrealEd.dll!UEditorEngine::PlayInEditor(UWorld * InWorld, bool bInSimulateInEditor) Line 2209 C++
UE4Editor-UnrealEd.dll!UEditorEngine::StartQueuedPlayMapRequest() Line 972 C++
UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1239 C++
UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 348 C++
UE4Editor.exe!FEngineLoop::Tick() Line 2263 C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 142 C++
UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 191 C++
[External Code]
If I check overridden/implemented function of interface in BP c), I have noticed function signature is wrong. result of my function is empty (it does not expect a result anymore). If I delete implementation and reimplement it from scratch, it works until next editor restart.
I’am using latest code from origin/master.