Files
UnrealEngineUWP/Engine/Source/Developer/ScriptDisassembler/Private/ScriptDisassembler.cpp

1111 lines
32 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
/*=============================================================================
ScriptDisassembler.cpp: Disassembler for Kismet bytecode.
=============================================================================*/
#include "ScriptDisassembler.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "UObject/Object.h"
#include "UObject/Class.h"
#include "UObject/UObjectHash.h"
#include "UObject/UObjectIterator.h"
#include "UObject/UnrealType.h"
DEFINE_LOG_CATEGORY_STATIC(LogScriptDisassembler, Log, All);
/////////////////////////////////////////////////////
// FKismetBytecodeDisassembler
// Construct a disassembler that will output to the specified archive.
FKismetBytecodeDisassembler::FKismetBytecodeDisassembler(FOutputDevice& InAr)
: Ar(InAr)
{
InitTables();
}
// Disassemble all of the script code in a single structure.
void FKismetBytecodeDisassembler::DisassembleStructure(UFunction* Source)
{
Script.Empty();
Script.Append(Source->Script);
int32 ScriptIndex = 0;
while (ScriptIndex < Script.Num())
{
Ar.Logf(TEXT("Label_0x%X:"), ScriptIndex);
AddIndent();
SerializeExpr(ScriptIndex);
DropIndent();
}
}
// Disassemble all functions in any classes that have matching names.
void FKismetBytecodeDisassembler::DisassembleAllFunctionsInClasses(FOutputDevice& Ar, const FString& ClassnameSubstring)
{
FKismetBytecodeDisassembler Disasm(Ar);
for (TObjectIterator<UClass> ClassIter; ClassIter; ++ClassIter)
{
UClass* Class = *ClassIter;
FString ClassName = Class->GetName();
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3125172) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3053250 on 2016/07/18 by Steve.Robb TNot metafunction added. Change 3053252 on 2016/07/18 by Steve.Robb New TIsEnumClass trait. Change 3061345 on 2016/07/22 by Robert.Manuszewski Changing FMallocStomp::GetAllocationSize() to return the requested allocation size instead of the physical allocation size to make FMallocStomp work properly with FMallocPoisonProxy Change 3061377 on 2016/07/22 by Graeme.Thornton Added bStripAnimationDataOnDedicatedServer option to UAnimationSettings which will remove all compressed data from cooked server data. Disabled by default Change 3064592 on 2016/07/26 by Steven.Hutton Uploading repository files Change 3064595 on 2016/07/26 by Steven.Hutton Assign crashes to buggs based not just on Callstack but also based on Error message. Error messages have "data" masked out and are then compared to a table of error messages to find similar messages. Ensures are not currently filtered by error message. Change 3066046 on 2016/07/27 by Graeme.Thornton Better dedicated client/server class exclusion during cooking - Add class lists to cooker settings so they can be modified in the editor Change 3066077 on 2016/07/27 by Graeme.Thornton Move Paragon NeedsLoadForServer calls over to the new config based system Change 3066203 on 2016/07/27 by Chris.Wood CrashReportProcess logging and Slack reporting improvements to monitor disk space. [UE-31129] - Crash Report server need to alert on Slack when the PDB cache is full Change 3066276 on 2016/07/27 by Graeme.Thornton Move simple NeedsLoadForClient implementations over to new config based system Change 3068019 on 2016/07/28 by Graeme.Thornton Don't call ReleaseResources on UStaticMesh if we never render, and therefore never actually initialize the resources - Corrects some bad stats Change 3068218 on 2016/07/28 by Chris.Wood CrashReportProcess 1.1.18 passes BuildVersion to MinidumpDiagnostics [UE-31706] - Add new BuildVersion string to crash context and website Also modified command line log file ini settings to stop MDD stalling trying to sort and delete its logs. Change 3071665 on 2016/08/01 by Robert.Manuszewski Moving RemoveNamesFromMasterList from UEnum destructor to BeginDestroy to avoid potential issues when its package has already been destroyed. Change 3073388 on 2016/08/02 by Graeme.Thornton Invalidate string asset reference tags after finishing up loading of an async package Change 3073745 on 2016/08/02 by Robert.Manuszewski Disabling logging to memory in shipping by default. From now on FOutputDeviceMemory will be an opt-in for games. #jira FORT-27839 Change 3074866 on 2016/08/03 by Robert.Manuszewski PR #2650: Fixed a bug where newline escape sequence wasnt written to the pipe (Contributed by ozturkhakki) Change 3075128 on 2016/08/03 by Steve.Robb Static analysis fixes: error C2065: 'ThisOuterWorld': undeclared identifier Change 3075130 on 2016/08/03 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'LODLevel' Change 3075131 on 2016/08/03 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Owner' Change 3075235 on 2016/08/03 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'AnimToOperateOn' Change 3075248 on 2016/08/03 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'ParentProfile' Change 3075662 on 2016/08/03 by Steve.Robb Static analysis/buffer size fix: warning C28020: The expression '_Param_(7)>=sizeof(ICMP_ECHO_REPLY)+_Param_(4)+8' is not true at this call Change 3075668 on 2016/08/03 by Steve.Robb Static analysis fix: warning C6326: Potential comparison of a constant with another constant Change 3075679 on 2016/08/03 by Chris.Wood Added -NoTrimCallstack command line arg to MDD calls from CRP 1.1.19 [OR-26335] - 29.1 crash reporter generating reports with no callstacks / info New MDD has -NoTrimCallstack option to leave possibly irrelevant entires in the stack. Trimming is somewhat arbitrary and based on string matching. I'd rather see the whole thing. Change 3077070 on 2016/08/04 by Steve.Robb Dead array slack tracking code removed. Change 3077113 on 2016/08/04 by Steve.Robb TEnumAsByte is now deprecated for enum classes. All current uses fixed (which tidies up that code anyway). New FArchive::op<< for enum classes. Generated code now never uses TEnumAsByte for enum classes. Change 3077117 on 2016/08/04 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'DefaultSettings' Change 3078709 on 2016/08/05 by Steve.Robb FUNCTION_NO_NULL_RETURN_* macros added to statically annotate a function to say that it never returns a null pointer. TObjectIterator annotated to never return null. NewObject annotated to never return null. Change 3078836 on 2016/08/05 by Graeme.Thornton Silently skip creating exports from a package where the outer is also an export and has been filtered at runtime during loading Change 3082217 on 2016/08/09 by Steve.Robb Missing #include for FUniqueNetIdRepl added. Change 3083679 on 2016/08/10 by Chris.Wood CrashReportProcess performance improvements. CRP v1.1.22 [UE-34402] - Crash Reporter: Improve CRP performance by allowing multiple MDD instances [UE-34403] - Crash Reporter: CRP should throw away crashes when backlog is too large to avoid runaway Passing lock details to MDD on command line and managing multiple MDD tasks in CRP. Configurable values for range of queue sizes that cause us to throw away crashes. Change 3085362 on 2016/08/11 by Steve.Robb Rule-of-three fixes for FAIMessageObserver, to prevent accidents. From here: https://udn.unrealengine.com/questions/306507/tstaticarray-doesnt-call-destructor-on-elements-be.html Change 3085396 on 2016/08/11 by Steve.Robb Swap can now be configured via the TUseBitwiseSwap trait to not use Memswap, which can be less optimal for certain types. Change 3088840 on 2016/08/15 by Steve.Robb TRemoveReference moved to its own header. Change 3088858 on 2016/08/15 by Steve.Robb TDecay moved to its own header. Change 3088963 on 2016/08/15 by Steve.Robb Invoke function, for doing a generic call on a generic callable thing. Equivalent to std::invoke. Change 3089144 on 2016/08/15 by Steve.Robb Algo::Transform updated to use Invoke. Algorithm tests updated to test the new features. Change 3089147 on 2016/08/15 by Steve.Robb TLess and TGreater moved to their own headers and defaulted to void as a type-deducing version, as per std::. Change 3090243 on 2016/08/16 by Steve.Robb New Algo::Sort and Algo::SortBy algorithms. Change 3090387 on 2016/08/16 by Steve.Robb Improved bitwise swapping for Swap. See: https://udn.unrealengine.com/questions/306922/swap-is-painfully-slow.html Change 3090444 on 2016/08/16 by Steve.Robb Ptr+Size overloads removed after discussion - MakeArrayView should be used instead. Change 3090495 on 2016/08/16 by Steve.Robb Assert when FString::Mid is passed a negative count. #jira UE-18756 Change 3093455 on 2016/08/18 by Steve.Robb Debuggability and efficiency improvements to UScriptStruct::DeferCppStructOps. Change 3094476 on 2016/08/19 by Steve.Robb BOM removed from InvariantCulture.h. Change 3094697 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6237: (<zero> && <expression>) is always zero. <expression> is never evaluated and might have side effects. Change 3094702 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Interactor'. Change 3094715 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6385: Reading invalid data from 'Order': the readable size is '256' bytes, but '8160' bytes may be read. Change 3094737 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'OwnedComponent'. warning C28182: Dereferencing NULL pointer. 'Child' contains the same NULL value as 'AttachToComponent' did. Change 3094750 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Actor'. Change 3094768 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'LevelSequence'. warning C6011: Dereferencing NULL pointer 'Actor'. Change 3094774 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'CallFunctionNode'. Change 3094783 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'TargetPin'. Change 3094807 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'SourceClass'. Change 3094815 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'VarNode'. warning C6011: Dereferencing NULL pointer 'SourceClass'. Change 3094840 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'TunnelGraph'. warning C28182: Dereferencing NULL pointer. 'GraphNode' contains the same NULL value as 'SourceNode' did. Change 3094864 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'SpawnClassPin'. Change 3094880 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'PrevIfIndexMatchesStatement'. Change 3094886 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'SpawnBlueprintPin'. Change 3094903 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'K2Node'. Change 3094916 on 2016/08/19 by Steve.Robb Static analysis fix: Dereferencing NULL pointer 'CompilerContext'. Change 3094931 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'VariablePin'. Change 3094935 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'CurrentPin'. Change 3094943 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Pin'. warning C28182: Dereferencing NULL pointer. 'Graph' contains the same NULL value as 'TargetGraph' did. Change 3094960 on 2016/08/19 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'LastOutPin'. Change 3095046 on 2016/08/19 by Steve.Robb Single parameter version of CastChecked tagged to never return null. Change 3095054 on 2016/08/19 by Steve.Robb Committed wrong version in CL# 3095046. Change 3095089 on 2016/08/19 by Steve.Robb Static analysis fixes: warning C6509: Invalid annotation: 'return' cannot be referenced in some contexts warning C6101: Returning uninitialized memory '*lpdwExitCode'. Change 3096035 on 2016/08/22 by Steve.Robb Fix for static lighting in pixel inspector. Change 3096039 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'World'. Change 3096045 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Actor'. Change 3096058 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'OtherPin'. Change 3096059 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'MainMesh'. Change 3096066 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'SourceType'. Change 3096070 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'LastPushStatement'. Change 3096074 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'OriginalDataTableInPin'. Change 3096075 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'CurrentPin'. Change 3096081 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'RunningPlatformData'. Change 3096156 on 2016/08/22 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'BP'. warning C6011: Dereferencing NULL pointer 'Object'. Change 3096308 on 2016/08/22 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'TopMipData'. warning C6011: Dereferencing NULL pointer 'MipCoverageData[0]'. Change 3096315 on 2016/08/22 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'OldParent'. warning C6011: Dereferencing NULL pointer 'TestExecutionInfo'. Change 3096318 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'OwnerClass'. Change 3096322 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'StaticMeshInstanceData'. Change 3096337 on 2016/08/22 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Pin'. warning C6011: Dereferencing NULL pointer 'SpawnVarPin'. Change 3096345 on 2016/08/22 by Steve.Robb Static analysis fixes: warning C6246: Local declaration of 'NumTris' hides declaration of the same name in outer scope. Change 3096356 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'InWorld'. Change 3096387 on 2016/08/22 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'ExpressionPreviewMaterial'. warning C6011: Dereferencing NULL pointer 'MaterialNode->MaterialExpression'. Change 3096400 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'FunctionInputs'. Change 3096413 on 2016/08/22 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'LODPackage' contains the same NULL value as 'AssetsOuter' did. Change 3096416 on 2016/08/22 by Steve.Robb Static analysis fixes: warning C6237: (<zero> && <expression>) is always zero. <expression> is never evaluated and might have side effects. Change 3096423 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'RedirectorRefs.Redirector'. Change 3096439 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'NewObject'. Change 3096446 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'BaseClass'. Change 3096454 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'OldSkeleton'. Change 3096464 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'MyNode'. Change 3096469 on 2016/08/22 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'VRInteractor'. Change 3097559 on 2016/08/23 by Steve.Robb Alternate fix to CL# 3096439. Change 3097583 on 2016/08/23 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'SourceCategoryEnum'. warning C6011: Dereferencing NULL pointer 'CurrentWorld'. Change 3097584 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'LocalizationTarget'. Change 3097585 on 2016/08/23 by Steve.Robb Static analysis fixes: warning C28182: Dereferencing NULL pointer. 'VariableSetNode' contains the same NULL value as 'AssignmentNode' did. warning C6011: Dereferencing NULL pointer 'FirstNativeClass'. Change 3097588 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'OutputObjClass'. Change 3097589 on 2016/08/23 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Term' contains the same NULL value as 'RValueTerm' did. Change 3097591 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Schema'. Change 3097597 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'LayerInfo'. Change 3097598 on 2016/08/23 by Steve.Robb Const-correctness fix for ILandscapeEditorModule::GetHeightmapFormatByExtension and ILandscapeEditorModule::GetWeightmapFormatByExtension. Change 3097600 on 2016/08/23 by Steve.Robb Fix for incorrect null check. Change 3097605 on 2016/08/23 by Steve.Robb Spurious static analysis fix: warning C6011: Dereferencing NULL pointer 'TexDataPtr'. Bug filed here: https://connect.microsoft.com/VisualStudio/feedback/details/3078125 Change 3097609 on 2016/08/23 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'ObjClass' contains the same NULL value as 'BaseClass' did. Change 3097613 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'InEdGraph'. Change 3097620 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'ThisScalableFloat'. Change 3097627 on 2016/08/23 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'AnimBlueprint'. Change 3097629 on 2016/08/23 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Pin' contains the same NULL value as 'PoseNet' did. Change 3097631 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'IPOverlayInfo.Brush'. Change 3097634 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Survey'. Change 3097639 on 2016/08/23 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Settings'. Change 3097650 on 2016/08/23 by Steve.Robb Alternate fix for CL# 3097597. Change 3097725 on 2016/08/23 by Steve.Robb Spurious static analysis fix: warning C6011: Dereferencing NULL pointer 'BodySetup'. Change 3097764 on 2016/08/23 by Steve.Robb Spurious static analysis fix: warning C28182: Dereferencing NULL pointer. 'FoundMode' contains the same NULL value as 'ElementType * FoundMode=LoopModes.FindByPredicate(<lambda>)' did. Change 3097770 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Triangle'. Change 3097775 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'CurGroup'. Change 3097796 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'SourceComponent'. Change 3097797 on 2016/08/23 by Steve.Robb Spurious static analysis fix: warning C6011: Dereferencing NULL pointer 'HitComponent'. Change 3097843 on 2016/08/23 by Steve.Robb Spurious static analysis fix: Dereferencing NULL pointer. 'MatchingNewPin' contains the same NULL value as 'UEdGraphPin ** MatchingNewPin=this->Pins.FindByPredicate(<lambda>)' did. Change 3097864 on 2016/08/23 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'ObjectClass'. warning C6011: Dereferencing NULL pointer 'Client'. Change 3097871 on 2016/08/23 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'SMLightingMesh->StaticMesh' contains the same NULL value as 'StaticMesh' did. Change 3098015 on 2016/08/23 by Steve.Robb Alternative fix for CL# 3094864. Change 3098024 on 2016/08/23 by Steve.Robb Alternative fix for CL# 3094943. Change 3098052 on 2016/08/23 by Steve.Robb Alternative fix for CL# 3094886. Change 3098080 on 2016/08/23 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'PrimitiveComponent' contains the same NULL value as 'ReplacementComponent' did. Change 3098102 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'IndexTermPtr'. Change 3098148 on 2016/08/23 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Node'. warning C6011: Dereferencing NULL pointer 'OldNode'. warning C6011: Dereferencing NULL pointer 'LinkedPin'. warning C6011: Dereferencing NULL pointer 'RootNode'. Change 3098156 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'BTGraphNode'. Change 3098176 on 2016/08/23 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'NewSection'. Change 3098182 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Sprite'. Change 3098197 on 2016/08/23 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Node'. Coding standards fixes. Change 3098202 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'ExistingEventNode'. Change 3098208 on 2016/08/23 by Steve.Robb Static analysis fixes: warning C28182: Dereferencing NULL pointer. 'Graph' contains the same NULL value as 'GraphNew' did. warning C28182: Dereferencing NULL pointer. 'GoodGraph' contains the same NULL value as 'GraphNew' did. Change 3098229 on 2016/08/23 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Property'. Change 3099188 on 2016/08/24 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'SharedBaseClass'. Change 3099195 on 2016/08/24 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'NodeProperty'. Change 3099205 on 2016/08/24 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'VarDesc'. Change 3099228 on 2016/08/24 by Steve.Robb Spurious static analysis fix: warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'ParentNode' did. Change 3099539 on 2016/08/24 by Steve.Robb Spurious static analysis fixes: warning C6011: Dereferencing NULL pointer 'InBlueprint'. warning C28182: Dereferencing NULL pointer. 'TestObj' contains the same NULL value as 'TestOuter' did. https://connect.microsoft.com/VisualStudio/feedback/details/3082362 https://connect.microsoft.com/VisualStudio/feedback/details/3082622 Change 3099546 on 2016/08/24 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'OldNode'. Change 3099561 on 2016/08/24 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'ReferencedObject'. Change 3099571 on 2016/08/24 by Steve.Robb Static analysis fix: Dereferencing NULL pointer. 'ObjClass' contains the same NULL value as 'CommonBaseClass' did. Change 3099600 on 2016/08/24 by Steve.Robb Static analysis fix: warning C6385: Reading invalid data from 'this->Packages': the readable size is '24' bytes, but '32' bytes may be read. warning C6385: Reading invalid data from 'Diff.ObjectSets': the readable size is '24' bytes, but '32' bytes may be read. warning C6386: Buffer overrun while writing to 'Objects': the writable size is '24' bytes, but '32' bytes might be written. Change 3099912 on 2016/08/24 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'SharedBaseClass'. Change 3099923 on 2016/08/24 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'ThumbnailInfo'. Change 3100977 on 2016/08/25 by Steve.Robb Static analysis fixes: warning C6001: Using uninitialized memory '*VectorRef'. warning C6001: Using uninitialized memory '*PointRef'. warning C6001: Using uninitialized memory '*PolyRef'. Coding standard fixes. Change 3100985 on 2016/08/25 by Steve.Robb Static analyis fix: warning C6011: Dereferencing NULL pointer 'SpawnClassPin'. Change 3100987 on 2016/08/25 by Steve.Robb Static analysis fixes: warning C28183: 'Resources.BitmapHandle' could be '0', and is a copy of the value found in 'CreateDIBSection()`829': this does not adhere to the specification for the function 'SelectObject'. warning C6387: '_Param_(4)' could be '0': this does not adhere to the specification for the function 'CreateDIBSection'. Change 3100992 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6287: Redundant code: the left and right sub-expressions are identical. Change 3101000 on 2016/08/25 by Steve.Robb Static analysis fixes: warning C6001: Using uninitialized memory 'tmpMemReq'. warning C6001: Using uninitialized memory 'TmpCreateInfo'. Change 3101004 on 2016/08/25 by Steve.Robb warning C28182: Dereferencing NULL pointer. 'FoliageActor' contains the same NULL value as 'Actor' did. Change 3101009 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'StaticMeshComponent'. Change 3101115 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Canvas'. Change 3101120 on 2016/08/25 by Steve.Robb Fixes to previous fixes. Change 3101128 on 2016/08/25 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Stream'. Change 3101281 on 2016/08/25 by Steve.Robb Static analysis fixes: warning C6262: Function uses '99256' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap. warning C6001: Using uninitialized memory 'Pixel'. Change 3101292 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'BulkDataPointer'. Change 3101299 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'UnrealMaterial'. Change 3101300 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'AssetObject'. Change 3101304 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'MeshRootNode'. Change 3101311 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Cluster'. Change 3101323 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'StartNode'. Change 3101329 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Object'. Change 3101333 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'ArrayRef'. Change 3101339 on 2016/08/25 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'ImportData'. warning C6011: Dereferencing NULL pointer 'CurveToImport'. Change 3101485 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'ObjectProperty'. Change 3101583 on 2016/08/25 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'UserDefinedStruct'. Change 3105721 on 2016/08/30 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'SpawnClassPin'. Change 3105724 on 2016/08/30 by Steven.Hutton Change users page to more responsive paginated version. Change 3105725 on 2016/08/30 by Steven.Hutton Added field for crash processor failed Change 3105786 on 2016/08/30 by Steve.Robb Reintroduced missing operator<< for enum classes. Change 3105803 on 2016/08/30 by Steve.Robb Removal of obsolete code and state. PrepareCppStructOps() has several unreachable blocks, one of which sets UScriptStruct::bCppStructOpsFromBaseClass which is otherwise never true, so it can be removed too. Change 3106251 on 2016/08/30 by Steve.Robb Switch static analysis node to build editor instead of just the engine. Change 3107556 on 2016/08/31 by Steven.Hutton Added build version data from CRP to DB as part of add crash #rb none Change 3107557 on 2016/08/31 by Steven.Hutton Passed build version data to CRW through crash description #rb none Change 3107634 on 2016/08/31 by Graeme.Thornton Only accept "log=<filename>" and "abslog=<filename>" command line values if the filename has a "log" or "txt" extension #jira UE-20147 Change 3107797 on 2016/08/31 by Steve.Robb Fix for UHT debugging manifest, after paths changed in CL# 3088416. Change 3107964 on 2016/08/31 by Steve.Robb TCString::Strfind renamed to TCString::Strifind, as it is case-insensitive. New case-sensitive TCString::Strfind added, based on GitHub PR #2453. Change 3108023 on 2016/08/31 by Steve.Robb Removal of test code which no longer compiles now that we emit errors on skipped preprocessor blocks. Change 3108160 on 2016/08/31 by Steven.Hutton Update to add new filter to website front page #rb none Change 3109556 on 2016/09/01 by Steven.Hutton Fixing compile warning #rb none Change 3110001 on 2016/09/01 by Steve.Robb PR #2468: Fix for UnrealHeaderTool TArray<TScriptInterface<>> UFUNCTION parameters (Contributed by UnrealEverything) Change 3111835 on 2016/09/02 by Steve.Robb Enforce uint8 on UENUM() enum classes. #jira UE-35224 Change 3111867 on 2016/09/02 by Steve.Robb Static analysis fix: warning C6236: (<expression> || <non-zero constant>) is always a non-zero constant. Change 3111880 on 2016/09/02 by Steve.Robb Static analysis fixes: warning C6386: Buffer overrun while writing to 'Views': the writable size is 'ShaderBindings.ResourceViews.public: int __cdecl TArray<class TSlateD3DTypedShaderParameter<struct ID3D11ShaderResourceView> *,class FDefaultAllocator>::Num(void)const ()*8' bytes, but '16' bytes might be written. warning C6386: Buffer overrun while writing to 'ConstantBuffers': the writable size is 'ShaderBindings.ConstantBuffers.public: int __cdecl TArray<class TSlateD3DTypedShaderParameter<struct ID3D11Buffer> *,class FDefaultAllocator>::Num(void)const ()*8' bytes, but '16' bytes might be written. Change 3111886 on 2016/09/02 by Steve.Robb Static analysis fix: warning C6386: Buffer overrun while writing to 'DistortionMeshIndices': the writable size is 'NumIndices*2' bytes, but '4' bytes might be written. Change 3112025 on 2016/09/02 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'pInputProcessParameters'. warning C6011: Dereferencing NULL pointer 'pOutputProcessParameters'. Change 3112051 on 2016/09/02 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Command'. Change 3112066 on 2016/09/02 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'CurNetDriver'. Change 3112093 on 2016/09/02 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'byteArray'. Change 3112110 on 2016/09/02 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'PersistentParty'. Change 3112123 on 2016/09/02 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'CurDriver'. warning C6011: Dereferencing NULL pointer 'CurNetDriver'. warning C6011: Dereferencing NULL pointer 'CurWorld'. Change 3112157 on 2016/09/02 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'UnitTest'. Change 3112283 on 2016/09/02 by Steve.Robb Static analysis fixes: warning C6244: Local declaration of 'None' hides previous declaration at line '173' of 'netcodeunittest.h'. Change 3113455 on 2016/09/05 by Chris.Wood CRP performance improvements (v1.1.25) Change 3113468 on 2016/09/05 by Steve.Robb Reverting unnecessary merge in CL# 3112464. Change 3113508 on 2016/09/05 by Steve.Robb Static analysis fix: warning C6031: Return value ignored: 'CoCreateGuid'. Change 3113588 on 2016/09/05 by Steve.Robb Static analysis fix: warning C6244: Local declaration of 'hInstance' hides previous declaration Change 3113863 on 2016/09/06 by Steve.Robb Fix for this error: Could not find a part of the path 'D:\Build\++UE4+Dev-Core+Compile\Sync\Engine\Plugins\2D\Paper2D\Binaries\Win64\UE4Editor.modules'. Change 3113864 on 2016/09/06 by Steve.Robb Misc static analysis fixes for VS2015 Update 2. Change 3113918 on 2016/09/06 by Ben.Marsh Explicitly check for version manifest existing before trying to delete it, rather than swallowing the exception. Change 3114293 on 2016/09/06 by Steve.Robb Static analysis fixes for Visual Studio Update 2. Change 3115732 on 2016/09/07 by Steve.Robb Static analysis fix: warning C6262: Function uses '121180' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap. Change 3115754 on 2016/09/07 by Steve.Robb GObjectArrayForDebugVisualizers init order fix. Removal of obsolete FName visualizer helper code. Change 3115774 on 2016/09/07 by Steve.Robb Fix for ICE by moving static variables into their own file and removing const return types. #jira UE-35597 Change 3116061 on 2016/09/07 by Steve.Robb Redundant LOCTEXT_NAMESPACE removed - was missed in CL# 3115774. Change 3117478 on 2016/09/08 by Steve.Robb Static analysis fixes in third party code, using a new macro-based system. Change 3119152 on 2016/09/09 by Steve.Robb TArray::RemoveAt and RemoveAtSwap with a bool Count is now a compile error. Change 3119200 on 2016/09/09 by Steve.Robb Fix for destructors not being called in TSparseArray move assignment. Change 3119568 on 2016/09/09 by Steve.Robb Fix for TSparseArray visualizer. Change 3119591 on 2016/09/09 by Steve.Robb New MakeShared function which allocates the object and reference controller in a single block. Change 3120281 on 2016/09/09 by Steve.Robb Fix for ICE on static analysis build. #jira UE-35596 Change 3120786 on 2016/09/12 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'SavedGame'. Change 3120787 on 2016/09/12 by Steve.Robb Removal of TEnumAsByte on enum classes. Change 3120789 on 2016/09/12 by Steve.Robb Static analysis fixes: warning C6385: Reading invalid data from 'D3D11X_CERAM_OFFSET_BY_SET_STAGE': the readable size is '28' bytes, but '64' bytes may be read. warning C6101: Returning uninitialized memory '*pDescriptorDst'. A successful path through the function does not set the named _Out_ parameter. Change 3121234 on 2016/09/12 by Steve.Robb Unused ToBuildInfoString function declaration removed. Change 3122616 on 2016/09/13 by Steve.Robb Static analysis fix: warning C6011: Dereferencing NULL pointer 'Compiler'. Change 3123070 on 2016/09/13 by Steve.Robb Static analysis fix: warning C28182: Dereferencing NULL pointer. 'top' contains the same NULL value as 'edge' did. [CL 3126145 by Robert Manuszewski in Main branch]
2016-09-15 00:21:42 -04:00
if (FCString::Strifind(*ClassName, *ClassnameSubstring))
{
Ar.Logf(TEXT("Processing class %s"), *ClassName);
for (TFieldIterator<UFunction> FunctionIter(Class, EFieldIteratorFlags::ExcludeSuper); FunctionIter; ++FunctionIter)
{
UFunction* Function = *FunctionIter;
FString FunctionName = Function->GetName();
Ar.Logf(TEXT(" Processing function %s (%d bytes)"), *FunctionName, Function->Script.Num());
Disasm.DisassembleStructure(Function);
Ar.Logf(TEXT(""));
}
Ar.Logf(TEXT(""));
Ar.Logf(TEXT("-----------"));
Ar.Logf(TEXT(""));
}
}
}
EExprToken FKismetBytecodeDisassembler::SerializeExpr(int32& ScriptIndex)
{
AddIndent();
EExprToken Opcode = (EExprToken)Script[ScriptIndex];
ScriptIndex++;
ProcessCommon(ScriptIndex, Opcode);
DropIndent();
return Opcode;
}
int32 FKismetBytecodeDisassembler::ReadINT(int32& ScriptIndex)
{
int32 Value = Script[ScriptIndex]; ++ScriptIndex;
Value = Value | ((int32)Script[ScriptIndex] << 8); ++ScriptIndex;
Value = Value | ((int32)Script[ScriptIndex] << 16); ++ScriptIndex;
Value = Value | ((int32)Script[ScriptIndex] << 24); ++ScriptIndex;
return Value;
}
uint64 FKismetBytecodeDisassembler::ReadQWORD(int32& ScriptIndex)
{
uint64 Value = Script[ScriptIndex]; ++ScriptIndex;
Value = Value | ((uint64)Script[ScriptIndex] << 8); ++ScriptIndex;
Value = Value | ((uint64)Script[ScriptIndex] << 16); ++ScriptIndex;
Value = Value | ((uint64)Script[ScriptIndex] << 24); ++ScriptIndex;
Value = Value | ((uint64)Script[ScriptIndex] << 32); ++ScriptIndex;
Value = Value | ((uint64)Script[ScriptIndex] << 40); ++ScriptIndex;
Value = Value | ((uint64)Script[ScriptIndex] << 48); ++ScriptIndex;
Value = Value | ((uint64)Script[ScriptIndex] << 56); ++ScriptIndex;
return Value;
}
uint8 FKismetBytecodeDisassembler::ReadBYTE(int32& ScriptIndex)
{
uint8 Value = Script[ScriptIndex]; ++ScriptIndex;
return Value;
}
FString FKismetBytecodeDisassembler::ReadName(int32& ScriptIndex)
{
const FScriptName ConstValue = *(FScriptName*)(Script.GetData() + ScriptIndex);
Made FName case-preserving by storing case-variant strings in its string table This is controlled by the macro "WITH_CASE_PRESERVING_NAME", which is currently just set to "WITH_EDITORONLY_DATA" so that it works in editor builds (and UHT). Added an extra NAME_INDEX entry to FName to store a second string table index for a case-variant string. The previous Index value (now called ComparisonIndex) is still used for comparison purposes (as FNames are still case-insensitive). The Init process for an FName now works like this: 1) It will find or add a string table entry for the given string (not matching case) - this entry index is stored in ComparisonIndex. 2) It will then compare the string table entry string against the given string (matching case) to see if it also needs to add a case-variant entry for the FName. 3) If it does, it finds or adds a second string table entry (matching case) for the string - this entry index is stored in DisplayIndex. Hard-coded FNames (those listed in UnrealNames.h) do not support case-variants (due to existing network replication rules for hard-coded FNames), so they skip steps 2 and 3. I added FMinimalName, which is the same size as FName was previously. This shouldn't really be used (and as such, is deliberately awkward to make/use) as it loses the case-preserving behaviour of FName, however it was required for some things (like stats) that had a hard-coded upper limit on FName size. I added FScriptName, which always contains the extra display index (even when WITH_CASE_PRESERVING_NAME is disabled). This is used by Blueprint bytecode, as the types used by Blueprint bytecode must be a consistent size between all build configurations. Other changes: - Fixed up any places that were passing an Index into the FName constructor which was supposed to take an EName. - Some places were doing this to make the number unique when replicating an object, but this was losing the case-variant information, so I had to fix them. - FName will now assert if the EName constructor is used with an value outside the range of hard-coded FNames. - Ensured that assets, actors, and blueprint components could all be renamed in a way that only changed their case, and that these changes were correctly persisted. - Added FLinkerNamePairKeyFuncs and TLinkerNameMapKeyFuncs for use with TSet and TMap. - These allow ULinkerSave and ULinkerLoad to correctly write out case-variants for FNames, and also fixes an issue where the linker would erroneously write out duplicate string table entries for FNames which had a different number (causing package bloat). - Bumped VER_MIN_SCRIPTVM_UE4 so that all Blueprint bytecode is recompiled using FScriptName. ReviewedBy Robert.Manuszewski, Gil.Gribb [CL 2300730 by Jamie Dale in Main branch]
2014-09-17 05:24:55 -04:00
ScriptIndex += sizeof(FScriptName);
Made FName case-preserving by storing case-variant strings in its string table This is controlled by the macro "WITH_CASE_PRESERVING_NAME", which is currently just set to "WITH_EDITORONLY_DATA" so that it works in editor builds (and UHT). Added an extra NAME_INDEX entry to FName to store a second string table index for a case-variant string. The previous Index value (now called ComparisonIndex) is still used for comparison purposes (as FNames are still case-insensitive). The Init process for an FName now works like this: 1) It will find or add a string table entry for the given string (not matching case) - this entry index is stored in ComparisonIndex. 2) It will then compare the string table entry string against the given string (matching case) to see if it also needs to add a case-variant entry for the FName. 3) If it does, it finds or adds a second string table entry (matching case) for the string - this entry index is stored in DisplayIndex. Hard-coded FNames (those listed in UnrealNames.h) do not support case-variants (due to existing network replication rules for hard-coded FNames), so they skip steps 2 and 3. I added FMinimalName, which is the same size as FName was previously. This shouldn't really be used (and as such, is deliberately awkward to make/use) as it loses the case-preserving behaviour of FName, however it was required for some things (like stats) that had a hard-coded upper limit on FName size. I added FScriptName, which always contains the extra display index (even when WITH_CASE_PRESERVING_NAME is disabled). This is used by Blueprint bytecode, as the types used by Blueprint bytecode must be a consistent size between all build configurations. Other changes: - Fixed up any places that were passing an Index into the FName constructor which was supposed to take an EName. - Some places were doing this to make the number unique when replicating an object, but this was losing the case-variant information, so I had to fix them. - FName will now assert if the EName constructor is used with an value outside the range of hard-coded FNames. - Ensured that assets, actors, and blueprint components could all be renamed in a way that only changed their case, and that these changes were correctly persisted. - Added FLinkerNamePairKeyFuncs and TLinkerNameMapKeyFuncs for use with TSet and TMap. - These allow ULinkerSave and ULinkerLoad to correctly write out case-variants for FNames, and also fixes an issue where the linker would erroneously write out duplicate string table entries for FNames which had a different number (causing package bloat). - Bumped VER_MIN_SCRIPTVM_UE4 so that all Blueprint bytecode is recompiled using FScriptName. ReviewedBy Robert.Manuszewski, Gil.Gribb [CL 2300730 by Jamie Dale in Main branch]
2014-09-17 05:24:55 -04:00
return ScriptNameToName(ConstValue).ToString();
}
uint16 FKismetBytecodeDisassembler::ReadWORD(int32& ScriptIndex)
{
uint16 Value = Script[ScriptIndex]; ++ScriptIndex;
Value = Value | ((uint16)Script[ScriptIndex] << 8); ++ScriptIndex;
return Value;
}
float FKismetBytecodeDisassembler::ReadFLOAT(int32& ScriptIndex)
{
union { float f; int32 i; } Result;
Result.i = ReadINT(ScriptIndex);
return Result.f;
}
double FKismetBytecodeDisassembler::ReadDOUBLE(int32& ScriptIndex)
{
union { double d; int64 i; } Result;
Result.i = ReadQWORD(ScriptIndex);
return Result.d;
}
FVector FKismetBytecodeDisassembler::ReadFVECTOR(int32& ScriptIndex)
{
FVector Vec;
Vec.X = ReadFLOAT(ScriptIndex);
Vec.Y = ReadFLOAT(ScriptIndex);
Vec.Z = ReadFLOAT(ScriptIndex);
return Vec;
}
CodeSkipSizeType FKismetBytecodeDisassembler::ReadSkipCount(int32& ScriptIndex)
{
#if SCRIPT_LIMIT_BYTECODE_TO_64KB
return ReadWORD(ScriptIndex);
#else
static_assert(sizeof(CodeSkipSizeType) == 4, "Update this code as size changed.");
return ReadINT(ScriptIndex);
#endif
}
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2888098 on 3/1/2016 by Nick.Darnell Adding back the SetWidgetToFocusOnActivate call and deprecating it. Will need to also do this in 4.11. #lockdown Nick.Penwarden Change 2851669 on 2016/02/01 by Alexis.Matte #jira UE-25928 Skeletal mesh import now support _skinXX that are not sequential. Static mesh was already supporting non sequential _skinxx ordering #codereview nick.darnell Change 2851672 on 2016/02/01 by Alexis.Matte #jira UE-25971 The proxy camera mesh is now properly reset to zero #codereview nick.darnell Change 2851675 on 2016/02/01 by Alexis.Matte #jira UE-25525 Update the tooltips #codereview nick.darnell Change 2851764 on 2016/02/01 by Alexis.Matte #jira UE-25595 The fbx plus and minus icons are now brighter #codereview nick.darnell Change 2852116 on 2016/02/01 by Bob.Tellez #UE4 Submitting pull request 2013 from GitHub (Pull request 2013). Thanks for the fix hoelzl! Fix file selection when reimporting curve from moved CSV file When reimporting a data curve after moving the CSV file from which it was generated, the file selection dialog does not present an option to select CVS files. This patch fixes the issue by assigning the correct 'SupportedClass' value for `UReimportCurveFactory` instances. #codereview Nick.Darnell #JIRA UE-26247 #2013 Change 2852375 on 2016/02/02 by Richard.TalbotWatkin Spline component improvements: added facility to not restore component instance cache after the construction script has run, so the points can act as inputs to the construction script. Created a new property bInputSplinePointsToConstructionScript for that. Added SetUpVectorAtSplinePoint, and corrected some bugs. #jira UE-24931 - Set Location at Spline Point doesn't do anything Change 2852726 on 2016/02/02 by Richard.TalbotWatkin Fixed FPropertyChangedEvent::GetArrayIndex when called from PostEditChangeProperty. #jira UE-25316 - PropertyChangedEvent.GetArrayIndex broken #codereview Robert.Manuszewski Change 2853152 on 2016/02/02 by Jamie.Dale Fixed multi-line editable texts not updating their font when changed in UMG Also made all the SetStyle functions use the default if they're passed null (to match SEditableTextBox), and tidied up some of the property panel layout when editing styles. #codereview Chris.Wood Change 2853220 on 2016/02/02 by Alexis.Matte #jira UE-26303 We now apply the scene option transform to the vertex of meshes instead of the root node of the scene. This allow re-alignment of the mesh to go with animation. #codereview nick.darnell Change 2853282 on 2016/02/02 by Alexis.Matte Back out changelist 2853220 Change 2854211 on 2016/02/03 by Nick.Darnell Widget Reflector - Limit the minimum scale that can be applied to something more reasonable 50%, instead of 10%. Change 2854216 on 2016/02/03 by Nick.Darnell Scene Viewport - The scene viewport handles application scale better now, allowing click locations to be interepreted correctly and transformed into pixel hit location, rather than local space widget location, which may not match. Change 2854220 on 2016/02/03 by Nick.Darnell Slate - Allowing mousewheel or gesture to be routed directly for a widget path like has been done for other mouse events, this permits more kinds of mouse like actions in a VR environment onto widgets in the scene. (not actually hooked up to do it, but this now permits it at the slate level to be done correctly). Change 2854449 on 2016/02/03 by Alexis.Matte -Fix the fbx import options, for the scene transform value that was not apply correctly -Add an inspector on the scene import option in the reimport dialog Change 2855659 on 2016/02/04 by Alexis.Matte -Fix the bake pivot when there is a hierarchy, we now accumulate the pivot effect in the hierarchy to place the object at the correct place. #codereview nick.darnell Change 2855922 on 2016/02/04 by Alexis.Matte #jira UE-26303 The animation is now align with the imported skeletal mesh, the bakepivot is also supported #codereview nick.darnell Change 2856989 on 2016/02/05 by Jamie.Dale Some improvements to the source code loc gatherer * We now strip any comments out of any pre-processor tokens before we start handling them. * Fixed a case where "#if defined" and "#elif defined" would parse incorrectly. * Fixed a case where "#define LOCTEXT_NAMESPACE" and "#define LOC_DEFINE_REGION" may not be paired correctly with their corresponding "#undef". [CL 2888106 by Nick Darnell in Main branch]
2016-03-01 15:17:24 -05:00
FString FKismetBytecodeDisassembler::ReadString(int32& ScriptIndex)
{
const EExprToken Opcode = (EExprToken)Script[ScriptIndex++];
switch (Opcode)
{
case EX_StringConst:
return ReadString8(ScriptIndex);
case EX_UnicodeStringConst:
return ReadString16(ScriptIndex);
default:
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
checkf(false, TEXT("FKismetBytecodeDisassembler::ReadString - Unexpected opcode. Expected %d or %d, got %d"), (int)EX_StringConst, (int)EX_UnicodeStringConst, (int)Opcode);
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2888098 on 3/1/2016 by Nick.Darnell Adding back the SetWidgetToFocusOnActivate call and deprecating it. Will need to also do this in 4.11. #lockdown Nick.Penwarden Change 2851669 on 2016/02/01 by Alexis.Matte #jira UE-25928 Skeletal mesh import now support _skinXX that are not sequential. Static mesh was already supporting non sequential _skinxx ordering #codereview nick.darnell Change 2851672 on 2016/02/01 by Alexis.Matte #jira UE-25971 The proxy camera mesh is now properly reset to zero #codereview nick.darnell Change 2851675 on 2016/02/01 by Alexis.Matte #jira UE-25525 Update the tooltips #codereview nick.darnell Change 2851764 on 2016/02/01 by Alexis.Matte #jira UE-25595 The fbx plus and minus icons are now brighter #codereview nick.darnell Change 2852116 on 2016/02/01 by Bob.Tellez #UE4 Submitting pull request 2013 from GitHub (Pull request 2013). Thanks for the fix hoelzl! Fix file selection when reimporting curve from moved CSV file When reimporting a data curve after moving the CSV file from which it was generated, the file selection dialog does not present an option to select CVS files. This patch fixes the issue by assigning the correct 'SupportedClass' value for `UReimportCurveFactory` instances. #codereview Nick.Darnell #JIRA UE-26247 #2013 Change 2852375 on 2016/02/02 by Richard.TalbotWatkin Spline component improvements: added facility to not restore component instance cache after the construction script has run, so the points can act as inputs to the construction script. Created a new property bInputSplinePointsToConstructionScript for that. Added SetUpVectorAtSplinePoint, and corrected some bugs. #jira UE-24931 - Set Location at Spline Point doesn't do anything Change 2852726 on 2016/02/02 by Richard.TalbotWatkin Fixed FPropertyChangedEvent::GetArrayIndex when called from PostEditChangeProperty. #jira UE-25316 - PropertyChangedEvent.GetArrayIndex broken #codereview Robert.Manuszewski Change 2853152 on 2016/02/02 by Jamie.Dale Fixed multi-line editable texts not updating their font when changed in UMG Also made all the SetStyle functions use the default if they're passed null (to match SEditableTextBox), and tidied up some of the property panel layout when editing styles. #codereview Chris.Wood Change 2853220 on 2016/02/02 by Alexis.Matte #jira UE-26303 We now apply the scene option transform to the vertex of meshes instead of the root node of the scene. This allow re-alignment of the mesh to go with animation. #codereview nick.darnell Change 2853282 on 2016/02/02 by Alexis.Matte Back out changelist 2853220 Change 2854211 on 2016/02/03 by Nick.Darnell Widget Reflector - Limit the minimum scale that can be applied to something more reasonable 50%, instead of 10%. Change 2854216 on 2016/02/03 by Nick.Darnell Scene Viewport - The scene viewport handles application scale better now, allowing click locations to be interepreted correctly and transformed into pixel hit location, rather than local space widget location, which may not match. Change 2854220 on 2016/02/03 by Nick.Darnell Slate - Allowing mousewheel or gesture to be routed directly for a widget path like has been done for other mouse events, this permits more kinds of mouse like actions in a VR environment onto widgets in the scene. (not actually hooked up to do it, but this now permits it at the slate level to be done correctly). Change 2854449 on 2016/02/03 by Alexis.Matte -Fix the fbx import options, for the scene transform value that was not apply correctly -Add an inspector on the scene import option in the reimport dialog Change 2855659 on 2016/02/04 by Alexis.Matte -Fix the bake pivot when there is a hierarchy, we now accumulate the pivot effect in the hierarchy to place the object at the correct place. #codereview nick.darnell Change 2855922 on 2016/02/04 by Alexis.Matte #jira UE-26303 The animation is now align with the imported skeletal mesh, the bakepivot is also supported #codereview nick.darnell Change 2856989 on 2016/02/05 by Jamie.Dale Some improvements to the source code loc gatherer * We now strip any comments out of any pre-processor tokens before we start handling them. * Fixed a case where "#if defined" and "#elif defined" would parse incorrectly. * Fixed a case where "#define LOCTEXT_NAMESPACE" and "#define LOC_DEFINE_REGION" may not be paired correctly with their corresponding "#undef". [CL 2888106 by Nick Darnell in Main branch]
2016-03-01 15:17:24 -05:00
break;
}
return FString();
}
FString FKismetBytecodeDisassembler::ReadString8(int32& ScriptIndex)
{
FString Result;
do
{
Result += (ANSICHAR)ReadBYTE(ScriptIndex);
}
while (Script[ScriptIndex-1] != 0);
return Result;
}
FString FKismetBytecodeDisassembler::ReadString16(int32& ScriptIndex)
{
FString Result;
do
{
Result += (TCHAR)ReadWORD(ScriptIndex);
}
while ((Script[ScriptIndex-1] != 0) || (Script[ScriptIndex-2] != 0));
Allow FString instances containing code units outside of the basic multilingual plane to be losslessly processed regardless of whether TCHAR is 2 or 4 bytes. Most UE4 platforms use a 2-byte TCHAR, however some still use a 4-byte TCHAR. The platforms that use a 4-byte TCHAR expect their string data to be UTF-32, however there are parts of UE4 that serialize FString data as a series of UCS2CHAR, simply narrowing or widening each TCHAR in turn. This can result in invalid or corrupted UTF-32 strings (either UTF-32 strings containing UTF-16 surrogates, or UTF-32 code points that have been truncated to 2-bytes), which leads to either odd behavior or crashes. This change updates the parts of UE4 that process FString data as a series of 2-byte values to do so on the correct UTF-16 interpretation of the data, converting to/from UTF-32 as required on platforms that use a 4-byte TCHAR. This conversion is a no-op on platforms that use a 2-byte TCHAR as the string is already assumed to be valid UTF-16 data. It should also be noted that while FString may contain UTF-16 code units on platforms using a 2-byte TCHAR, this change doesn't do anything to make FString represent a Unicode string on those platforms (ie, a string that understands and works on code points), but is rather just a bag of code units. Two new variable-width string converters have be added to facilitate the conversion (modelled after the TCHAR<->UTF-8 converters), TUTF16ToUTF32_Convert and TUTF32ToUTF16_Convert. These are used for both TCHAR<->UTF16CHAR conversion when needed, but also for TCHAR<->wchar_t conversion on platforms that use char16_t for TCHAR along with having a 4-byte wchar_t (as defined by the new PLATFORM_WCHAR_IS_4_BYTES option). These conversion routines are accessed either via the conversion macros (TCHAR_TO_UTF16, UTF16_TO_TCHAR, TCHAR_TO_WCHAR, and WCHAR_TO_TCHAR), or by using a conversion struct (FTCHARToUTF16, FUTF16ToTCHAR, FTCHARToWChar, and FWCharToTCHAR), which is the same pattern as the existing TCHAR<->UTF-8 conversion. Both the macros and the structs are defined as no-ops when the conversion isn't needed, but always exist so that code can be written in a portable way. Very little code actually needed updating to use UTF-16, as the vast majority makes no assumptions about the size of TCHAR, nor how FString should be serialized. The main places were the FString archive serialization and the JSON reader/writer, along with some minor fixes to the UTF-8 conversion logic for platforms using a 4-byte TCHAR. Tests have been added to verify that an FString representing a UTF-32 code point can be losslessly converted to/from UTF-8 and UTF-16, and serialized to/from an archive. #jira #rb Steve.Robb, Josh.Adams #ROBOMERGE-SOURCE: CL 8676728 via CL 8687863 #ROBOMERGE-BOT: (v421-8677696) [CL 8688048 by jamie dale in Main branch]
2019-09-16 05:44:11 -04:00
// Inline combine any surrogate pairs in the data when loading into a UTF-32 string
StringConv::InlineCombineSurrogates(Result);
return Result;
}
void FKismetBytecodeDisassembler::ProcessCastByte(int32 CastType, int32& ScriptIndex)
{
// Expression of cast
SerializeExpr(ScriptIndex);
}
void FKismetBytecodeDisassembler::ProcessCommon(int32& ScriptIndex, EExprToken Opcode)
{
switch (Opcode)
{
case EX_PrimitiveCast:
{
// A type conversion.
uint8 ConversionType = ReadBYTE(ScriptIndex);
Ar.Logf(TEXT("%s $%X: PrimitiveCast of type %d"), *Indents, (int32)Opcode, ConversionType);
AddIndent();
Ar.Logf(TEXT("%s Argument:"), *Indents);
ProcessCastByte(ConversionType, ScriptIndex);
//@TODO:
//Ar.Logf(TEXT("%s Expression:"), *Indents);
//SerializeExpr( ScriptIndex );
break;
}
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3235800) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3194900 on 2016/11/11 by Ryan.Rauschkolb Fixed issue where Reroute node pins weren't mirroring data properly. #jira UE-33717 Change 3195081 on 2016/11/11 by Dan.Oconnor This @todo was addressed Change 3196368 on 2016/11/14 by Maciej.Mroz Results of FBlueprintNativeCodeGenModule::IsTargetedForReplacement are cashed - optimization (cooking time). Change 3196369 on 2016/11/14 by Maciej.Mroz CompileDisplaysBinaryBackend, CompileDisplaysTextBackend and bDisplaysLayout features (in [Kismet] in Engine.ini) are disabled in commandlets. They slow down BP compilation. Change 3196398 on 2016/11/14 by Ben.Cosh Reworked the tracking of latent and expansion event tracking in the blueprint compiler for use with the blueprint profiler. #Jira - UE-37364 - Crash: PIE with instrumented PlayerPawn_Generic added to AITestbed scene #Proj BlueprintProfiler, KismetCompiler. BlueprintGraph, Engine Change 3196410 on 2016/11/14 by Maciej.Mroz Fixed crash in UK2Node_Knot::PropagatePinTypeFromInput Change 3196852 on 2016/11/14 by Maciej.Mroz Fixed static analysis warning. Change 3196874 on 2016/11/14 by Maciej.Mroz #jira UE-37778 (the issue was already fixed, but it was reintroduced, when EDL support was added). ObjectImport->XObject is not filled prematurelly, so CreateExport is properly called each dynamic class. Change 3197469 on 2016/11/14 by Dan.Oconnor Fix for being able to make Sets and Maps of user defined structs that contained unhashable types (e.g. Rotator) Change 3197703 on 2016/11/14 by Dan.Oconnor Updated documentation comment to reflect current behavior Change 3198167 on 2016/11/15 by Maciej.Mroz Merged 3196582 from Dev-Core UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game. Change 3198433 on 2016/11/15 by Ryan.Rauschkolb Fixed Copy/pasting variable nodes hides them from a reference search #UE-31606 Change 3198811 on 2016/11/15 by Maciej.Mroz Fixed Knot node - it will use/propagate the type from input connection, if it's possible (intstead of the type from output connection). Change 3198866 on 2016/11/15 by Maciej.Mroz #jira UE-38578 Fixed infinite loading of DynamicClass in EDL. Change 3199045 on 2016/11/15 by Phillip.Kavan [UE-27402] Fix attached Actor-based Blueprint instance root component relative transform values after reconstruction. change summary: - modified FActorComponentInstanceData's ctor to exclude relative transform properties when caching root component values. #jira UE-27402 Change 3200703 on 2016/11/16 by Mike.Beach Marking the ease node explicitly as pure, which makes it so we can prune it from graphs when it is unused. #jira UE-38453 Change 3201115 on 2016/11/16 by Maciej.Mroz Nativization + EDL: "Dynamic" objects are processed by FAsyncPackage::PostLoadDeferredObjects, so the EInternalObjectFlags::AsyncLoading flag is properly cleared. Change 3201749 on 2016/11/17 by Maciej.Mroz In EDL a package containig a dynamic class has PKG_CompiledIn flag (the same like without EDL). Change 3202577 on 2016/11/17 by Mike.Beach Accounting for a change in our intermediate node mapping - the old list no longer maps expanded nodes to macro instances (instead it maps to the corresponding node in the macro graph), so we had to use a new mapping meant for this. #jira UE-35609 Change 3204803 on 2016/11/18 by Phillip.Kavan [UE-38607] Implicitly turn on Blueprint class nativization for dependencies. change summary: - added a UBlueprint::PostEditChangeProperty() override method to handle this. #jira UE-38607 Change 3204812 on 2016/11/18 by Phillip.Kavan [UE-38580] Implicitly turn on the "nativize" project setting when enabling nativize for any Blueprint class. change summary: - modified UBlueprint::PostEditChangeProperty() to update project packaging settings if necessary #jira UE-38580 Change 3204818 on 2016/11/18 by Phillip.Kavan [UE-38725] Interface class dependencies that are not enabled for nativization will now raise an error during nativized cooks. change summary: - modified FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to check interface class dependencies in addition to parent class dependencies. #jira UE-38725 Change 3204963 on 2016/11/18 by Dan.Oconnor Create a transaction when using UBlueprintFunctionNodeSpawner* directly #jira UE-36439 Change 3206510 on 2016/11/21 by Mike.Beach Adding math-expression aliases for dot and cross functions ("dot" and "cross" respectively). #jira UEBP-71 Change 3206547 on 2016/11/21 by Mike.Beach Exposing GetReflectionVector() to Blueprints. #jira UEBP-70 Change 3206658 on 2016/11/21 by Dan.Oconnor Fix for compile error, digging out authorative class from trash class. Mirror of 3206638 from Odin #jira None Change 3207579 on 2016/11/22 by Mike.Beach No longer enforcing the requirement that game UFunctions have to have a category (making writing of game code easier). #jira UE-18093 Change 3207956 on 2016/11/22 by Phillip.Kavan [UE-38690] Fix a regression in which nested scene component subobjects would no longer be registered after construction of an instance-added component in IWCE. change summary: - modified the IWCE path in SSCSEditor::AddNewComponent() to ensure that any components added as a result of instancing the newly-added component are also registered. - modified AActor::ExecuteConstruction() to ensure that non-scene, native nested component subobjects that might be created as a result of SCS execution are also registered (previously it was only considering non-scene components that were explicitly created by the SCS, or that inherited the creation method of the instance that created it). #jira UE-38690 Change 3208217 on 2016/11/22 by Mike.Beach Modified fix (originally from Ryan.Rauschkolb, CL 3186023): Fixed unable to set struct variable name if name includes space #jira UE-28435 Change 3208347 on 2016/11/22 by Mike.Beach Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints) Change 3208688 on 2016/11/23 by Ben.Cosh Made a minor change that forces debugging references to the PIE world when the play in editor world is changed. This is intended to better handle mutliple game instance/world debugging scenarios. #Jira UE-26386 - Can't hit breakpoints in blueprints for level script for server instances #Proj Engine, UnrealEd Change 3208712 on 2016/11/23 by Ben.Cosh Improved handling of unwired transform struct terminal expression's in the blueprint VM compiler to remove an errant warning. #Jira UE-32401 - "ImportText: Missing opening parenthesis" message, when a function returns Transform #Proj KismetCompiler Change 3209457 on 2016/11/23 by Phillip.Kavan [UE-30479] Fix inability to edit the ISMC instance array on Actor instances when the ISMC is inherited from a Blueprint class. change summary: - added PPF_ForceTaggedSerialization as a means to override the CPF_SkipSerialization flag when explicit serialization of the property value is needed - modified UProperty::ShouldSerializeValue() to check for and handle the PPF_ForceTaggedSerialization flag when the CPF_SkipSerialization flag is present - modified UActorComponent::DetermineUCSModifiedProperties() to add the PPF_ForceTaggedSerialization flag to the custom FArchive impl - modified FActorComponentInstanceData::FActorComponentInstanceData() to add the PPF_ForceTaggedSerialization flag to the custom FObjectWriter impl - modified FActorComponentInstanceData::ApplyToComponent() to add the PPF_ForceTaggedSerialization flag to the custom FObjectReader impl #jira UE-30479 Change 3209758 on 2016/11/24 by Maciej.Mroz #jira UE-38979 Nativization: fixed error when a BP implements a native interface. FBlueprintNativeCodeGenModule::IsTargetedForReplacement will return "DontReplace" for native class. Change 3210376 on 2016/11/25 by Maciej.Mroz #jira UE-39028 Fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter Components in nativized BPCG SCS have replaced outer object and name while cooking. Change 3210936 on 2016/11/28 by Phillip.Kavan Minor revision to try and avoid a potentially expensive Contains() call when possible. Change 3211527 on 2016/11/28 by Maciej.Mroz Fixed map of names cooked in packages in nativized build. Change 3211969 on 2016/11/28 by Mike.Beach Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints) Change 3212328 on 2016/11/28 by Dan.Oconnor Enum, pointer and arithmetic specializations for THasGetTypeHash, as VC doesn't detect them properly. TIsEnum moved to its own header. Submitted on behalf of steve.robb Change 3212398 on 2016/11/28 by Dan.Oconnor Build fix, this function is part of another change Change 3212442 on 2016/11/28 by Dan.Oconnor UHT now supports structs in TMap and TSet, misc. fixes to PropertyStruct's PropertyFlags detecting whether the struct type is hashable (all HasGetTypeHash flags are now computed from THasGetTypeHash). Various fixes for generating TMap/TSet code from blueprints Change 3212578 on 2016/11/28 by Dan.Oconnor Rename RegisterClass to avoid collsion with RegistClass macro in generated code Change 3213668 on 2016/11/29 by Dan.Oconnor Fix for missing CDO when instatiating some subobjects in nativized BPs #jira UE-34980 Change 3213737 on 2016/11/29 by Dan.Oconnor Added GetTypeHash implementation to UEnumProperty #jira UE-39091 Change 3215225 on 2016/11/30 by Maciej.Mroz Bunch of changes required for nativized Orion to work with EDL. - ClientOnly, ServerOnly and EditorOnly assets are properly distinguished and handled - Introduced FCompilerNativizationOptions - fixed inproper references to BP instead of BPGC - fixed generated delegate name - hack for DefaultRootNode UE-39168 - improved NativeCodeGenrationTool - various minor improvements Change 3216363 on 2016/11/30 by Dan.Oconnor Better fix for discrepency between UUserDefinedEnum::GetEnumText and UEnum::GetEnumText. Without meta data we could not look up display names, so I'm writing out the display names into a function in the BP cpp backend. This function could be generated by UHT if we wanted to correct this odd behavior for native enums #jira UE-27735 Change 3217168 on 2016/12/01 by Maciej.Mroz #jira UE-35390 Nativization: Fixed compilation warning C4458: declaration of 'CurrentState' hides class member Disabled warning C4996 (deprecated) in nativized code. Change 3217320 on 2016/12/01 by Phillip.Kavan [UE-38652] Selecting Blueprint assets for nativization is now integrated into the project's configuration. change summary: - added EProjectPackagingBlueprintNativizationMethod - deprecated the 'bNativizeBlueprintAssets' and 'bNativizeOnlySelectedBlueprints' flags in favor of a new 'BlueprintNativizationMethod' config property in UProjectPackagingSettings - added a new 'NativizeBlueprintAssets' config property to UProjectPackagingSettings to track/store the list of Blueprints to be nativized when the exclusive method (whitelist) is selected - added a PostInitProperties() override to UProjectPackagingSettings; implemented to migrate from the deprecated config properties to the new method enum type - updated FMainFrameActionCallbacks::PackageProject() to migrate to checking the enum type - updated FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to migrate to checking the enum type - modified UProjectPackagingSettings::CanEditChange() to enable editing of the nativization whitelist only when the "exclusive" method is active - modified UProjectPackagingSettings::PostEditChangeProperty() to add a new case for handling changes to the whitelist; changes are propagated to any Blueprint assets that are loaded - added new Add/RemoveBlueprintAssetFromNativizationList() APIs to UProjectPackagingSettings for assisting with adding/removing Blueprint assets to/from the exclusive list (whitelist) - deprecated the 'bNativize' flag in UBlueprint in favor of a new transient 'bSelectedForNativization' flag that is no longer serialized; this now caches whether or not the asset is present in the whitelist in the project config - modified UBlueprint::Serialize() to both migrate from the deprecated flag to the project config/transient flag on load, as well as to propagate the value of the transient flag back to the project config on save. this means that if the user changes the value of the transient flag through the Details view, that change won't be reflected back to the project config until the Blueprint is actually saved (saving the value to the config rather than serializing to the asset) - modified UBlueprint::PostEditChangeProperty() to remove code that was previously updating the project configuration at edit time. this functionality has been relocated to Serialize() (save time) instead. notes: - also completes UE-38636 (task: consolidate config options into a single drop-down) #jira UE-38652 Change 3218124 on 2016/12/01 by Dan.Oconnor CPF_HasGetValueTypeHash flag was not set on native UEnumProperties #jira UE-39181 Change 3218168 on 2016/12/01 by Phillip.Kavan Fix local var name that shadows a function param (CIS fix). Change 3219117 on 2016/12/02 by Maciej.Mroz #jira UE-39241 "warning C4458: declaration of XXX hides class member" In Nativized Code Nativization: Fixed compilation warning C4458: when local function variable hides a class variable. Names of local variables in funvtions have prefix "bpfv__". Change 3219201 on 2016/12/02 by Mike.Beach Keeping the "Select All Input Nodes" option from infinitely recurssing by blocking on nodes it has already selected. #jira UE-38988 Change 3219247 on 2016/12/02 by Mike.Beach Fixing CIS shadow variable warning from my last check in (CL 3219201). Change 3219332 on 2016/12/02 by Maciej.Mroz #jira HeaderParser: "private:" specifier is lost in FGameplayTag::TagName Workaround for UE-38231 Change 3219381 on 2016/12/02 by Mike.Beach Accounting for cyclic compile issues in cast-node's validate function, making it check the authoratative class instead of the current type. Also down grading some of the warnings to notes (suggesting the users don't need the cast). #jira UE-39272 Change 3220224 on 2016/12/02 by Dan.Oconnor Reduce font size for compact nodes Change 3220476 on 2016/12/03 by Maciej.Mroz #jira UE-35390 Better fix for UE-35390 Disabled deprecation warnings in nativized code. Change 3221637 on 2016/12/05 by Maciej.Mroz #jira UEBP-245 Nativization: Forced ImportCreation while InitialLoad for DynamicClasses. Change 3222306 on 2016/12/05 by Dan.Oconnor Support for default values of TMap and TSet local variables #jira UE-39239 Change 3222383 on 2016/12/05 by Dan.Oconnor Fixed bug in Blueprint TMap function for getting values out of a TMap Change 3222427 on 2016/12/05 by Mike.Beach Preventing ChildActorTemplate fixups from occuring on component load, when they may instead be a placeholder object (a byproduct of deferred Blueprint loading - a guard against cyclic load problems). #jira UE-39323 Change 3222679 on 2016/12/05 by Dan.Oconnor Remove unused code. Had no sideeffects, other than potential for leak when struct with non-trivial dtor was allocated here. Change 3222719 on 2016/12/05 by Dan.Oconnor Earlier detection of invalid native map/set properties. These generate a compile error if any TMap/TSet functions are used, but will slip by undetected if not used. Working on static assert to catch them. #jira UE-39338 Change 3224375 on 2016/12/06 by Dan.Oconnor Add tags for testing of array diffing Change 3224507 on 2016/12/07 by Phillip.Kavan [UE-39055] Fix a crash caused by an object name collision that could occur when loading some older Blueprint assets. change summary: - added UInheritableComponentHandler::FixComponentTemplateName() - modified UInheritableComponentHandler::PostLoad() to check for and correct stale records that cause a collision with the corrected name - added a UInheritableComponentHandler::Serialize() override to ensure that UsingCustomVersion() is called for the asset containing the ICH (already happening in UBlueprint::Serialize(), but added for consistency with other usage) - modified USimpleConstructionScript::Serialize() to ensure that UsingCustomVersion() is called for the asset containing the SCS (same reason as above) #jira UE-39055 Change 3225572 on 2016/12/07 by Samuel.Proctor Test assets for TSet/TMap testing. Includes new native class for testing containers. #rb none Change 3225577 on 2016/12/07 by Samuel.Proctor New test map for Array, TSet and Tmap testing. Change 3226281 on 2016/12/07 by Dan.Oconnor Container test asset, needs to be in p4 for diff tool tests. Change 3226345 on 2016/12/07 by Dan.Oconnor Another revision of test data Change 3228496 on 2016/12/09 by Ben.Cosh This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build. #Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server #Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend Change 3230120 on 2016/12/09 by Dan.Oconnor Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints) Change 3230700 on 2016/12/12 by Samuel.Proctor Removing some array test properties from container test class that were not needed. Also updated struct element to better reflect testing purpose. #rb none Change 3230926 on 2016/12/12 by Samuel.Proctor Missed a file on previous container test native QA asset checkin. #rb none Change 3231246 on 2016/12/12 by Dan.Oconnor PR #3003: New Feature: In-editor diff of arrays and structs now highlights diff. (Contributed by CA-ADuran). I've added TSet and TMap support as well. Change 3231311 on 2016/12/12 by Dan.Oconnor Handle class load failure #jira UE-39480 Change 3231387 on 2016/12/12 by Dan.Oconnor Shadow variable fixes Change 3231501 on 2016/12/12 by Dan.Oconnor More shadow fixes Change 3231584 on 2016/12/12 by Maciej.Mroz #jira UE-39636 Replaced obsolate macro usage. #fyi Dan.Oconnor Change 3231685 on 2016/12/12 by Mike.Beach PR #3032: Fixed category for IsValidIndex (Contributed by elFarto) #jira UE-39660 Change 3231689 on 2016/12/12 by Maciej.Mroz Nativization: Fixed Dependency list generation. Change 3231765 on 2016/12/12 by Phillip.Kavan [UE-38903] Auto-enable exclusive Blueprint nativization only after explicitly selecting the first asset. change summary: - fixed up the auto-enable logic on save in UBlueprint::Serialize() #jira UE-38903 #fyi Maciej.Mroz Change 3231837 on 2016/12/12 by Dan.Oconnor Restore hack to keep objects referenced by bytecode alive while in editor #jira UE-38486 Change 3232085 on 2016/12/13 by Phillip.Kavan Compile fix. Change 3232435 on 2016/12/13 by Ben.Cosh Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes. #Jira UE-39623 - Unknown template referenced by Add Component Node #Proj BlueprintGraph, Engine Change 3232437 on 2016/12/13 by Maciej.Mroz #jira UE-33021 Remove an obsolete warning. Change 3232564 on 2016/12/13 by Ben.Cosh This adds extra component template renaming propagation and checking for the blueprint generated class and blueprint skeleton class. #Jira UE-39623 - Unknown template referenced by Add Component Node #Proj BlueprintGraph - Implementing a bit of review feedback and some safety checking. Change 3232598 on 2016/12/13 by Maciej.Mroz Nativization: stati functions cannot be const, so no workaound (_Inner function) specyfic to const functions is necessary #jira UE-39518 Change 3232601 on 2016/12/13 by Phillip.Kavan [UE-38975] Warn on BuildCookRun or a standalone cook when the -nativizeAssets flag is omitted from the command line for a nativization-enabled project. change summary: - added 'bWarnIfPackagedWithoutNativizationFlag' to UProjectPackagingSettings (default = true) - modified UCookOnTheFlyServer::StartCookByTheBook() to check for the presence of the -nativizeAssets flag and emit a warning for unexpected omission from the command line - modified UAT to include a warning for the BuildCookRun command when -build is specified with the same unexpected omission of the -nativizeAssets flag on the UAT command line #jira UE-38975 Change 3232749 on 2016/12/13 by Mike.Beach Moving Blueprint nativization out of the experimental category. #jira UE-39358 Change 3233043 on 2016/12/13 by Dan.Oconnor Various fixes for TSet/TMap nativization issues #jira UE-39634 Change 3233086 on 2016/12/13 by Dan.Oconnor Advanced Containers (TSet/TMap) no longer experimental Change 3233175 on 2016/12/13 by Mike.Beach Whitelising "Packaging" as an acceptable BP settings category (follow up to CL 3232749). #jira UE-39358 Change 3233182 on 2016/12/13 by Mike.Beach Exposing the editor setting "Show Action Menu Item Signatures" through the Blueprint Developer menu (for ease of access). Change 3233662 on 2016/12/13 by Phillip.Kavan [UE-39722] Fix a typo that led to a UAT runtime failure. #jira UE-39722 Change 3233710 on 2016/12/13 by Dan.Oconnor Clang template useage fix #jira UE-39742 Change 3233895 on 2016/12/13 by Dan.Oconnor Several fixes to crashes that occur when you delete a blueprint asset when its children are not loaded. #jira UE-39558 Change 3234443 on 2016/12/14 by Phillip.Kavan [UE-39354] Fix script VM crash on assignment to TSet/TMap variables. change summary: - modified FScriptBuilderBase::EmitDestinationExpression() to consider TSet/TMap value types in addition to TArray terms #jira UE-39354 Change 3234581 on 2016/12/14 by Mike.Beach Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates). #jira UE-39707 Change 3234729 on 2016/12/14 by Mike.Beach Making it so AddComponent nodes now track the component (class) type that they represent (in case the template cannot be spawned, like in -server w/ client-only components). #jira UE-38842 Change 3234805 on 2016/12/14 by Mike.Beach Fixing CIS shadowed variable warning. Change 3234830 on 2016/12/14 by Nick.Atamas Added extra debugging mechanisms to help track down duplicate item issues with TableViews. Change 3235075 on 2016/12/14 by Mike.Beach Creating a helper to better manage nested scope blocks added in generated code - on close, clears out cached local accessor variables that were added, so we don't use one that was declared inside the nested scope. #jira UE-39769 Change 3235213 on 2016/12/14 by Phillip.Kavan [UE-39790] Fix UAT compile issue after latest merge from Main. change summary: - migrated the BuildCookRun command's usage of the (deprecated) ConfigCacheIni to the new ConfigHierarchy API #jira UE-39790 Change 3235384 on 2016/12/14 by Mike.Beach Defaulting to excluding data-only Blueprints from nativization. Change 3235675 on 2016/12/14 by Nick.Atamas Hopefully fixed build. Added OnEnteredBadState delegate that lets users add arbitrary logging info when the List/Tree enters a bad state. Change 3235761 on 2016/12/14 by Mike.Beach Hopefully resolving CIS mac/ps4 build failures in Dev-BP for 4.15 integration. #jira UE-39800 Change 3235800 on 2016/12/14 by Mike.Beach More hopeful CIS mac/ps4 fixes for 4.15 integration. #jira UE-39800 [CL 3236017 by Mike Beach in Main branch]
2016-12-14 22:10:20 -05:00
case EX_SetSet:
{
Ar.Logf(TEXT("%s $%X: set set"), *Indents, (int32)Opcode);
SerializeExpr(ScriptIndex);
ReadINT(ScriptIndex);
while( SerializeExpr(ScriptIndex) != EX_EndSet)
{
// Set contents
}
break;
}
case EX_EndSet:
{
Ar.Logf(TEXT("%s $%X: EX_EndSet"), *Indents, (int32)Opcode);
break;
}
case EX_SetConst:
{
FProperty* InnerProp = ReadPointer<FProperty>(ScriptIndex);
int32 Num = ReadINT(ScriptIndex);
Ar.Logf(TEXT("%s $%X: set set const - elements number: %d, inner property: %s"), *Indents, (int32)Opcode, Num, *GetNameSafe(InnerProp));
while (SerializeExpr(ScriptIndex) != EX_EndSetConst)
{
// Set contents
}
break;
}
case EX_EndSetConst:
{
Ar.Logf(TEXT("%s $%X: EX_EndSetConst"), *Indents, (int32)Opcode);
break;
}
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3235800) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3194900 on 2016/11/11 by Ryan.Rauschkolb Fixed issue where Reroute node pins weren't mirroring data properly. #jira UE-33717 Change 3195081 on 2016/11/11 by Dan.Oconnor This @todo was addressed Change 3196368 on 2016/11/14 by Maciej.Mroz Results of FBlueprintNativeCodeGenModule::IsTargetedForReplacement are cashed - optimization (cooking time). Change 3196369 on 2016/11/14 by Maciej.Mroz CompileDisplaysBinaryBackend, CompileDisplaysTextBackend and bDisplaysLayout features (in [Kismet] in Engine.ini) are disabled in commandlets. They slow down BP compilation. Change 3196398 on 2016/11/14 by Ben.Cosh Reworked the tracking of latent and expansion event tracking in the blueprint compiler for use with the blueprint profiler. #Jira - UE-37364 - Crash: PIE with instrumented PlayerPawn_Generic added to AITestbed scene #Proj BlueprintProfiler, KismetCompiler. BlueprintGraph, Engine Change 3196410 on 2016/11/14 by Maciej.Mroz Fixed crash in UK2Node_Knot::PropagatePinTypeFromInput Change 3196852 on 2016/11/14 by Maciej.Mroz Fixed static analysis warning. Change 3196874 on 2016/11/14 by Maciej.Mroz #jira UE-37778 (the issue was already fixed, but it was reintroduced, when EDL support was added). ObjectImport->XObject is not filled prematurelly, so CreateExport is properly called each dynamic class. Change 3197469 on 2016/11/14 by Dan.Oconnor Fix for being able to make Sets and Maps of user defined structs that contained unhashable types (e.g. Rotator) Change 3197703 on 2016/11/14 by Dan.Oconnor Updated documentation comment to reflect current behavior Change 3198167 on 2016/11/15 by Maciej.Mroz Merged 3196582 from Dev-Core UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game. Change 3198433 on 2016/11/15 by Ryan.Rauschkolb Fixed Copy/pasting variable nodes hides them from a reference search #UE-31606 Change 3198811 on 2016/11/15 by Maciej.Mroz Fixed Knot node - it will use/propagate the type from input connection, if it's possible (intstead of the type from output connection). Change 3198866 on 2016/11/15 by Maciej.Mroz #jira UE-38578 Fixed infinite loading of DynamicClass in EDL. Change 3199045 on 2016/11/15 by Phillip.Kavan [UE-27402] Fix attached Actor-based Blueprint instance root component relative transform values after reconstruction. change summary: - modified FActorComponentInstanceData's ctor to exclude relative transform properties when caching root component values. #jira UE-27402 Change 3200703 on 2016/11/16 by Mike.Beach Marking the ease node explicitly as pure, which makes it so we can prune it from graphs when it is unused. #jira UE-38453 Change 3201115 on 2016/11/16 by Maciej.Mroz Nativization + EDL: "Dynamic" objects are processed by FAsyncPackage::PostLoadDeferredObjects, so the EInternalObjectFlags::AsyncLoading flag is properly cleared. Change 3201749 on 2016/11/17 by Maciej.Mroz In EDL a package containig a dynamic class has PKG_CompiledIn flag (the same like without EDL). Change 3202577 on 2016/11/17 by Mike.Beach Accounting for a change in our intermediate node mapping - the old list no longer maps expanded nodes to macro instances (instead it maps to the corresponding node in the macro graph), so we had to use a new mapping meant for this. #jira UE-35609 Change 3204803 on 2016/11/18 by Phillip.Kavan [UE-38607] Implicitly turn on Blueprint class nativization for dependencies. change summary: - added a UBlueprint::PostEditChangeProperty() override method to handle this. #jira UE-38607 Change 3204812 on 2016/11/18 by Phillip.Kavan [UE-38580] Implicitly turn on the "nativize" project setting when enabling nativize for any Blueprint class. change summary: - modified UBlueprint::PostEditChangeProperty() to update project packaging settings if necessary #jira UE-38580 Change 3204818 on 2016/11/18 by Phillip.Kavan [UE-38725] Interface class dependencies that are not enabled for nativization will now raise an error during nativized cooks. change summary: - modified FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to check interface class dependencies in addition to parent class dependencies. #jira UE-38725 Change 3204963 on 2016/11/18 by Dan.Oconnor Create a transaction when using UBlueprintFunctionNodeSpawner* directly #jira UE-36439 Change 3206510 on 2016/11/21 by Mike.Beach Adding math-expression aliases for dot and cross functions ("dot" and "cross" respectively). #jira UEBP-71 Change 3206547 on 2016/11/21 by Mike.Beach Exposing GetReflectionVector() to Blueprints. #jira UEBP-70 Change 3206658 on 2016/11/21 by Dan.Oconnor Fix for compile error, digging out authorative class from trash class. Mirror of 3206638 from Odin #jira None Change 3207579 on 2016/11/22 by Mike.Beach No longer enforcing the requirement that game UFunctions have to have a category (making writing of game code easier). #jira UE-18093 Change 3207956 on 2016/11/22 by Phillip.Kavan [UE-38690] Fix a regression in which nested scene component subobjects would no longer be registered after construction of an instance-added component in IWCE. change summary: - modified the IWCE path in SSCSEditor::AddNewComponent() to ensure that any components added as a result of instancing the newly-added component are also registered. - modified AActor::ExecuteConstruction() to ensure that non-scene, native nested component subobjects that might be created as a result of SCS execution are also registered (previously it was only considering non-scene components that were explicitly created by the SCS, or that inherited the creation method of the instance that created it). #jira UE-38690 Change 3208217 on 2016/11/22 by Mike.Beach Modified fix (originally from Ryan.Rauschkolb, CL 3186023): Fixed unable to set struct variable name if name includes space #jira UE-28435 Change 3208347 on 2016/11/22 by Mike.Beach Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints) Change 3208688 on 2016/11/23 by Ben.Cosh Made a minor change that forces debugging references to the PIE world when the play in editor world is changed. This is intended to better handle mutliple game instance/world debugging scenarios. #Jira UE-26386 - Can't hit breakpoints in blueprints for level script for server instances #Proj Engine, UnrealEd Change 3208712 on 2016/11/23 by Ben.Cosh Improved handling of unwired transform struct terminal expression's in the blueprint VM compiler to remove an errant warning. #Jira UE-32401 - "ImportText: Missing opening parenthesis" message, when a function returns Transform #Proj KismetCompiler Change 3209457 on 2016/11/23 by Phillip.Kavan [UE-30479] Fix inability to edit the ISMC instance array on Actor instances when the ISMC is inherited from a Blueprint class. change summary: - added PPF_ForceTaggedSerialization as a means to override the CPF_SkipSerialization flag when explicit serialization of the property value is needed - modified UProperty::ShouldSerializeValue() to check for and handle the PPF_ForceTaggedSerialization flag when the CPF_SkipSerialization flag is present - modified UActorComponent::DetermineUCSModifiedProperties() to add the PPF_ForceTaggedSerialization flag to the custom FArchive impl - modified FActorComponentInstanceData::FActorComponentInstanceData() to add the PPF_ForceTaggedSerialization flag to the custom FObjectWriter impl - modified FActorComponentInstanceData::ApplyToComponent() to add the PPF_ForceTaggedSerialization flag to the custom FObjectReader impl #jira UE-30479 Change 3209758 on 2016/11/24 by Maciej.Mroz #jira UE-38979 Nativization: fixed error when a BP implements a native interface. FBlueprintNativeCodeGenModule::IsTargetedForReplacement will return "DontReplace" for native class. Change 3210376 on 2016/11/25 by Maciej.Mroz #jira UE-39028 Fixed FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter Components in nativized BPCG SCS have replaced outer object and name while cooking. Change 3210936 on 2016/11/28 by Phillip.Kavan Minor revision to try and avoid a potentially expensive Contains() call when possible. Change 3211527 on 2016/11/28 by Maciej.Mroz Fixed map of names cooked in packages in nativized build. Change 3211969 on 2016/11/28 by Mike.Beach Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints) Change 3212328 on 2016/11/28 by Dan.Oconnor Enum, pointer and arithmetic specializations for THasGetTypeHash, as VC doesn't detect them properly. TIsEnum moved to its own header. Submitted on behalf of steve.robb Change 3212398 on 2016/11/28 by Dan.Oconnor Build fix, this function is part of another change Change 3212442 on 2016/11/28 by Dan.Oconnor UHT now supports structs in TMap and TSet, misc. fixes to PropertyStruct's PropertyFlags detecting whether the struct type is hashable (all HasGetTypeHash flags are now computed from THasGetTypeHash). Various fixes for generating TMap/TSet code from blueprints Change 3212578 on 2016/11/28 by Dan.Oconnor Rename RegisterClass to avoid collsion with RegistClass macro in generated code Change 3213668 on 2016/11/29 by Dan.Oconnor Fix for missing CDO when instatiating some subobjects in nativized BPs #jira UE-34980 Change 3213737 on 2016/11/29 by Dan.Oconnor Added GetTypeHash implementation to UEnumProperty #jira UE-39091 Change 3215225 on 2016/11/30 by Maciej.Mroz Bunch of changes required for nativized Orion to work with EDL. - ClientOnly, ServerOnly and EditorOnly assets are properly distinguished and handled - Introduced FCompilerNativizationOptions - fixed inproper references to BP instead of BPGC - fixed generated delegate name - hack for DefaultRootNode UE-39168 - improved NativeCodeGenrationTool - various minor improvements Change 3216363 on 2016/11/30 by Dan.Oconnor Better fix for discrepency between UUserDefinedEnum::GetEnumText and UEnum::GetEnumText. Without meta data we could not look up display names, so I'm writing out the display names into a function in the BP cpp backend. This function could be generated by UHT if we wanted to correct this odd behavior for native enums #jira UE-27735 Change 3217168 on 2016/12/01 by Maciej.Mroz #jira UE-35390 Nativization: Fixed compilation warning C4458: declaration of 'CurrentState' hides class member Disabled warning C4996 (deprecated) in nativized code. Change 3217320 on 2016/12/01 by Phillip.Kavan [UE-38652] Selecting Blueprint assets for nativization is now integrated into the project's configuration. change summary: - added EProjectPackagingBlueprintNativizationMethod - deprecated the 'bNativizeBlueprintAssets' and 'bNativizeOnlySelectedBlueprints' flags in favor of a new 'BlueprintNativizationMethod' config property in UProjectPackagingSettings - added a new 'NativizeBlueprintAssets' config property to UProjectPackagingSettings to track/store the list of Blueprints to be nativized when the exclusive method (whitelist) is selected - added a PostInitProperties() override to UProjectPackagingSettings; implemented to migrate from the deprecated config properties to the new method enum type - updated FMainFrameActionCallbacks::PackageProject() to migrate to checking the enum type - updated FBlueprintNativeCodeGenModule::IsTargetedForReplacement() to migrate to checking the enum type - modified UProjectPackagingSettings::CanEditChange() to enable editing of the nativization whitelist only when the "exclusive" method is active - modified UProjectPackagingSettings::PostEditChangeProperty() to add a new case for handling changes to the whitelist; changes are propagated to any Blueprint assets that are loaded - added new Add/RemoveBlueprintAssetFromNativizationList() APIs to UProjectPackagingSettings for assisting with adding/removing Blueprint assets to/from the exclusive list (whitelist) - deprecated the 'bNativize' flag in UBlueprint in favor of a new transient 'bSelectedForNativization' flag that is no longer serialized; this now caches whether or not the asset is present in the whitelist in the project config - modified UBlueprint::Serialize() to both migrate from the deprecated flag to the project config/transient flag on load, as well as to propagate the value of the transient flag back to the project config on save. this means that if the user changes the value of the transient flag through the Details view, that change won't be reflected back to the project config until the Blueprint is actually saved (saving the value to the config rather than serializing to the asset) - modified UBlueprint::PostEditChangeProperty() to remove code that was previously updating the project configuration at edit time. this functionality has been relocated to Serialize() (save time) instead. notes: - also completes UE-38636 (task: consolidate config options into a single drop-down) #jira UE-38652 Change 3218124 on 2016/12/01 by Dan.Oconnor CPF_HasGetValueTypeHash flag was not set on native UEnumProperties #jira UE-39181 Change 3218168 on 2016/12/01 by Phillip.Kavan Fix local var name that shadows a function param (CIS fix). Change 3219117 on 2016/12/02 by Maciej.Mroz #jira UE-39241 "warning C4458: declaration of XXX hides class member" In Nativized Code Nativization: Fixed compilation warning C4458: when local function variable hides a class variable. Names of local variables in funvtions have prefix "bpfv__". Change 3219201 on 2016/12/02 by Mike.Beach Keeping the "Select All Input Nodes" option from infinitely recurssing by blocking on nodes it has already selected. #jira UE-38988 Change 3219247 on 2016/12/02 by Mike.Beach Fixing CIS shadow variable warning from my last check in (CL 3219201). Change 3219332 on 2016/12/02 by Maciej.Mroz #jira HeaderParser: "private:" specifier is lost in FGameplayTag::TagName Workaround for UE-38231 Change 3219381 on 2016/12/02 by Mike.Beach Accounting for cyclic compile issues in cast-node's validate function, making it check the authoratative class instead of the current type. Also down grading some of the warnings to notes (suggesting the users don't need the cast). #jira UE-39272 Change 3220224 on 2016/12/02 by Dan.Oconnor Reduce font size for compact nodes Change 3220476 on 2016/12/03 by Maciej.Mroz #jira UE-35390 Better fix for UE-35390 Disabled deprecation warnings in nativized code. Change 3221637 on 2016/12/05 by Maciej.Mroz #jira UEBP-245 Nativization: Forced ImportCreation while InitialLoad for DynamicClasses. Change 3222306 on 2016/12/05 by Dan.Oconnor Support for default values of TMap and TSet local variables #jira UE-39239 Change 3222383 on 2016/12/05 by Dan.Oconnor Fixed bug in Blueprint TMap function for getting values out of a TMap Change 3222427 on 2016/12/05 by Mike.Beach Preventing ChildActorTemplate fixups from occuring on component load, when they may instead be a placeholder object (a byproduct of deferred Blueprint loading - a guard against cyclic load problems). #jira UE-39323 Change 3222679 on 2016/12/05 by Dan.Oconnor Remove unused code. Had no sideeffects, other than potential for leak when struct with non-trivial dtor was allocated here. Change 3222719 on 2016/12/05 by Dan.Oconnor Earlier detection of invalid native map/set properties. These generate a compile error if any TMap/TSet functions are used, but will slip by undetected if not used. Working on static assert to catch them. #jira UE-39338 Change 3224375 on 2016/12/06 by Dan.Oconnor Add tags for testing of array diffing Change 3224507 on 2016/12/07 by Phillip.Kavan [UE-39055] Fix a crash caused by an object name collision that could occur when loading some older Blueprint assets. change summary: - added UInheritableComponentHandler::FixComponentTemplateName() - modified UInheritableComponentHandler::PostLoad() to check for and correct stale records that cause a collision with the corrected name - added a UInheritableComponentHandler::Serialize() override to ensure that UsingCustomVersion() is called for the asset containing the ICH (already happening in UBlueprint::Serialize(), but added for consistency with other usage) - modified USimpleConstructionScript::Serialize() to ensure that UsingCustomVersion() is called for the asset containing the SCS (same reason as above) #jira UE-39055 Change 3225572 on 2016/12/07 by Samuel.Proctor Test assets for TSet/TMap testing. Includes new native class for testing containers. #rb none Change 3225577 on 2016/12/07 by Samuel.Proctor New test map for Array, TSet and Tmap testing. Change 3226281 on 2016/12/07 by Dan.Oconnor Container test asset, needs to be in p4 for diff tool tests. Change 3226345 on 2016/12/07 by Dan.Oconnor Another revision of test data Change 3228496 on 2016/12/09 by Ben.Cosh This change adds extra information to component template arrays so that the component class can be determined in builds that strip out objects of certain class types such as the editor dedicated server build. #Jira UE-38842 - "LogBlueprint:Error: [Compiler BP_Skybox_World_RandomTrees_01] Error Can't connect pins ReturnValue and Target" after entering a lobby in a synced server #Proj KismetCompiler, BlueprintGraph, UnrealEd, Core, Engine, Kismet, BlueprintCompilerCppBackend Change 3230120 on 2016/12/09 by Dan.Oconnor Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints) Change 3230700 on 2016/12/12 by Samuel.Proctor Removing some array test properties from container test class that were not needed. Also updated struct element to better reflect testing purpose. #rb none Change 3230926 on 2016/12/12 by Samuel.Proctor Missed a file on previous container test native QA asset checkin. #rb none Change 3231246 on 2016/12/12 by Dan.Oconnor PR #3003: New Feature: In-editor diff of arrays and structs now highlights diff. (Contributed by CA-ADuran). I've added TSet and TMap support as well. Change 3231311 on 2016/12/12 by Dan.Oconnor Handle class load failure #jira UE-39480 Change 3231387 on 2016/12/12 by Dan.Oconnor Shadow variable fixes Change 3231501 on 2016/12/12 by Dan.Oconnor More shadow fixes Change 3231584 on 2016/12/12 by Maciej.Mroz #jira UE-39636 Replaced obsolate macro usage. #fyi Dan.Oconnor Change 3231685 on 2016/12/12 by Mike.Beach PR #3032: Fixed category for IsValidIndex (Contributed by elFarto) #jira UE-39660 Change 3231689 on 2016/12/12 by Maciej.Mroz Nativization: Fixed Dependency list generation. Change 3231765 on 2016/12/12 by Phillip.Kavan [UE-38903] Auto-enable exclusive Blueprint nativization only after explicitly selecting the first asset. change summary: - fixed up the auto-enable logic on save in UBlueprint::Serialize() #jira UE-38903 #fyi Maciej.Mroz Change 3231837 on 2016/12/12 by Dan.Oconnor Restore hack to keep objects referenced by bytecode alive while in editor #jira UE-38486 Change 3232085 on 2016/12/13 by Phillip.Kavan Compile fix. Change 3232435 on 2016/12/13 by Ben.Cosh Fix for a bug introduced in CL 3228496 that caused component templates to fail to be identified by name and resulted in blueprint compilation issues for add component nodes. #Jira UE-39623 - Unknown template referenced by Add Component Node #Proj BlueprintGraph, Engine Change 3232437 on 2016/12/13 by Maciej.Mroz #jira UE-33021 Remove an obsolete warning. Change 3232564 on 2016/12/13 by Ben.Cosh This adds extra component template renaming propagation and checking for the blueprint generated class and blueprint skeleton class. #Jira UE-39623 - Unknown template referenced by Add Component Node #Proj BlueprintGraph - Implementing a bit of review feedback and some safety checking. Change 3232598 on 2016/12/13 by Maciej.Mroz Nativization: stati functions cannot be const, so no workaound (_Inner function) specyfic to const functions is necessary #jira UE-39518 Change 3232601 on 2016/12/13 by Phillip.Kavan [UE-38975] Warn on BuildCookRun or a standalone cook when the -nativizeAssets flag is omitted from the command line for a nativization-enabled project. change summary: - added 'bWarnIfPackagedWithoutNativizationFlag' to UProjectPackagingSettings (default = true) - modified UCookOnTheFlyServer::StartCookByTheBook() to check for the presence of the -nativizeAssets flag and emit a warning for unexpected omission from the command line - modified UAT to include a warning for the BuildCookRun command when -build is specified with the same unexpected omission of the -nativizeAssets flag on the UAT command line #jira UE-38975 Change 3232749 on 2016/12/13 by Mike.Beach Moving Blueprint nativization out of the experimental category. #jira UE-39358 Change 3233043 on 2016/12/13 by Dan.Oconnor Various fixes for TSet/TMap nativization issues #jira UE-39634 Change 3233086 on 2016/12/13 by Dan.Oconnor Advanced Containers (TSet/TMap) no longer experimental Change 3233175 on 2016/12/13 by Mike.Beach Whitelising "Packaging" as an acceptable BP settings category (follow up to CL 3232749). #jira UE-39358 Change 3233182 on 2016/12/13 by Mike.Beach Exposing the editor setting "Show Action Menu Item Signatures" through the Blueprint Developer menu (for ease of access). Change 3233662 on 2016/12/13 by Phillip.Kavan [UE-39722] Fix a typo that led to a UAT runtime failure. #jira UE-39722 Change 3233710 on 2016/12/13 by Dan.Oconnor Clang template useage fix #jira UE-39742 Change 3233895 on 2016/12/13 by Dan.Oconnor Several fixes to crashes that occur when you delete a blueprint asset when its children are not loaded. #jira UE-39558 Change 3234443 on 2016/12/14 by Phillip.Kavan [UE-39354] Fix script VM crash on assignment to TSet/TMap variables. change summary: - modified FScriptBuilderBase::EmitDestinationExpression() to consider TSet/TMap value types in addition to TArray terms #jira UE-39354 Change 3234581 on 2016/12/14 by Mike.Beach Backing out fix for UE-38842 (CL 3228496/3232435/3232564) - mapping UBlueprintGeneratedClass's ComponentTemplates array to a new format was causing issues with deferred dependency loading during serialization (trying to extract type information from a placeholder object). We're opting for a smaller/simpler solution to UE-38842, which will be to store the component information on the node itself (not with the templates). #jira UE-39707 Change 3234729 on 2016/12/14 by Mike.Beach Making it so AddComponent nodes now track the component (class) type that they represent (in case the template cannot be spawned, like in -server w/ client-only components). #jira UE-38842 Change 3234805 on 2016/12/14 by Mike.Beach Fixing CIS shadowed variable warning. Change 3234830 on 2016/12/14 by Nick.Atamas Added extra debugging mechanisms to help track down duplicate item issues with TableViews. Change 3235075 on 2016/12/14 by Mike.Beach Creating a helper to better manage nested scope blocks added in generated code - on close, clears out cached local accessor variables that were added, so we don't use one that was declared inside the nested scope. #jira UE-39769 Change 3235213 on 2016/12/14 by Phillip.Kavan [UE-39790] Fix UAT compile issue after latest merge from Main. change summary: - migrated the BuildCookRun command's usage of the (deprecated) ConfigCacheIni to the new ConfigHierarchy API #jira UE-39790 Change 3235384 on 2016/12/14 by Mike.Beach Defaulting to excluding data-only Blueprints from nativization. Change 3235675 on 2016/12/14 by Nick.Atamas Hopefully fixed build. Added OnEnteredBadState delegate that lets users add arbitrary logging info when the List/Tree enters a bad state. Change 3235761 on 2016/12/14 by Mike.Beach Hopefully resolving CIS mac/ps4 build failures in Dev-BP for 4.15 integration. #jira UE-39800 Change 3235800 on 2016/12/14 by Mike.Beach More hopeful CIS mac/ps4 fixes for 4.15 integration. #jira UE-39800 [CL 3236017 by Mike Beach in Main branch]
2016-12-14 22:10:20 -05:00
case EX_SetMap:
{
Ar.Logf(TEXT("%s $%X: set map"), *Indents, (int32)Opcode);
SerializeExpr(ScriptIndex);
ReadINT(ScriptIndex);
while( SerializeExpr(ScriptIndex) != EX_EndMap)
{
// Map contents
}
break;
}
case EX_EndMap:
{
Ar.Logf(TEXT("%s $%X: EX_EndMap"), *Indents, (int32)Opcode);
break;
}
case EX_MapConst:
{
FProperty* KeyProp = ReadPointer<FProperty>(ScriptIndex);
FProperty* ValProp = ReadPointer<FProperty>(ScriptIndex);
int32 Num = ReadINT(ScriptIndex);
Ar.Logf(TEXT("%s $%X: set map const - elements number: %d, key property: %s, val property: %s"), *Indents, (int32)Opcode, Num, *GetNameSafe(KeyProp), *GetNameSafe(ValProp));
while (SerializeExpr(ScriptIndex) != EX_EndMapConst)
{
// Map contents
}
break;
}
case EX_EndMapConst:
{
Ar.Logf(TEXT("%s $%X: EX_EndMapConst"), *Indents, (int32)Opcode);
break;
}
case EX_ObjToInterfaceCast:
{
// A conversion from an object variable to a native interface variable.
// We use a different bytecode to avoid the branching each time we process a cast token
// the interface class to convert to
UClass* InterfaceClass = ReadPointer<UClass>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: ObjToInterfaceCast to %s"), *Indents, (int32)Opcode, *InterfaceClass->GetName());
SerializeExpr( ScriptIndex );
break;
}
case EX_CrossInterfaceCast:
{
// A conversion from one interface variable to a different interface variable.
// We use a different bytecode to avoid the branching each time we process a cast token
// the interface class to convert to
UClass* InterfaceClass = ReadPointer<UClass>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: InterfaceToInterfaceCast to %s"), *Indents, (int32)Opcode, *InterfaceClass->GetName());
SerializeExpr( ScriptIndex );
break;
}
case EX_InterfaceToObjCast:
{
// A conversion from an interface variable to a object variable.
// We use a different bytecode to avoid the branching each time we process a cast token
// the interface class to convert to
UClass* ObjectClass = ReadPointer<UClass>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: InterfaceToObjCast to %s"), *Indents, (int32)Opcode, *ObjectClass->GetName());
SerializeExpr( ScriptIndex );
break;
}
case EX_Let:
{
Ar.Logf(TEXT("%s $%X: Let (Variable = Expression)"), *Indents, (int32)Opcode);
AddIndent();
ReadPointer<FProperty>(ScriptIndex);
// Variable expr.
Ar.Logf(TEXT("%s Variable:"), *Indents);
SerializeExpr( ScriptIndex );
// Assignment expr.
Ar.Logf(TEXT("%s Expression:"), *Indents);
SerializeExpr( ScriptIndex );
DropIndent();
break;
}
case EX_LetObj:
case EX_LetWeakObjPtr:
{
if( Opcode == EX_LetObj )
{
Ar.Logf(TEXT("%s $%X: Let Obj (Variable = Expression)"), *Indents, (int32)Opcode);
}
else
{
Ar.Logf(TEXT("%s $%X: Let WeakObjPtr (Variable = Expression)"), *Indents, (int32)Opcode);
}
AddIndent();
// Variable expr.
Ar.Logf(TEXT("%s Variable:"), *Indents);
SerializeExpr( ScriptIndex );
// Assignment expr.
Ar.Logf(TEXT("%s Expression:"), *Indents);
SerializeExpr( ScriptIndex );
DropIndent();
break;
}
case EX_LetBool:
{
Ar.Logf(TEXT("%s $%X: LetBool (Variable = Expression)"), *Indents, (int32)Opcode);
AddIndent();
// Variable expr.
Ar.Logf(TEXT("%s Variable:"), *Indents);
SerializeExpr( ScriptIndex );
// Assignment expr.
Ar.Logf(TEXT("%s Expression:"), *Indents);
SerializeExpr( ScriptIndex );
DropIndent();
break;
}
case EX_LetValueOnPersistentFrame:
{
Ar.Logf(TEXT("%s $%X: LetValueOnPersistentFrame"), *Indents, (int32)Opcode);
AddIndent();
auto Prop = ReadPointer<FProperty>(ScriptIndex);
Ar.Logf(TEXT("%s Destination variable: %s, offset: %d"), *Indents, *GetNameSafe(Prop),
Prop ? Prop->GetOffset_ForDebug() : 0);
Ar.Logf(TEXT("%s Expression:"), *Indents);
SerializeExpr(ScriptIndex);
DropIndent();
break;
}
case EX_StructMemberContext:
{
Ar.Logf(TEXT("%s $%X: Struct member context "), *Indents, (int32)Opcode);
AddIndent();
FProperty* Prop = ReadPointer<FProperty>(ScriptIndex);
Ar.Logf(TEXT("%s Member named %s @ offset %d"), *Indents, *(Prop->GetName()),
Prop->GetOffset_ForDebug()); // although that isn't a UFunction, we are not going to indirect the props of a struct, so this should be fine
Ar.Logf(TEXT("%s Expression to struct:"), *Indents);
SerializeExpr( ScriptIndex );
DropIndent();
break;
}
case EX_LetDelegate:
{
Ar.Logf(TEXT("%s $%X: LetDelegate (Variable = Expression)"), *Indents, (int32)Opcode);
AddIndent();
// Variable expr.
Ar.Logf(TEXT("%s Variable:"), *Indents);
SerializeExpr( ScriptIndex );
// Assignment expr.
Ar.Logf(TEXT("%s Expression:"), *Indents);
SerializeExpr( ScriptIndex );
DropIndent();
break;
}
case EX_LocalVirtualFunction:
{
FString FunctionName = ReadName(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Local Virtual Script Function named %s"), *Indents, (int32)Opcode, *FunctionName);
while (SerializeExpr(ScriptIndex) != EX_EndFunctionParms)
{
}
break;
}
case EX_LocalFinalFunction:
{
UStruct* StackNode = ReadPointer<UStruct>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Local Final Script Function (stack node %s::%s)"), *Indents, (int32)Opcode, StackNode ? *StackNode->GetOuter()->GetName() : TEXT("(null)"), StackNode ? *StackNode->GetName() : TEXT("(null)"));
while (SerializeExpr( ScriptIndex ) != EX_EndFunctionParms)
{
// Params
}
break;
}
case EX_LetMulticastDelegate:
{
Ar.Logf(TEXT("%s $%X: LetMulticastDelegate (Variable = Expression)"), *Indents, (int32)Opcode);
AddIndent();
// Variable expr.
Ar.Logf(TEXT("%s Variable:"), *Indents);
SerializeExpr( ScriptIndex );
// Assignment expr.
Ar.Logf(TEXT("%s Expression:"), *Indents);
SerializeExpr( ScriptIndex );
DropIndent();
break;
}
case EX_ComputedJump:
{
Ar.Logf(TEXT("%s $%X: Computed Jump, offset specified by expression:"), *Indents, (int32)Opcode);
AddIndent();
SerializeExpr( ScriptIndex );
DropIndent();
break;
}
case EX_Jump:
{
CodeSkipSizeType SkipCount = ReadSkipCount(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Jump to offset 0x%X"), *Indents, (int32)Opcode, SkipCount);
break;
}
case EX_LocalVariable:
{
FProperty* PropertyPtr = ReadPointer<FProperty>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Local variable named %s"), *Indents, (int32)Opcode, PropertyPtr ? *PropertyPtr->GetName() : TEXT("(null)"));
break;
}
case EX_DefaultVariable:
{
FProperty* PropertyPtr = ReadPointer<FProperty>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Default variable named %s"), *Indents, (int32)Opcode, PropertyPtr ? *PropertyPtr->GetName() : TEXT("(null)"));
break;
}
case EX_InstanceVariable:
{
FProperty* PropertyPtr = ReadPointer<FProperty>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Instance variable named %s"), *Indents, (int32)Opcode, PropertyPtr ? *PropertyPtr->GetName() : TEXT("(null)"));
break;
}
case EX_LocalOutVariable:
{
FProperty* PropertyPtr = ReadPointer<FProperty>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Local out variable named %s"), *Indents, (int32)Opcode, PropertyPtr ? *PropertyPtr->GetName() : TEXT("(null)"));
break;
}
case EX_ClassSparseDataVariable:
{
FProperty* PropertyPtr = ReadPointer<FProperty>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Class sparse data variable named %s"), *Indents, (int32)Opcode, PropertyPtr ? *PropertyPtr->GetName() : TEXT("(null)"));
break;
}
case EX_InterfaceContext:
{
Ar.Logf(TEXT("%s $%X: EX_InterfaceContext:"), *Indents, (int32)Opcode);
SerializeExpr(ScriptIndex);
break;
}
case EX_DeprecatedOp4A:
{
Ar.Logf(TEXT("%s $%X: This opcode has been removed and does nothing."), *Indents, (int32)Opcode);
break;
}
case EX_Nothing:
{
Ar.Logf(TEXT("%s $%X: EX_Nothing"), *Indents, (int32)Opcode);
break;
}
case EX_EndOfScript:
{
Ar.Logf(TEXT("%s $%X: EX_EndOfScript"), *Indents, (int32)Opcode);
break;
}
case EX_EndFunctionParms:
{
Ar.Logf(TEXT("%s $%X: EX_EndFunctionParms"), *Indents, (int32)Opcode);
break;
}
case EX_EndStructConst:
{
Ar.Logf(TEXT("%s $%X: EX_EndStructConst"), *Indents, (int32)Opcode);
break;
}
case EX_EndArray:
{
Ar.Logf(TEXT("%s $%X: EX_EndArray"), *Indents, (int32)Opcode);
break;
}
case EX_EndArrayConst:
{
Ar.Logf(TEXT("%s $%X: EX_EndArrayConst"), *Indents, (int32)Opcode);
break;
}
case EX_IntZero:
{
Ar.Logf(TEXT("%s $%X: EX_IntZero"), *Indents, (int32)Opcode);
break;
}
case EX_IntOne:
{
Ar.Logf(TEXT("%s $%X: EX_IntOne"), *Indents, (int32)Opcode);
break;
}
case EX_True:
{
Ar.Logf(TEXT("%s $%X: EX_True"), *Indents, (int32)Opcode);
break;
}
case EX_False:
{
Ar.Logf(TEXT("%s $%X: EX_False"), *Indents, (int32)Opcode);
break;
}
case EX_NoObject:
{
Ar.Logf(TEXT("%s $%X: EX_NoObject"), *Indents, (int32)Opcode);
break;
}
case EX_NoInterface:
{
Ar.Logf(TEXT("%s $%X: EX_NoObject"), *Indents, (int32)Opcode);
break;
}
case EX_Self:
{
Ar.Logf(TEXT("%s $%X: EX_Self"), *Indents, (int32)Opcode);
break;
}
case EX_EndParmValue:
{
Ar.Logf(TEXT("%s $%X: EX_EndParmValue"), *Indents, (int32)Opcode);
break;
}
case EX_Return:
{
Ar.Logf(TEXT("%s $%X: Return expression"), *Indents, (int32)Opcode);
SerializeExpr( ScriptIndex ); // Return expression.
break;
}
case EX_CallMath:
{
UStruct* StackNode = ReadPointer<UStruct>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Call Math (stack node %s::%s)"), *Indents, (int32)Opcode, *GetNameSafe(StackNode ? StackNode->GetOuter() : nullptr), *GetNameSafe(StackNode));
while (SerializeExpr(ScriptIndex) != EX_EndFunctionParms)
{
// Params
}
break;
}
case EX_FinalFunction:
{
UStruct* StackNode = ReadPointer<UStruct>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Final Function (stack node %s::%s)"), *Indents, (int32)Opcode, StackNode ? *StackNode->GetOuter()->GetName() : TEXT("(null)"), StackNode ? *StackNode->GetName() : TEXT("(null)"));
while (SerializeExpr( ScriptIndex ) != EX_EndFunctionParms)
{
// Params
}
break;
}
case EX_CallMulticastDelegate:
{
UStruct* StackNode = ReadPointer<UStruct>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: CallMulticastDelegate (signature %s::%s) delegate:"), *Indents, (int32)Opcode, StackNode ? *StackNode->GetOuter()->GetName() : TEXT("(null)"), StackNode ? *StackNode->GetName() : TEXT("(null)"));
SerializeExpr( ScriptIndex );
Ar.Logf(TEXT("Params:"));
while (SerializeExpr( ScriptIndex ) != EX_EndFunctionParms)
{
// Params
}
break;
}
case EX_VirtualFunction:
{
FString FunctionName = ReadName(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Virtual Function named %s"), *Indents, (int32)Opcode, *FunctionName);
while (SerializeExpr(ScriptIndex) != EX_EndFunctionParms)
{
}
break;
}
case EX_ClassContext:
case EX_Context:
case EX_Context_FailSilent:
{
Ar.Logf(TEXT("%s $%X: %s"), *Indents, (int32)Opcode, Opcode == EX_ClassContext ? TEXT("Class Context") : TEXT("Context"));
AddIndent();
// Object expression.
Ar.Logf(TEXT("%s ObjectExpression:"), *Indents);
SerializeExpr( ScriptIndex );
if (Opcode == EX_Context_FailSilent)
{
Ar.Logf(TEXT(" Can fail silently on access none "));
}
// Code offset for NULL expressions.
CodeSkipSizeType SkipCount = ReadSkipCount(ScriptIndex);
Ar.Logf(TEXT("%s Skip 0x%X bytes to offset 0x%X"), *Indents, SkipCount, ScriptIndex + sizeof(FField*) + SkipCount);
// Property corresponding to the r-value data, in case the l-value needs to be mem-zero'd
FField* Field = ReadPointer<FField>(ScriptIndex);
Ar.Logf(TEXT("%s R-Value Property: %s"), *Indents, Field ? *Field->GetName() : TEXT("(null)"));
// Context expression.
Ar.Logf(TEXT("%s ContextExpression:"), *Indents);
SerializeExpr( ScriptIndex );
DropIndent();
break;
}
case EX_IntConst:
{
int32 ConstValue = ReadINT(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal int32 %d"), *Indents, (int32)Opcode, ConstValue);
break;
}
case EX_Int64Const:
{
int64 ConstValue = ReadQWORD(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal int64 0x%" INT64_X_FMT), *Indents, (int32)Opcode, ConstValue);
break;
}
case EX_UInt64Const:
{
uint64 ConstValue = ReadQWORD(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal uint64 0x%" UINT64_X_FMT), *Indents, (int32)Opcode, ConstValue);
break;
}
case EX_SkipOffsetConst:
{
CodeSkipSizeType ConstValue = ReadSkipCount(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal CodeSkipSizeType 0x%X"), *Indents, (int32)Opcode, ConstValue);
break;
}
case EX_FloatConst:
{
float ConstValue = ReadFLOAT(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal float %f"), *Indents, (int32)Opcode, ConstValue);
break;
}
case EX_DoubleConst:
{
double ConstValue = ReadDOUBLE(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal double %lf"), *Indents, (int32)Opcode, ConstValue);
break;
}
case EX_StringConst:
{
FString ConstValue = ReadString8(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal ansi string \"%s\""), *Indents, (int32)Opcode, *ConstValue);
break;
}
case EX_UnicodeStringConst:
{
FString ConstValue = ReadString16(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal unicode string \"%s\""), *Indents, (int32)Opcode, *ConstValue);
break;
}
case EX_TextConst:
{
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2888098 on 3/1/2016 by Nick.Darnell Adding back the SetWidgetToFocusOnActivate call and deprecating it. Will need to also do this in 4.11. #lockdown Nick.Penwarden Change 2851669 on 2016/02/01 by Alexis.Matte #jira UE-25928 Skeletal mesh import now support _skinXX that are not sequential. Static mesh was already supporting non sequential _skinxx ordering #codereview nick.darnell Change 2851672 on 2016/02/01 by Alexis.Matte #jira UE-25971 The proxy camera mesh is now properly reset to zero #codereview nick.darnell Change 2851675 on 2016/02/01 by Alexis.Matte #jira UE-25525 Update the tooltips #codereview nick.darnell Change 2851764 on 2016/02/01 by Alexis.Matte #jira UE-25595 The fbx plus and minus icons are now brighter #codereview nick.darnell Change 2852116 on 2016/02/01 by Bob.Tellez #UE4 Submitting pull request 2013 from GitHub (Pull request 2013). Thanks for the fix hoelzl! Fix file selection when reimporting curve from moved CSV file When reimporting a data curve after moving the CSV file from which it was generated, the file selection dialog does not present an option to select CVS files. This patch fixes the issue by assigning the correct 'SupportedClass' value for `UReimportCurveFactory` instances. #codereview Nick.Darnell #JIRA UE-26247 #2013 Change 2852375 on 2016/02/02 by Richard.TalbotWatkin Spline component improvements: added facility to not restore component instance cache after the construction script has run, so the points can act as inputs to the construction script. Created a new property bInputSplinePointsToConstructionScript for that. Added SetUpVectorAtSplinePoint, and corrected some bugs. #jira UE-24931 - Set Location at Spline Point doesn't do anything Change 2852726 on 2016/02/02 by Richard.TalbotWatkin Fixed FPropertyChangedEvent::GetArrayIndex when called from PostEditChangeProperty. #jira UE-25316 - PropertyChangedEvent.GetArrayIndex broken #codereview Robert.Manuszewski Change 2853152 on 2016/02/02 by Jamie.Dale Fixed multi-line editable texts not updating their font when changed in UMG Also made all the SetStyle functions use the default if they're passed null (to match SEditableTextBox), and tidied up some of the property panel layout when editing styles. #codereview Chris.Wood Change 2853220 on 2016/02/02 by Alexis.Matte #jira UE-26303 We now apply the scene option transform to the vertex of meshes instead of the root node of the scene. This allow re-alignment of the mesh to go with animation. #codereview nick.darnell Change 2853282 on 2016/02/02 by Alexis.Matte Back out changelist 2853220 Change 2854211 on 2016/02/03 by Nick.Darnell Widget Reflector - Limit the minimum scale that can be applied to something more reasonable 50%, instead of 10%. Change 2854216 on 2016/02/03 by Nick.Darnell Scene Viewport - The scene viewport handles application scale better now, allowing click locations to be interepreted correctly and transformed into pixel hit location, rather than local space widget location, which may not match. Change 2854220 on 2016/02/03 by Nick.Darnell Slate - Allowing mousewheel or gesture to be routed directly for a widget path like has been done for other mouse events, this permits more kinds of mouse like actions in a VR environment onto widgets in the scene. (not actually hooked up to do it, but this now permits it at the slate level to be done correctly). Change 2854449 on 2016/02/03 by Alexis.Matte -Fix the fbx import options, for the scene transform value that was not apply correctly -Add an inspector on the scene import option in the reimport dialog Change 2855659 on 2016/02/04 by Alexis.Matte -Fix the bake pivot when there is a hierarchy, we now accumulate the pivot effect in the hierarchy to place the object at the correct place. #codereview nick.darnell Change 2855922 on 2016/02/04 by Alexis.Matte #jira UE-26303 The animation is now align with the imported skeletal mesh, the bakepivot is also supported #codereview nick.darnell Change 2856989 on 2016/02/05 by Jamie.Dale Some improvements to the source code loc gatherer * We now strip any comments out of any pre-processor tokens before we start handling them. * Fixed a case where "#if defined" and "#elif defined" would parse incorrectly. * Fixed a case where "#define LOCTEXT_NAMESPACE" and "#define LOC_DEFINE_REGION" may not be paired correctly with their corresponding "#undef". [CL 2888106 by Nick Darnell in Main branch]
2016-03-01 15:17:24 -05:00
// What kind of text are we dealing with?
const EBlueprintTextLiteralType TextLiteralType = (EBlueprintTextLiteralType)Script[ScriptIndex++];
switch (TextLiteralType)
{
case EBlueprintTextLiteralType::Empty:
{
Ar.Logf(TEXT("%s $%X: literal text - empty"), *Indents, (int32)Opcode);
}
break;
case EBlueprintTextLiteralType::LocalizedText:
{
const FString SourceString = ReadString(ScriptIndex);
const FString KeyString = ReadString(ScriptIndex);
const FString Namespace = ReadString(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal text - localized text { namespace: \"%s\", key: \"%s\", source: \"%s\" }"), *Indents, (int32)Opcode, *Namespace, *KeyString, *SourceString);
}
break;
case EBlueprintTextLiteralType::InvariantText:
{
const FString SourceString = ReadString(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal text - invariant text: \"%s\""), *Indents, (int32)Opcode, *SourceString);
}
break;
case EBlueprintTextLiteralType::LiteralString:
{
const FString SourceString = ReadString(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal text - literal string: \"%s\""), *Indents, (int32)Opcode, *SourceString);
}
break;
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3279756) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3229490 on 2016/12/09 by Cody.Albert Integrated fix to support named changelists in SVN Change 3229574 on 2016/12/09 by Simon.Tourangeau Fix actor mobility getting changed on scene reimport #jira UE-39102 Change 3229692 on 2016/12/09 by Cody.Albert Fixing an XML Parser assert when parsing a root tag that completes on the same line. #jira UE-30393 Change 3230582 on 2016/12/12 by Matt.Kuhlenschmidt PR #3024: Correct the outdated error message instructions for how to fix being unable to launch on an iOS device. (Contributed by CleanCut) Change 3231470 on 2016/12/12 by Matt.Kuhlenschmidt Eliminate editor sounds that play when you PIE, simulate or possess the player. They get in the way of game sounds, are annoying to hear when you are constantly starting and stopping pie, and flush async loading that the game might be doing when they load. Change 3231475 on 2016/12/12 by Alex.Delesky #jira UE-39023 - Using the High Resolution screenshot tool with the "custom depth as mask" option checked should no longer crash the editor or a PIE viewport when the screen percentage is not set to 100. Change 3231476 on 2016/12/12 by Alex.Delesky #jira UE-39380 - Thumbnails for static meshes in the foliage paint mode window should now update to show the correct mesh if the thumbnail pool has been exhausted. This also increases the number of foliage thumbnals that can exist onscreen at once. Change 3231477 on 2016/12/12 by Alex.Delesky #jira none - Extending the IPluginWizardDefinition interface to allow it to return the descriptor type of the plugin. This fixes a merge conflict from Odin where the new plugin wizard was modified to allow for multiple template selection. Change 3231479 on 2016/12/12 by Alex.Delesky #jira UE-39376 - Changing the number of players or changing the dedicated server options in PIE settings should now always persist on editor shutdown. Change 3231480 on 2016/12/12 by Alex.Delesky #jira UE-39417 - A texture will now match to update a dropped in file if the source path differs from that of the dropped in file Change 3231508 on 2016/12/12 by Alex.Delesky Removing todo comment #jira none Change 3231603 on 2016/12/12 by Matt.Kuhlenschmidt Exposed a 0-1 UV set and the scaled pixel size for Box and Border brushes Also added a material function that exposes all of the current UV sets with nice names instead of indexed coordinates Change 3231618 on 2016/12/12 by Alex.Delesky #jira UE-38732 - When editing a spin box with a delta value, committing the value with the Enter key and then clearing the focus from the spin box will no longer change the internal value to match the snapped value. Change 3231638 on 2016/12/12 by Matt.Kuhlenschmidt Add RF_Transactional to the list of default flags for creating or importing new assets. All should be transactional by default Change 3231642 on 2016/12/12 by Matt.Kuhlenschmidt Brighten up the output log by default Change 3231648 on 2016/12/12 by Alex.Delesky #jira UE-38033 - Selecting a Named Slot that's part of a widget in a Widget Switcher will now show that widget instead of the widget at index 0. This also applies to any content set inside the named slot. Change 3231666 on 2016/12/12 by Alex.Delesky #jira UE-38952 - Widgets that have been copied and pasted into the same hierarchy will now retain the same name in the hierarchy. This does not fix widgets that have been previously copied and pasted from other widgets, nor copies of those widgets. Change 3231674 on 2016/12/12 by Alex.Delesky #jira UE-37106 - When using or simulating touch for Widget Components, the hover/clicked state will now be accurately determined rather than showing hover on initial touch. Change 3231745 on 2016/12/12 by Alex.Delesky Back out changelist 3231477 to fix build error C2259 Change 3232417 on 2016/12/13 by Simon.Tourangeau Add the following attributes to the Editor.Usage.FBX.Import EngineAnalytics event - FBX Version - Filename Hash - Import Type #jira UE-37453 Change 3232477 on 2016/12/13 by Michael.Dupuis #jira UE-39675 : There was an issue when the Neutral Value == the Min or Max value, so we simply prevent using the concept of neutral value if min or max == neutral as it mean you only want a log on one side. Change 3232571 on 2016/12/13 by Alex.Delesky Back out changelist 3231745 #jira none - Extending the IPluginWizardDefinition interface to allow it to return the descriptor type of the plugin. This fixes a merge conflict from Odin where the new plugin wizard was modified to allow for multiple template selection. Change 3232675 on 2016/12/13 by Alexis.Matte Fix a crash when reordering material with a fbx containing unused materials, add a fbx automation test to prevent similar issue. #jira UE-39692 Change 3232975 on 2016/12/13 by Alex.Delesky Fix to build error C2259 for the IPluginWizardDefinition API change. Change 3233146 on 2016/12/13 by Michael.Dupuis #jira UE-38766 : Added eye dropper to select flatten height Fixed a rounding errors resulting in not flattening to the specified height Fixed a rounding error resulting in LandscapeDataAccess::GetTexHeight not always returning the appropriate value Change 3233153 on 2016/12/13 by Alexis.Matte We cannot anymore change the instance override materials array topology, the topology is limited by the mesh materials array #jira UE-38827 Change 3234406 on 2016/12/14 by Matt.Kuhlenschmidt Fix window handle and device context being accessed by scene viewports after the underlying window has been destroyed by the OS. This is an invalid state on linux and using some vr devices. #jira UE-7388 Change 3234485 on 2016/12/14 by Michael.Dupuis tentative build fix for Mac Change 3234495 on 2016/12/14 by Matt.Kuhlenschmidt Made a setting to control if PIE enter and exit sounds are played. Off by default Change 3236709 on 2016/12/15 by Simon.Tourangeau Fix camera export rotation offset #jira UE-34692 #jira UE-39740 Change 3236782 on 2016/12/15 by Jamie.Dale Fixed EmitTermExpr failing to use the correct package ID FBPTerminal::Source used to be set to the pin, however when pins were moved away from being UObjects, FBPTerminal::SourcePin was added and FBPTerminal::Source is typically null. Change 3236853 on 2016/12/15 by Alexis.Matte Fix the serialization of the staticmesh property FMeshSectionInfoMap Change 3236890 on 2016/12/15 by Matt.Kuhlenschmidt Remove old define Change 3239328 on 2016/12/18 by Richard.TalbotWatkin Fixed Focus Viewport action in Static Mesh Viewport. Problem was that the conversion to Orbit Camera for storing the camera position was trashing the desired position during cvamera transitions. Orbit camera position is now only stored at the end of a transition. #jira UE-39825 - Key "F" for Focus acts Sporadically in the Static Mesh Editor Viewport Change 3239660 on 2016/12/19 by Alex.Delesky #jira UE-38968, UE-36826 - Components attached to actors can now be directly scaled to negative values using the transform gizmo for that component. Change 3239662 on 2016/12/19 by Alex.Delesky #jira UE-39007 - The data table row editor now contains a Reset to Default control. Change 3239663 on 2016/12/19 by Alex.Delesky #jira UE-39698 - Importing CSV files will now show the name of the file in the import dialog. Change 3240696 on 2016/12/20 by Michael.Dupuis #jira UETOOL-1009: Added paddiing to columns view Added auto resize of column when double clicking on splitter handle in the header Remove right number alignment after discussion with Matt K. Change 3240758 on 2016/12/20 by Michael.Dupuis added missing non abstract implementation Change 3240782 on 2016/12/20 by Michael.Dupuis Added missing documentation for content browser column auto resizing Change 3240817 on 2016/12/20 by Alex.Delesky #jira UE-38940 - Copying a Material-Custom node with a tab character should now correctly render the tab. Change 3240834 on 2016/12/20 by Michael.Dupuis tentative fix for build error Change 3240984 on 2016/12/20 by Michael.Dupuis Removed unnecessary functions Change 3241174 on 2016/12/20 by Matt.Kuhlenschmidt Fix compile errors Change 3241966 on 2016/12/21 by Chris.Wood Fixed Typo and changed execution order in "ComboBoxString" Component [UE-38994] - GitHub 2971 : Fixed Typo and changed execution order in "ComboBoxString" Component PR #2971: Fixed Typo and changed execution order in "ComboBoxString" Component (Contributed by eXifreXi) #github https://github.com/EpicGames/UnrealEngine/pull/2971 Change 3242126 on 2016/12/21 by Alexis.Matte Back out changelist 3236853 We have to back out this change list because the change was implement in the 4.15 release branch and the EditorObjectVersion.h change is now implement in the ReleaseObjectVersion.h. Change 3244492 on 2017/01/02 by Jamie.Dale Improved error message Change 3244545 on 2017/01/02 by Nick.Darnell Navigation - Making it so we don't attempt to load HotReload during shutdown, we only access it if it's still loaded. Change 3244549 on 2017/01/02 by Nick.Darnell Slate - Implementing custom hardware cursor loading across Windows, Mac and Linux and supports loading cursors from PAK files. All platforms support loading PNGs through the FHardwareCursor interface. Some platforms support additional formats, for multiresolution support, but there's a naming convention that can be used on PNGs for the same capability. All of it is documented in the FHardwareCursor header. The platform layer for ICursor, now has support for replacing cursor shapes as an override, and can be reset safely. The FHardwareCursor supports loading cursors from raw pixel buffers as well, the plan is to allow for the option to UTextures to also be used for hardware cursors. Now users through C++ can load and replace the hardware cursors with custom ones of their own, e.g. FSlateApplication::Get().RegisterCursor(EMouseCursor::Default, MakeShareable(new FHardwareCursor(FPaths::GameContentDir() / "Slate/FancyPointer", FIntPoint(0,0)))); The next step is to expose a game friendly layer that supports caching cursors, and letting users change them out by name, without a bunch of destruction of OS resources. Change 3244845 on 2017/01/03 by Jamie.Dale Fixing typo #jira UE-39920 Change 3244903 on 2017/01/03 by Jamie.Dale PR #3044: fix link error when FAssetData::PrintAssetData() is used in project (Contributed by kayama-shift) Change 3245125 on 2017/01/03 by Alexis.Matte Put back the dev-editor version because there was some data create before we back it out Change 3246106 on 2017/01/04 by Chris.Wood Removed broken CrashReportReciever pre-upload phase from CrashReportClient. [UE-40153] - CrashReportClient fails when used in legacy mode with a CrashReportReciever Change 3246251 on 2017/01/04 by Alex.Delesky #jira UE-39869 - Moving an asset before saving it and then hitting Save All from the file menu will no longer save the asset in its original location. Change 3246252 on 2017/01/04 by Alex.Delesky #jira UE-39793 - Fixes an issue with the AutoReimporter where specifying a non-existent mount point (a directory in the content browser) would cause a crash when attempting to auto-import an asset from a monitored directory, as well as ensuring that valid mount points will be able to create new assets from auto-import. The "Map Directory To" field when setting directories to monitor for auto-reimport has also been changed to use the content browser path picker instead of relying on the user to manually enter a mount point. Change 3247620 on 2017/01/05 by Nick.Darnell Automation - Removing an adjustment to the number of shots we take for high res shots. Change 3247621 on 2017/01/05 by Nick.Darnell Automation - Adding a few more rendering tests to the cornell box. Change 3247629 on 2017/01/05 by Nick.Darnell Automation - Improving the comparison row display for screenshots so it's obvious what each image represents. Change 3248811 on 2017/01/05 by Matt.Kuhlenschmidt PR #3091: Removed unnecessary UPackage casts (Contributed by projectgheist) Change 3248860 on 2017/01/06 by Matt.Kuhlenschmidt Made the plugin browser select the "built in" category by default instead of the 2D category. There is no reason for a sub-category to be selected first as it makes searching for plugins globally an extra click because you have to click on the base category first Change 3249264 on 2017/01/06 by Matt.Kuhlenschmidt Fixed automation test warnings #jira UE-40198 Change 3249481 on 2017/01/06 by Michael.Dupuis #jira UE-37875 : Fill empty layers of components on assignation or creation Also fill new component added with the tool from neighbours predominance Change 3249505 on 2017/01/06 by Matt.Kuhlenschmidt PR #3093: Include guard cleanup (Contributed by projectgheist) Change 3249544 on 2017/01/06 by Michael.Dupuis #jira UE-40299: validate if UISettings is valid Change 3250738 on 2017/01/09 by Nick.Darnell UMG - The WIC now checks if the Widget is enabled before it claims that it's over an interactable or keyboard focusable widget. #jira UE-39845 Change 3250865 on 2017/01/09 by Nick.Darnell Slate - Updating EAutoCenter and ESizingRule to use the newer enum class style enums. Change 3250867 on 2017/01/09 by Nick.Darnell Slate - Adding more logging to the hardware cursor code so that it reports more information when it doesn't find an exact match when it comes to cursor size. Change 3250936 on 2017/01/09 by Nick.Darnell Automation - Refactoring the screenshot comparison tool to no longer require one one generated report. Doing screenshot comparions now generates individual reports for each failed comparison so that they can be evaluated in bits, and as changes occur as the user reviews aspects, we can remove the reports. There is now async image loading for the comparison view so that it doesn't hitch. Change 3250937 on 2017/01/09 by Nick.Darnell Automation - Adding another example to the CornellBox test. Change 3250958 on 2017/01/09 by Nick.Darnell Slate - Fixing some other cases where people were referring to ESizingRule::Type. Change 3251162 on 2017/01/09 by Nick.Darnell Slate - Fixing some other cases where people were referring to ESizingRule::Type. Change 3251254 on 2017/01/09 by Matt.Kuhlenschmidt Attempt to fix static analysis warnings Change 3251373 on 2017/01/09 by Nick.Darnell Core - Now writing a log warning instead of ensuring if calling LoadModule wouldn't have been safe to do here, depending on load order. Change 3251525 on 2017/01/09 by Nick.Darnell Automation - Fixing a build issue in ImageComparer. Change 3252321 on 2017/01/10 by Alex.Delesky #jira UE-40164 - Importing multiple files to overwrite existing assets such as sounds will now correctly persist the "Yes to All" / "No to All" dialog selections. Change 3252354 on 2017/01/10 by Nick.Darnell Image Compare - Fixing a potential threading hazard in the image comparer. Change 3252356 on 2017/01/10 by Nick.Darnell Automation - The screenshot metadata now captures the commit/CL that the screenshot was taken at and records it in the metadata. Change 3252601 on 2017/01/10 by Alexis.Matte Fbx automation test, reload feature implementation Change 3252761 on 2017/01/10 by Jamie.Dale Fixing some IWYU errors with PCH disabled Change 3252765 on 2017/01/10 by Jamie.Dale Fixing some static analysis warnings Change 3252793 on 2017/01/10 by Jamie.Dale Fixing FText natvis The text data visualizers have to be defined before the text visualizer Change 3253987 on 2017/01/11 by Matt.Kuhlenschmidt PR #3108: Git Plugin: use asynchronous "MarkForAdd" and "CheckIn" operations for the initial commit (Contributed by SRombauts) Change 3254378 on 2017/01/11 by Matt.Kuhlenschmidt Refactor scene importing to allow for plugins to make scene importers Change 3254679 on 2017/01/11 by Matt.Kuhlenschmidt Fix calling LoadModule in perforce source control off the main thread Change 3256472 on 2017/01/12 by Jamie.Dale Improved error reporting from IncludeTool - The error reporting was using zero-based line indices which was misleading. - The error reporting now includes the offending line to remove ambiguity. Change 3256725 on 2017/01/13 by Jamie.Dale IncludeTool can now parse typedef in Fwd headers Change 3256758 on 2017/01/13 by Jamie.Dale Added support for String Tables String Tables provide a way to centralize your localized text into one (or several) known locations, and then reference the entries within a string table from other assets or code in a robust way that allows for easy re-use of localized text. String Tables can be defined in C++ (using the LOCTABLE family of macros), loaded via CSV file, or created as an asset. They can be referenced in C++ using either the LOCTABLE macro, or the static FText::FromStringTable function. INI files can reference them using the LOCTABLE macro syntax, and FText properties in assets can reference them via the advanced settings combo. Change 3257018 on 2017/01/13 by Alexis.Matte FbxAutomationTest fix the import reload operation, it was calling garbagecollect with no keep flag Change 3257168 on 2017/01/13 by Jamie.Dale Removed code that was writing null into bytecode during save Change 3257344 on 2017/01/13 by Jamie.Dale Backing out changelist 3256725, and excluding my header from the scan instead Change 3257426 on 2017/01/13 by Nick.Darnell Slate - Adding the ability to invert alpha when drawing slate textures. Going to be used in the future for rendering render targets for the scene which have inverted alpha. Change 3257572 on 2017/01/13 by Nick.Darnell Slate - Fixing a build error. Change 3257970 on 2017/01/14 by Jamie.Dale Fixing exclude path Change 3258458 on 2017/01/16 by Matt.Kuhlenschmidt PR #3135: GameViewportClient: FOnCloseRequested is now a multicast delegate (Contributed by Nadrin) Change 3258472 on 2017/01/16 by Matt.Kuhlenschmidt PR #3126: Fix to load editor style assets (Contributed by projectgheist) Change 3258473 on 2017/01/16 by Matt.Kuhlenschmidt PR #3124: Fix wrong result with Image-DrawAsBox with PaperSprite. (Contributed by valval88) Change 3258539 on 2017/01/16 by Nick.Darnell Slate - Pixel Snapping has been moved to the GPU for the RHI rendering policy. Additionally, widgets with a render transform of Scale, Rotation or Sheer, and their children are no longer pixel snapped, this should reduce some of jittering seen by users when animations are applied to widgets. NOTE: This only affects render transforms, any transform in layout space is still subject to pixel snapping. Change 3258607 on 2017/01/16 by Nick.Darnell Fixing the mac build. Change 3258661 on 2017/01/16 by Matt.Kuhlenschmidt Actors with experimental components no longer say "Uses experimental class: Actor" when selecting the actor root in the details panel #jira UE-40535 Change 3258678 on 2017/01/16 by Nick.Darnell Platform - Introducing a way to get the mimetype for a file on Windows. Other platforms don't yet have an implementation outside of returning application/unknown. Change 3258924 on 2017/01/16 by Nick.Darnell Platform - Implementing a fallback for the generic platform http, that can do some basic mimetype lookups. Change 3258929 on 2017/01/16 by Nick.Darnell UMG - Fixing the animation to finish the evaluation before it notifies that the animation completed. Change 3259109 on 2017/01/16 by Nick.Darnell Platform - The GetMimeType function now only takes in FilePath, since some platforms will require that actually resolve to a file on disk in order to determine the true mimetype. Change 3259111 on 2017/01/16 by Alexis.Matte Avoid to move the camera when we re-import in the static mesh editor #jira UE-40613 Change 3259275 on 2017/01/16 by Matt.Kuhlenschmidt Fix crash when a slate window is resized and calls into a scene viewport during loading code when the scene viewport is not in a slate hierarchy and thus has no widget Change 3259300 on 2017/01/16 by Nick.Darnell UMG - Introducing PreConstruct and NativePreConstruct to the base UUserWidget. Users can now visualize non-binding based changes in the designer by evaluating a very limited amount of the blueprint code. In the event your user widget crashes on load, due to calling something unsafe, you can disable evaluation in the editor preferences under Widget Designer. Change 3259306 on 2017/01/16 by Nick.Darnell Games - Removing the Game Specific implementations of PreConstruct. Change 3260182 on 2017/01/17 by Matt.Kuhlenschmidt Fix static analysis Change 3261049 on 2017/01/17 by Nick.Darnell Slate - Putting in some fixes for the non-gpu pixel snapping mode, and disabling gpu snapping while we dig into why it looks weird. Change 3261434 on 2017/01/17 by Nick.Darnell Fixing the mac build. Change 3261435 on 2017/01/17 by Nick.Darnell Slate - Tweaking some aspects of the slate rounding code on the GPU. There's still some precision loss somewhere causing subtle differences in where the snap occurs, that's different from previously. Change 3261460 on 2017/01/17 by Nick.Darnell UMG - Tweaking the defintiions of NativePreConstruct, dropping passing in design time since that is readily available in native code. Change 3261833 on 2017/01/18 by Alexis.Matte Fix all warning for fbx automation tests #jira UE-40208 Change 3261874 on 2017/01/18 by Matt.Kuhlenschmidt PR #3136: Fix Submit to Source Control Window for Git plugin : use CanCheckIn() to filter out unmodified assets files (Contributed by SRombauts) Change 3262000 on 2017/01/18 by Jamie.Dale Updated Slate to allocate widgets using MakeShared This saves one allocation per-widget Change 3262003 on 2017/01/18 by Nick.Darnell UMG - Widget Interaction Components now ignore Visible(false) Widget Components when tracing. #jira UE-40523 Change 3262052 on 2017/01/18 by Alexis.Matte Put back the staticmesh skinxx workflow #jira UE-40782 Change 3262775 on 2017/01/18 by Nick.Darnell Slate - Ditching moving vertex rounding to the GPU, some precision issues could not be overcome. Ended up writing a clean way to implement it on the CPU. Change 3262818 on 2017/01/18 by Alex.Delesky #jira UE-40668 - Editor preferences will now save for data pin styles Change 3263679 on 2017/01/19 by Nick.Darnell Slate - Adding some comments to the Slate Vertex Rounder. Change 3265154 on 2017/01/19 by Nick.Darnell Slate/UMG - Putting in some more time into pixel snapping. I've re-introduced the old constructors, and decided to go with the templated approach, as to not break old code that relied on the FSlateVertex working a certain way. Change 3265478 on 2017/01/20 by Chris.Wood Added config support for hang detection time and switching hang detection on/off in UnrealWatchdog [UE-40838] - Make hang time configurable and increase default in UnrealWatchdog Change 3265600 on 2017/01/20 by Nick.Darnell Slate - Making some const local variables const. Change 3265714 on 2017/01/20 by Alex.Delesky #jira UE-40791 - The ForceFeedback thumbnail's Play and Stop icons will now render correctly, and will only be visible while an effect is playing or when the cursor hovers over the icon. Change 3265865 on 2017/01/20 by Alex.Delesky #jira UE-40511 - The Content Browser file path will now update when inside a folder that is deleted from the Sources Panel. Change 3267989 on 2017/01/23 by Jamie.Dale Exposed String Tables to Blueprints Change 3268018 on 2017/01/23 by Jamie.Dale Small API clean-up for string tables Change 3268455 on 2017/01/23 by Matt.Kuhlenschmidt Fix SaveAs (Which says SaveCurrentAs) not saving the current level and only saving the persistent level and then reloading everything thus causing work to be lost if editing a sub-level #jira UE-40930 Change 3269388 on 2017/01/24 by Chris.Wood Refactored tick timing in UnrealWatchdog to stop bug where it doesn't close. [UE-40839] - UnrealWatchdog running and blocking use of Unreal Game Sync for internal users Standalone tool code only - doesn't touch engine Change 3270205 on 2017/01/24 by Cody.Albert Updated FUnrealEdMisc::OnMessageTokenActivated to properly traverse up the outer hierarchy of an object. Change 3270231 on 2017/01/24 by Cody.Albert Renamed and exposed GetFullScreenAlignment and GetViewportAnchors for consistency with the setters Change 3271734 on 2017/01/25 by Michael.Dupuis #jira UE-38631 Add sorting for landscape target layer, user can now sort alphabetical, material based or custom Added a new vertical box SDragNDropVerticalBox to handle drag & drop of FSlot Fixed SDropTarget to only consider the drop action if it was started by it Added visibility toggle to only show used layers in the currently loaded data Change 3271797 on 2017/01/25 by Jamie.Dale Renamed HasBeenAlreadyMadeSharable to DoesSharedInstanceExist as the old name was nonsense Change 3271813 on 2017/01/25 by Jamie.Dale Fixed bad access of a shared this during widget destruction when a context menu was open Change 3271988 on 2017/01/25 by Nick.Darnell Slate - Removing some old checkbox deprecated code from the 4.3 and 4.6 days. Change 3271992 on 2017/01/25 by Nick.Darnell Blueprints - Making the checked call better to log out more information when dragging and dropping a missing property. Change 3272134 on 2017/01/25 by Jamie.Dale Updated the GatherText commandlet to no longer hold a ConfigFile pointer while it runs This pointer is internal to GConfig, and may be updated (or invalidated) when other config files are loaded (as can happen via game code while gathering text). Change 3272301 on 2017/01/25 by Nick.Darnell Slate - More cleanup from the removal of a old legacy enum that people were still using. Change 3273070 on 2017/01/26 by Chris.Wood Fix CIS errors in landscape code from CL 3271734 Change 3273123 on 2017/01/26 by Chris.Wood Fix crash during init of CRC when running packaged without access to main engine config hierarchy. Change 3273194 on 2017/01/26 by Nick.Darnell Fixing some build warnings. Change 3273242 on 2017/01/26 by Michael.Dupuis #jira UE-39948 : if we detect there is multiple levels in the current persistent when we add a new foliage asset we ask to save the foliage as an asset to permit paiting over multiple levels Change 3273279 on 2017/01/26 by Jamie.Dale String Table INI redirects are now in the "Core.StringTable" section (rather than "/Script/Engine.Engine") Change 3273483 on 2017/01/26 by Alex.Delesky #jira UE-32047 - Made changes to the FixupRedirects commandlet to ensure that files that are marked for delete are moved from the default changelist to the pending changelist and submitted when using Perforce. Also makes a slight change to the ResavePackages commandlet to submit files marked for delete. Change 3273568 on 2017/01/26 by Alex.Delesky Modifying changes made to SPluginWizard to have the plugin loading phase determined by the wizard's definition rather than from the first selected template. #jira none Change 3273855 on 2017/01/26 by Alex.Delesky #jira UE-41117 - Updating the tooltip on the "Allow Paint of all LODs" option for mesh paint mode. Change 3274200 on 2017/01/26 by Alex.Delesky For IPluginWizardDefinition, temporarily adding function bodies to two methods instead of having them be pure virtual methods. Change 3274317 on 2017/01/26 by Jamie.Dale Deleting a seemingly corrupted asset that was accidentially submitted Change 3275072 on 2017/01/27 by Michael.Dupuis #jira UE-38631 tweaks Fix typo error Iterate all components, not only active one Force expand the Target Layers widget Change 3275249 on 2017/01/27 by Alexis.Matte Color grading controls: Keep the vector ratio when changing the master slider #jira UETOOL-1098 Change 3275282 on 2017/01/27 by Alexis.Matte Color grading controls: Cosmetic changes #jira UETOOL-1099 Change 3275292 on 2017/01/27 by Alexis.Matte Make sure the build is called once when we import a staticmesh. #jira UE-40947 Change 3275430 on 2017/01/27 by Alexis.Matte Add some fbx automation tests - Import a mesh with no material - Import corrupted asset with no section in a LOD - Import morph targets - Materials name clash - Max Multimap material ordering Change 3275683 on 2017/01/27 by Michael.Dupuis #jira UE-41215 : when saving an asset do not register the transaction, and make sure that the duplicate wont keep a copy in the transaction buffer as an asset can't be undo Change 3276237 on 2017/01/27 by Jamie.Dale Deleting a seemingly corrupted asset that was accidentially submitted Change 3276266 on 2017/01/27 by Jamie.Dale Fix for accessing a potentially null pointer Change 3277065 on 2017/01/30 by Chris.Wood Move crash report temp files to saved config and cleanup on schedule. [UE-39506] - CrashReportClient ini folders are not cleaned when opening the editor Change 3277236 on 2017/01/30 by Matt.Kuhlenschmidt Fix crash when cancelling SaveCurrentLevelAs #jira UE-41182 Change 3277409 on 2017/01/30 by Jamie.Dale Improved text rendering when the last resort font is missing The last resort font is no longer included in shipping builds, so this change makes some improvements to text rendering when it's missing. - The legacy font cache no longer tries to use the last resort font if it's not available (preventing warnings). - The Slate font renderer no longer tries to use the last resort font if it's not available. - Text shaping will use the last resort character if none of the available fonts can render a given character (likely because the last resort font is missing). - HarfBuzz shaped text now uses the fallback character correctly. Change 3277749 on 2017/01/30 by Nick.Darnell Slate - Moving ESlateDrawEffect & ESlateBatchDrawFlag over to be enum class, found cases where users were improperly assuming the enum order, and so now it won't be possible to just treat an int32 or a bool as the draw effect value. Core - Adding EnumHasAllFlags and EnumHasAnyFlags, templated functions to make it easier to check for the existance of a flag on enum classes. Change 3277805 on 2017/01/30 by Nick.Darnell Rendering - Changing some LoadModuleChecked calls to GetModuleChecked, as these calls are not happening on the main thread and are not safe to make. Change 3277914 on 2017/01/30 by Matt.Kuhlenschmidt Fix Niagara slate style warning on startup Change 3278058 on 2017/01/30 by Matt.Kuhlenschmidt Fixed compile error Change 3278132 on 2017/01/30 by Nick.Darnell Fixed compile error Change 3278133 on 2017/01/30 by Matt.Kuhlenschmidt Fixed compile errors Change 3278186 on 2017/01/30 by Nick.Darnell Fixed compile error Change 3278525 on 2017/01/30 by Nick.Darnell Fixed compile error Change 3278534 on 2017/01/30 by Nick.Darnell Automation - Clearing up several warnings/errors with automation results, trying to get Automation Tests to at least yellow before integration. Change 3278941 on 2017/01/31 by Nick.Darnell Fixing a build warning due to build team refactor. Change 3278949 on 2017/01/31 by Nick.Darnell Fixing incrmenetal build issues. Change 3278953 on 2017/01/31 by Nick.Darnell Fixing some incrmental linux build issues. Change 3278964 on 2017/01/31 by Nick.Darnell FIxing more incremental build issues. Change 3279256 on 2017/01/31 by Michael.Dupuis #jira UE-41319 #jira UE-41315 #jira UE-41316 Instead of getting the Landscape Actor, call GetLandscapeProxy so all case are handled, either proxy or landscape actor Change 3279270 on 2017/01/31 by Chad.Garyet re-updating the automation test pool [CL 3279775 by Matt Kuhlenschmidt in Main branch]
2017-01-31 15:22:49 -05:00
case EBlueprintTextLiteralType::StringTableEntry:
{
ReadPointer<UObject>(ScriptIndex); // String Table asset (if any)
const FString TableIdString = ReadString(ScriptIndex);
const FString KeyString = ReadString(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal text - string table entry { tableid: \"%s\", key: \"%s\" }"), *Indents, (int32)Opcode, *TableIdString, *KeyString);
}
break;
Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2888098 on 3/1/2016 by Nick.Darnell Adding back the SetWidgetToFocusOnActivate call and deprecating it. Will need to also do this in 4.11. #lockdown Nick.Penwarden Change 2851669 on 2016/02/01 by Alexis.Matte #jira UE-25928 Skeletal mesh import now support _skinXX that are not sequential. Static mesh was already supporting non sequential _skinxx ordering #codereview nick.darnell Change 2851672 on 2016/02/01 by Alexis.Matte #jira UE-25971 The proxy camera mesh is now properly reset to zero #codereview nick.darnell Change 2851675 on 2016/02/01 by Alexis.Matte #jira UE-25525 Update the tooltips #codereview nick.darnell Change 2851764 on 2016/02/01 by Alexis.Matte #jira UE-25595 The fbx plus and minus icons are now brighter #codereview nick.darnell Change 2852116 on 2016/02/01 by Bob.Tellez #UE4 Submitting pull request 2013 from GitHub (Pull request 2013). Thanks for the fix hoelzl! Fix file selection when reimporting curve from moved CSV file When reimporting a data curve after moving the CSV file from which it was generated, the file selection dialog does not present an option to select CVS files. This patch fixes the issue by assigning the correct 'SupportedClass' value for `UReimportCurveFactory` instances. #codereview Nick.Darnell #JIRA UE-26247 #2013 Change 2852375 on 2016/02/02 by Richard.TalbotWatkin Spline component improvements: added facility to not restore component instance cache after the construction script has run, so the points can act as inputs to the construction script. Created a new property bInputSplinePointsToConstructionScript for that. Added SetUpVectorAtSplinePoint, and corrected some bugs. #jira UE-24931 - Set Location at Spline Point doesn't do anything Change 2852726 on 2016/02/02 by Richard.TalbotWatkin Fixed FPropertyChangedEvent::GetArrayIndex when called from PostEditChangeProperty. #jira UE-25316 - PropertyChangedEvent.GetArrayIndex broken #codereview Robert.Manuszewski Change 2853152 on 2016/02/02 by Jamie.Dale Fixed multi-line editable texts not updating their font when changed in UMG Also made all the SetStyle functions use the default if they're passed null (to match SEditableTextBox), and tidied up some of the property panel layout when editing styles. #codereview Chris.Wood Change 2853220 on 2016/02/02 by Alexis.Matte #jira UE-26303 We now apply the scene option transform to the vertex of meshes instead of the root node of the scene. This allow re-alignment of the mesh to go with animation. #codereview nick.darnell Change 2853282 on 2016/02/02 by Alexis.Matte Back out changelist 2853220 Change 2854211 on 2016/02/03 by Nick.Darnell Widget Reflector - Limit the minimum scale that can be applied to something more reasonable 50%, instead of 10%. Change 2854216 on 2016/02/03 by Nick.Darnell Scene Viewport - The scene viewport handles application scale better now, allowing click locations to be interepreted correctly and transformed into pixel hit location, rather than local space widget location, which may not match. Change 2854220 on 2016/02/03 by Nick.Darnell Slate - Allowing mousewheel or gesture to be routed directly for a widget path like has been done for other mouse events, this permits more kinds of mouse like actions in a VR environment onto widgets in the scene. (not actually hooked up to do it, but this now permits it at the slate level to be done correctly). Change 2854449 on 2016/02/03 by Alexis.Matte -Fix the fbx import options, for the scene transform value that was not apply correctly -Add an inspector on the scene import option in the reimport dialog Change 2855659 on 2016/02/04 by Alexis.Matte -Fix the bake pivot when there is a hierarchy, we now accumulate the pivot effect in the hierarchy to place the object at the correct place. #codereview nick.darnell Change 2855922 on 2016/02/04 by Alexis.Matte #jira UE-26303 The animation is now align with the imported skeletal mesh, the bakepivot is also supported #codereview nick.darnell Change 2856989 on 2016/02/05 by Jamie.Dale Some improvements to the source code loc gatherer * We now strip any comments out of any pre-processor tokens before we start handling them. * Fixed a case where "#if defined" and "#elif defined" would parse incorrectly. * Fixed a case where "#define LOCTEXT_NAMESPACE" and "#define LOC_DEFINE_REGION" may not be paired correctly with their corresponding "#undef". [CL 2888106 by Nick Darnell in Main branch]
2016-03-01 15:17:24 -05:00
default:
checkf(false, TEXT("Unknown EBlueprintTextLiteralType! Please update FKismetBytecodeDisassembler::ProcessCommon to handle this type of text."));
break;
}
break;
}
case EX_PropertyConst:
{
FProperty* Pointer = ReadPointer<FProperty>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: EX_PropertyConst (%p:%s)"), *Indents, (int32)Opcode, Pointer, Pointer ? *Pointer->GetName() : TEXT("(null)"));
break;
}
case EX_ObjectConst:
{
UObject* Pointer = ReadPointer<UObject>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: EX_ObjectConst (%p:%s)"), *Indents, (int32)Opcode, Pointer, Pointer ? (Pointer->IsValidLowLevel() ? *Pointer->GetFullName() : TEXT("(not a valid object)")) : TEXT("(null)"));
break;
}
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324) #lockdown Nick.Penwarden #rb none #rnx ============================ MAJOR FEATURES & CHANGES ============================ Change 3431439 by Marc.Audy Editor only subobjects shouldn't exist in PIE world #jira UE-43186 Change 3457323 by Marc.Audy Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world #jira UE-45087 Change 3499927 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker #jira UE-43458 Change 3502939 by Michael.Noland Back out changelist 3499927 Change 3522783 by Zak.Middleton #ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before). Change 3544641 by Dan.Oconnor Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names #jira OR-38176 Change 3544645 by Dan.Oconnor In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional #jira UE-45248 Change 3545023 by Marc.Audy Properly encapsulate FPinDeletionQueue Fix ensure during deletion of split pins when not clearing links Fix split pins able to end up in delete queue twice during undo/redo Change 3545025 by Marc.Audy Properly allow changing the pin type from a struct that is split on the node #jira UE-47328 Change 3545455 by Ben.Zeigler Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them Copy of CL#3544474 Change 3545456 by Ben.Zeigler Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets. Copy of CL #3544374 Change 3545547 by Ben.Zeigler CIS Fix Change 3545568 by Michael.Noland PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema) #jira UE-46845 Change 3545582 by Michael.Noland Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error) Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles [Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework] Change 3546528 by Ben.Zeigler #jira UE-47548 Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance Change 3546544 by Marc.Audy Fix split pin restoration logic to deal with wildcards and variations in const/refness Change 3546551 by Marc.Audy Don't crash if the struct type is missing for whatever reason Change 3547152 by Marc.Audy Fix array exporting so you don't end up getting none instead of defaults #jira UE-47320 Change 3547438 by Marc.Audy Fix split pins on class defaults Don't cause a structural change when reapplying a split pin as part of node reconstruction #jira UE-46935 Change 3547501 by Ben.Zeigler Fix ensure, it's valid to pass a null path for a dynamic asset Change 3551185 by Ben.Zeigler #jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated Change 3551723 by Ben.Zeigler Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors Change 3553216 by Phillip.Kavan #jira UE-39303, UE-46268, UE-47519 - Nativized UDS now support external asset dependencies and will construct their own linker import tables on load. Change summary: - Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types. - Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields. - Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types. - Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time. - Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same. - Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above). - Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData. - Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types. - Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519). Change 3553301 by Ben.Zeigler Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead Change 3553631 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize. #jira UE-43458 Change 3553799 by Ben.Zeigler Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work Copy of CL #3553781 Change 3553896 by Michael.Noland Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made) #jira UE-31031 Change 3553897 by Michael.Noland Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets #jira UE-37862 Change 3553898 by Michael.Noland Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph) Change 3553909 by Michael.Noland Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full #jira UE-19710 Change 3554517 by Michael.Noland Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out #jira UE-21810 Change 3554664 by Michael.Noland Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere) #jira UE-27121 Change 3554831 by Dan.Oconnor Non editor build fix Change 3554834 by Dan.Oconnor Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on #jira UE-40438 Change 3556157 by Ben.Zeigler Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups Change 3557775 by Michael.Noland Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure #jira UE-36090 Change 3557777 by Michael.Noland Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist) #jira UE-47024 Change 3560510 by Michael.Noland Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up #jira UE-38912 Change 3560563 by Michael.Noland Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed) Change 3561443 by Ben.Zeigler Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header. Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change Change 3561658 by Michael.Noland Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually - Added a key binding for Goto Definition (Alt+G) - Added a key binding for Find References (Shift+Alt+F) - Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands - Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject - Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition Change 3562291 by Ben.Zeigler Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case Change 3562292 by Ben.Zeigler #jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name Change 3564814 by Ben.Zeigler #jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves Change 3566707 by Dan.Oconnor Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles) #jira None Change 3566717 by Michael.Noland Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile) Change 3566771 by Michael.Noland Editor: Fixing deprecation warning #jira UE-47922 Change 3567023 by Michael.Noland Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts Adapted from PR #3708: Fast construction of bp (Contributed by gildor2) #jira UE-46473 Change 3567304 by Ben.Zeigler Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class. This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code Change 3567398 by Ben.Zeigler Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance Change 3567729 by Michael.Noland Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)" Change 3567739 by Ben.Zeigler Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter Change 3567741 by Ben.Zeigler Disable optimization for a path test that was crashing in VC2015 in a monolithic build Change 3568332 by Mieszko.Zielinski Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4 #jira UE-47948 Change 3568676 by Michael.Noland Blueprints: Allow editing the tooltip of each enum value in a user defined enum #jira UE-20036 Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata Change 3569128 by Michael.Noland Blueprints: Removing the experimental profiler as we won't be returning to it any time soon #jira UE-46852 Change 3569207 by Michael.Noland Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint #jira UE-8708 Change 3569208 by Michael.Noland Blueprints: Allow specifying a description for user defined enums (shown in the content browser) #jira UE-20036 Change 3569209 by Michael.Noland Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials #jira UE-16085 Change 3570177 by Michael.Noland Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor) #jira UE-47962 Change 3570179 by Michael.Noland Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited Change 3570192 by Michael.Noland Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug #jira UE-20709 Change 3571203 by Michael.Noland Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature - Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters - Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes - Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible - Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes Change 3571224 by Michael.Noland Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs) Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist) #jira UE-29848 #jira UE-34698 Change 3571279 by Michael.Noland Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well) Change 3571282 by Michael.Noland Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint Change 3571284 by Michael.Noland Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists) Change 3571311 by Ben.Zeigler Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible. All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator Change 3571313 by Ben.Zeigler Several fixes to automation framework to allow it to work better with Cooked builds. Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time. Change 3571485 by mason.seay Test map for Make Set bug Change 3571501 by Ben.Zeigler Accidentally undid the UHT fixup for TAssetPtr during my bulk rename Change 3571531 by Ben.Zeigler Fix warning messages Change 3571591 by Michael.Noland Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone) #jira UE-48024 Change 3572938 by Michael.Noland Blueprints: Fixed a typo in a set function comment #jira UE-48036 Change 3572941 by Michael.Noland Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols #jira UE-38624 Change 3574816 by mason.seay Renamed asset to better reflect name of object reference Change 3574985 by mason.seay Updated comments and string outputs to list Soft Object Reference Change 3575740 by Ben.Zeigler #jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate Change 3575795 by Ben.Zeigler #jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds Change 3576374 by mason.seay Forgot to submit the deleting of a redirector Change 3576966 by Ben.Zeigler #jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands Change 3577002 by Marc.Audy Prevent wildcard pins from being connected to exec pins #jira UE-48148 Change 3577232 by Phillip.Kavan #jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset. Change summary: - Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially). Change 3577710 by Dan.Oconnor Mirror of 3576977: Fix for crash when loading cooked uassets that reference functions that are not present #jira UE-47644 Change 3577723 by Dan.Oconnor Prevent deferring of classes that are needed to load subobjects #jira UE-47726 Change 3577741 by Dan.Oconnor Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17 Change 3578938 by Ben.Zeigler #jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure. Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems Change 3578947 by Marc.Audy (4.17) Properly expose members of DialogueContext to blueprints #jira UE-48175 Change 3578952 by Ben.Zeigler Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating Change 3579315 by mason.seay Test map for Make Container nodes Change 3579600 by Ben.Zeigler Disable window test on non-desktop platforms as they cannot be resized post launch Change 3579601 by Ben.Zeigler #jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue Change 3579713 by Dan.Oconnor Prevent crashes when bluepints implement an interface that was deleted #jira UE-48223 Change 3579719 by Dan.Oconnor Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data #jira UE-48240 Change 3579745 by Michael.Noland Blueprints: Improve categorization and reordering support in 'My Blueprints' - Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables) - Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions) - Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers) - Added support for renaming categories using F2 Known issues (none are regressions): - Timelines cannot be moved to other categories or reordered - Renaming a nested category will result in it becoming a top level category (discarding the parent category chain) - Some actions do not support undo #jira UE-31557 Change 3579795 by Michael.Noland PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames) #jira UE-48105 Change 3580463 by Marc.Audy (4.17) Don't crash if calling PostEditUndo on an Actor in the transient package #jira UE-47523 Change 3581073 by Marc.Audy Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code. Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes Change 3581156 by Ben.Zeigler #jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins Change 3581473 by Ben.Zeigler Properly turn off optimization for PS4 test Change 3582094 by Marc.Audy Fix anim nodes not navigating to their graph on double click #jira UE-48333 Change 3582157 by Marc.Audy Fix double-clicking on animation asset nodes not opening the asset editors Change 3582289 by Marc.Audy (4.17) Don't crash when adding a streaming level that's already in the level #jira UE-48928 Change 3545435 by Ben.Zeigler #jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table: FStringAssetReference -> FSoftObjectPath FStringClassReference -> FSoftClassPath TAssetPtr -> TSoftObjectPtr TAssetSubclassOf -> TSoftClassPtr The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath. This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds Change 3567760 by Ben.Zeigler Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests Change actor merging tests to be editor only, this stops them from cooking Several individual tests crash on cooked builds, I started threads with the owners of those Change 3575737 by Ben.Zeigler #jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely. As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features #jira UE-27124 Fix several possible crashes with changing levels while in PIE Change 3578806 by Marc.Audy Fix Construct Object not working correctly with split pins. Add Construct Object test cases to functional tests. Added split pin expose on spawn test cases. #jira UE-33924 [CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
case EX_SoftObjectConst:
{
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324) #lockdown Nick.Penwarden #rb none #rnx ============================ MAJOR FEATURES & CHANGES ============================ Change 3431439 by Marc.Audy Editor only subobjects shouldn't exist in PIE world #jira UE-43186 Change 3457323 by Marc.Audy Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world #jira UE-45087 Change 3499927 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker #jira UE-43458 Change 3502939 by Michael.Noland Back out changelist 3499927 Change 3522783 by Zak.Middleton #ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before). Change 3544641 by Dan.Oconnor Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names #jira OR-38176 Change 3544645 by Dan.Oconnor In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional #jira UE-45248 Change 3545023 by Marc.Audy Properly encapsulate FPinDeletionQueue Fix ensure during deletion of split pins when not clearing links Fix split pins able to end up in delete queue twice during undo/redo Change 3545025 by Marc.Audy Properly allow changing the pin type from a struct that is split on the node #jira UE-47328 Change 3545455 by Ben.Zeigler Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them Copy of CL#3544474 Change 3545456 by Ben.Zeigler Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets. Copy of CL #3544374 Change 3545547 by Ben.Zeigler CIS Fix Change 3545568 by Michael.Noland PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema) #jira UE-46845 Change 3545582 by Michael.Noland Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error) Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles [Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework] Change 3546528 by Ben.Zeigler #jira UE-47548 Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance Change 3546544 by Marc.Audy Fix split pin restoration logic to deal with wildcards and variations in const/refness Change 3546551 by Marc.Audy Don't crash if the struct type is missing for whatever reason Change 3547152 by Marc.Audy Fix array exporting so you don't end up getting none instead of defaults #jira UE-47320 Change 3547438 by Marc.Audy Fix split pins on class defaults Don't cause a structural change when reapplying a split pin as part of node reconstruction #jira UE-46935 Change 3547501 by Ben.Zeigler Fix ensure, it's valid to pass a null path for a dynamic asset Change 3551185 by Ben.Zeigler #jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated Change 3551723 by Ben.Zeigler Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors Change 3553216 by Phillip.Kavan #jira UE-39303, UE-46268, UE-47519 - Nativized UDS now support external asset dependencies and will construct their own linker import tables on load. Change summary: - Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types. - Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields. - Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types. - Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time. - Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same. - Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above). - Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData. - Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types. - Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519). Change 3553301 by Ben.Zeigler Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead Change 3553631 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize. #jira UE-43458 Change 3553799 by Ben.Zeigler Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work Copy of CL #3553781 Change 3553896 by Michael.Noland Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made) #jira UE-31031 Change 3553897 by Michael.Noland Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets #jira UE-37862 Change 3553898 by Michael.Noland Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph) Change 3553909 by Michael.Noland Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full #jira UE-19710 Change 3554517 by Michael.Noland Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out #jira UE-21810 Change 3554664 by Michael.Noland Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere) #jira UE-27121 Change 3554831 by Dan.Oconnor Non editor build fix Change 3554834 by Dan.Oconnor Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on #jira UE-40438 Change 3556157 by Ben.Zeigler Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups Change 3557775 by Michael.Noland Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure #jira UE-36090 Change 3557777 by Michael.Noland Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist) #jira UE-47024 Change 3560510 by Michael.Noland Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up #jira UE-38912 Change 3560563 by Michael.Noland Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed) Change 3561443 by Ben.Zeigler Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header. Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change Change 3561658 by Michael.Noland Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually - Added a key binding for Goto Definition (Alt+G) - Added a key binding for Find References (Shift+Alt+F) - Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands - Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject - Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition Change 3562291 by Ben.Zeigler Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case Change 3562292 by Ben.Zeigler #jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name Change 3564814 by Ben.Zeigler #jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves Change 3566707 by Dan.Oconnor Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles) #jira None Change 3566717 by Michael.Noland Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile) Change 3566771 by Michael.Noland Editor: Fixing deprecation warning #jira UE-47922 Change 3567023 by Michael.Noland Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts Adapted from PR #3708: Fast construction of bp (Contributed by gildor2) #jira UE-46473 Change 3567304 by Ben.Zeigler Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class. This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code Change 3567398 by Ben.Zeigler Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance Change 3567729 by Michael.Noland Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)" Change 3567739 by Ben.Zeigler Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter Change 3567741 by Ben.Zeigler Disable optimization for a path test that was crashing in VC2015 in a monolithic build Change 3568332 by Mieszko.Zielinski Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4 #jira UE-47948 Change 3568676 by Michael.Noland Blueprints: Allow editing the tooltip of each enum value in a user defined enum #jira UE-20036 Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata Change 3569128 by Michael.Noland Blueprints: Removing the experimental profiler as we won't be returning to it any time soon #jira UE-46852 Change 3569207 by Michael.Noland Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint #jira UE-8708 Change 3569208 by Michael.Noland Blueprints: Allow specifying a description for user defined enums (shown in the content browser) #jira UE-20036 Change 3569209 by Michael.Noland Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials #jira UE-16085 Change 3570177 by Michael.Noland Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor) #jira UE-47962 Change 3570179 by Michael.Noland Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited Change 3570192 by Michael.Noland Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug #jira UE-20709 Change 3571203 by Michael.Noland Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature - Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters - Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes - Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible - Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes Change 3571224 by Michael.Noland Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs) Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist) #jira UE-29848 #jira UE-34698 Change 3571279 by Michael.Noland Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well) Change 3571282 by Michael.Noland Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint Change 3571284 by Michael.Noland Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists) Change 3571311 by Ben.Zeigler Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible. All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator Change 3571313 by Ben.Zeigler Several fixes to automation framework to allow it to work better with Cooked builds. Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time. Change 3571485 by mason.seay Test map for Make Set bug Change 3571501 by Ben.Zeigler Accidentally undid the UHT fixup for TAssetPtr during my bulk rename Change 3571531 by Ben.Zeigler Fix warning messages Change 3571591 by Michael.Noland Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone) #jira UE-48024 Change 3572938 by Michael.Noland Blueprints: Fixed a typo in a set function comment #jira UE-48036 Change 3572941 by Michael.Noland Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols #jira UE-38624 Change 3574816 by mason.seay Renamed asset to better reflect name of object reference Change 3574985 by mason.seay Updated comments and string outputs to list Soft Object Reference Change 3575740 by Ben.Zeigler #jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate Change 3575795 by Ben.Zeigler #jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds Change 3576374 by mason.seay Forgot to submit the deleting of a redirector Change 3576966 by Ben.Zeigler #jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands Change 3577002 by Marc.Audy Prevent wildcard pins from being connected to exec pins #jira UE-48148 Change 3577232 by Phillip.Kavan #jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset. Change summary: - Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially). Change 3577710 by Dan.Oconnor Mirror of 3576977: Fix for crash when loading cooked uassets that reference functions that are not present #jira UE-47644 Change 3577723 by Dan.Oconnor Prevent deferring of classes that are needed to load subobjects #jira UE-47726 Change 3577741 by Dan.Oconnor Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17 Change 3578938 by Ben.Zeigler #jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure. Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems Change 3578947 by Marc.Audy (4.17) Properly expose members of DialogueContext to blueprints #jira UE-48175 Change 3578952 by Ben.Zeigler Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating Change 3579315 by mason.seay Test map for Make Container nodes Change 3579600 by Ben.Zeigler Disable window test on non-desktop platforms as they cannot be resized post launch Change 3579601 by Ben.Zeigler #jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue Change 3579713 by Dan.Oconnor Prevent crashes when bluepints implement an interface that was deleted #jira UE-48223 Change 3579719 by Dan.Oconnor Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data #jira UE-48240 Change 3579745 by Michael.Noland Blueprints: Improve categorization and reordering support in 'My Blueprints' - Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables) - Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions) - Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers) - Added support for renaming categories using F2 Known issues (none are regressions): - Timelines cannot be moved to other categories or reordered - Renaming a nested category will result in it becoming a top level category (discarding the parent category chain) - Some actions do not support undo #jira UE-31557 Change 3579795 by Michael.Noland PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames) #jira UE-48105 Change 3580463 by Marc.Audy (4.17) Don't crash if calling PostEditUndo on an Actor in the transient package #jira UE-47523 Change 3581073 by Marc.Audy Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code. Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes Change 3581156 by Ben.Zeigler #jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins Change 3581473 by Ben.Zeigler Properly turn off optimization for PS4 test Change 3582094 by Marc.Audy Fix anim nodes not navigating to their graph on double click #jira UE-48333 Change 3582157 by Marc.Audy Fix double-clicking on animation asset nodes not opening the asset editors Change 3582289 by Marc.Audy (4.17) Don't crash when adding a streaming level that's already in the level #jira UE-48928 Change 3545435 by Ben.Zeigler #jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table: FStringAssetReference -> FSoftObjectPath FStringClassReference -> FSoftClassPath TAssetPtr -> TSoftObjectPtr TAssetSubclassOf -> TSoftClassPtr The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath. This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds Change 3567760 by Ben.Zeigler Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests Change actor merging tests to be editor only, this stops them from cooking Several individual tests crash on cooked builds, I started threads with the owners of those Change 3575737 by Ben.Zeigler #jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely. As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features #jira UE-27124 Fix several possible crashes with changing levels while in PIE Change 3578806 by Marc.Audy Fix Construct Object not working correctly with split pins. Add Construct Object test cases to functional tests. Added split pin expose on spawn test cases. #jira UE-33924 [CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
Ar.Logf(TEXT("%s $%X: EX_SoftObjectConst"), *Indents, (int32)Opcode);
SerializeExpr(ScriptIndex);
break;
}
case EX_FieldPathConst:
{
Ar.Logf(TEXT("%s $%X: EX_FieldPathConst"), *Indents, (int32)Opcode);
SerializeExpr(ScriptIndex);
break;
}
case EX_NameConst:
{
FString ConstValue = ReadName(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal name %s"), *Indents, (int32)Opcode, *ConstValue);
break;
}
case EX_RotationConst:
{
float Pitch = ReadFLOAT(ScriptIndex);
float Yaw = ReadFLOAT(ScriptIndex);
float Roll = ReadFLOAT(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal rotation (%f,%f,%f)"), *Indents, (int32)Opcode, Pitch, Yaw, Roll);
break;
}
case EX_VectorConst:
{
FVector Vec = ReadFVECTOR(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal vector (%f,%f,%f)"), *Indents, (int32)Opcode, Vec.X, Vec.Y, Vec.Z);
break;
}
case EX_TransformConst:
{
float RotX = ReadFLOAT(ScriptIndex);
float RotY = ReadFLOAT(ScriptIndex);
float RotZ = ReadFLOAT(ScriptIndex);
float RotW = ReadFLOAT(ScriptIndex);
FVector Trans = ReadFVECTOR(ScriptIndex);
FVector Scale = ReadFVECTOR(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal transform R(%f,%f,%f,%f) T(%f,%f,%f) S(%f,%f,%f)"), *Indents, (int32)Opcode, Trans.X, Trans.Y, Trans.Z, RotX, RotY, RotZ, RotW, Scale.X, Scale.Y, Scale.Z);
break;
}
case EX_StructConst:
{
UScriptStruct* Struct = ReadPointer<UScriptStruct>(ScriptIndex);
int32 SerializedSize = ReadINT(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal struct %s (serialized size: %d)"), *Indents, (int32)Opcode, *Struct->GetName(), SerializedSize);
while( SerializeExpr(ScriptIndex) != EX_EndStructConst )
{
// struct contents
}
break;
}
case EX_SetArray:
{
Ar.Logf(TEXT("%s $%X: set array"), *Indents, (int32)Opcode);
SerializeExpr(ScriptIndex);
while( SerializeExpr(ScriptIndex) != EX_EndArray)
{
// Array contents
}
break;
}
case EX_ArrayConst:
{
FProperty* InnerProp = ReadPointer<FProperty>(ScriptIndex);
int32 Num = ReadINT(ScriptIndex);
Ar.Logf(TEXT("%s $%X: set array const - elements number: %d, inner property: %s"), *Indents, (int32)Opcode, Num, *GetNameSafe(InnerProp));
while (SerializeExpr(ScriptIndex) != EX_EndArrayConst)
{
// Array contents
}
break;
}
case EX_ByteConst:
{
uint8 ConstValue = ReadBYTE(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal byte %d"), *Indents, (int32)Opcode, ConstValue);
break;
}
case EX_IntConstByte:
{
int32 ConstValue = ReadBYTE(ScriptIndex);
Ar.Logf(TEXT("%s $%X: literal int %d"), *Indents, (int32)Opcode, ConstValue);
break;
}
case EX_MetaCast:
{
UClass* Class = ReadPointer<UClass>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: MetaCast to %s of expr:"), *Indents, (int32)Opcode, *Class->GetName());
SerializeExpr( ScriptIndex );
break;
}
case EX_DynamicCast:
{
UClass* Class = ReadPointer<UClass>(ScriptIndex);
Ar.Logf(TEXT("%s $%X: DynamicCast to %s of expr:"), *Indents, (int32)Opcode, *Class->GetName());
SerializeExpr( ScriptIndex );
break;
}
case EX_JumpIfNot:
{
// Code offset.
CodeSkipSizeType SkipCount = ReadSkipCount(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Jump to offset 0x%X if not expr:"), *Indents, (int32)Opcode, SkipCount);
// Boolean expr.
SerializeExpr( ScriptIndex );
break;
}
case EX_Assert:
{
uint16 LineNumber = ReadWORD(ScriptIndex);
uint8 InDebugMode = ReadBYTE(ScriptIndex);
Ar.Logf(TEXT("%s $%X: assert at line %d, in debug mode = %d with expr:"), *Indents, (int32)Opcode, LineNumber, InDebugMode);
SerializeExpr( ScriptIndex ); // Assert expr.
break;
}
case EX_Skip:
{
CodeSkipSizeType W = ReadSkipCount(ScriptIndex);
Ar.Logf(TEXT("%s $%X: possibly skip 0x%X bytes of expr:"), *Indents, (int32)Opcode, W);
// Expression to possibly skip.
SerializeExpr( ScriptIndex );
break;
}
case EX_InstanceDelegate:
{
// the name of the function assigned to the delegate.
FString FuncName = ReadName(ScriptIndex);
Ar.Logf(TEXT("%s $%X: instance delegate function named %s"), *Indents, (int32)Opcode, *FuncName);
break;
}
case EX_AddMulticastDelegate:
{
Ar.Logf(TEXT("%s $%X: Add MC delegate"), *Indents, (int32)Opcode);
SerializeExpr( ScriptIndex );
SerializeExpr( ScriptIndex );
break;
}
case EX_RemoveMulticastDelegate:
{
Ar.Logf(TEXT("%s $%X: Remove MC delegate"), *Indents, (int32)Opcode);
SerializeExpr( ScriptIndex );
SerializeExpr( ScriptIndex );
break;
}
case EX_ClearMulticastDelegate:
{
Ar.Logf(TEXT("%s $%X: Clear MC delegate"), *Indents, (int32)Opcode);
SerializeExpr( ScriptIndex );
break;
}
case EX_BindDelegate:
{
// the name of the function assigned to the delegate.
FString FuncName = ReadName(ScriptIndex);
Ar.Logf(TEXT("%s $%X: BindDelegate '%s' "), *Indents, (int32)Opcode, *FuncName);
Ar.Logf(TEXT("%s Delegate:"), *Indents);
SerializeExpr( ScriptIndex );
Ar.Logf(TEXT("%s Object:"), *Indents);
SerializeExpr( ScriptIndex );
break;
}
case EX_PushExecutionFlow:
{
CodeSkipSizeType SkipCount = ReadSkipCount(ScriptIndex);
Ar.Logf(TEXT("%s $%X: FlowStack.Push(0x%X);"), *Indents, (int32)Opcode, SkipCount);
break;
}
case EX_PopExecutionFlow:
{
Ar.Logf(TEXT("%s $%X: if (FlowStack.Num()) { jump to statement at FlowStack.Pop(); } else { ERROR!!! }"), *Indents, (int32)Opcode);
break;
}
case EX_PopExecutionFlowIfNot:
{
Ar.Logf(TEXT("%s $%X: if (!condition) { if (FlowStack.Num()) { jump to statement at FlowStack.Pop(); } else { ERROR!!! } }"), *Indents, (int32)Opcode);
// Boolean expr.
SerializeExpr( ScriptIndex );
break;
}
case EX_Breakpoint:
{
Ar.Logf(TEXT("%s $%X: <<< BREAKPOINT >>>"), *Indents, (int32)Opcode);
break;
}
case EX_WireTracepoint:
{
Ar.Logf(TEXT("%s $%X: .. wire debug site .."), *Indents, (int32)Opcode);
break;
}
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) @ 2781164 #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2716841 on 2015/10/05 by Mike.Beach (WIP) Cleaning up how we setup script assets for replacement on cook (aligning more with the Blueprint conversion tool). #codereview Maciej.Mroz Change 2719089 on 2015/10/07 by Maciej.Mroz ToValidCPPIdentifierChars handles propertly '?' char. #codereview Dan.Oconnor Change 2719361 on 2015/10/07 by Maciej.Mroz Generated native code for AnimBPGC - some preliminary changes. Refactor: UAnimBlueprintGeneratedClass is not accessed directly in runtime. It is accessed via UAnimClassInterface interface. Properties USkeletalMeshComponent::AnimBlueprintGeneratedClass and UInterpTrackFloatAnimBPParam::AnimBlueprintClass were changed into "TSubclassOf<UAnimInstance> AnimClass" The UDynamicClass also can deliver the IAnimClassInterface interface. See UAnimClassData, IAnimClassInterface::GetFromClass and UDynamicClass::AnimClassImplementation. #codereview Lina.Halper, Thomas.Sarkanen Change 2719383 on 2015/10/07 by Maciej.Mroz Debug-only code removed Change 2720528 on 2015/10/07 by Dan.Oconnor Fix for determinsitc cooking of async tasks and load asset nodes #codereview Mike.Beach, Maciej.Mroz Change 2721273 on 2015/10/08 by Maciej.Mroz Blueprint Compiler Cpp Backend - Anim Blueprints can be converted - Various fixes/improvements Change 2721310 on 2015/10/08 by Maciej.Mroz refactor (cl#2719361) - no "auto" keyword Change 2721727 on 2015/10/08 by Mike.Beach (WIP) Setup the cook commandlet so it handles converted assets, replacing them with generated classes. - Refactored the conversion manifest (using a map over an array) - Centralized destination paths into a helper struct (for the manifest) - Generating an Editor module that automatically hooks into the cook process when enabled - Loading and applying native replacments for the cook Change 2723276 on 2015/10/09 by Michael.Schoell Blueprints duplicated for PIE will no longer register as dependencies to other Blueprint. #jira UE-16695 - Editor freezes then crashes while attempting to save during PIE #jira UE-21614 - [CrashReport] Crash while saving during PIE - FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:736 Change 2724345 on 2015/10/11 by Ben.Cosh Blueprint profiler at first pass, this includes the ability to instrument specific blueprints with realtime editor stat display. #UEBP-21 - Profiling data capture and storage #UEBP-13 - Performance capture landing page #Branch UE4 #Proj BlueprintProfiler, BlueprintGraph, EditorStyle, Kismet, UnrealEd, CoreUObject, Engine Change 2724613 on 2015/10/12 by Ben.Cosh Incremental update for blueprint profiler to fix the way some of the reported stats cascade through events and branches and additionally some missed bits of code are refactored/removed. #Branch UE4 #Proj BlueprintProfiler #info Whilst looking into this I spotted the reason why the stats seem so erratic, There appears to be an issue with FText's use of EXPERIMENTAL_TEXT_FAST_DECIMAL_FORMAT which I have reported, but ideally disable this locally until a fix is integrated. Change 2724723 on 2015/10/12 by Maciej.Mroz Constructor of a dynamic class creates CDO. #codereview Robert.Manuszewski Change 2725108 on 2015/10/12 by Mike.Beach [UE-21891] Minor fix to the array shuffle() function; now processes the last entry like all the others. Change 2726358 on 2015/10/13 by Maciej.Mroz UDataTable is properly saved even if its RowStruct is null. https://udn.unrealengine.com/questions/264064/crash-using-hotreload-in-custom-datatable-cdo-clas.html Change 2727395 on 2015/10/13 by Mike.Beach (WIP) Second pass on the Blueprint conversion pipeline; setting it up for more optimal (speedier) performance. * Using stubs for replacements (rather than loading dynamic replacement). * Giving the cook commandlet more control (so a conversion could be ran directly). * Now logging replacements by old object path (to account for UPackage replacement queries). * Fix for [UE-21947], unshelved from CL 2724944 (by Maciej.Mroz). #codereview Maciej.Mroz Change 2727484 on 2015/10/13 by Mike.Beach [UE-22008] Fixing up comment/tooltip typo for UActorComponent::bAutoActivate. Change 2727527 on 2015/10/13 by Mike.Beach Downgrading an inactionable EdGraph warning, while adding more info so we could possibly determine what's happening. Change 2727702 on 2015/10/13 by Dan.Oconnor Fix for crash in UDelegateProperty::GetCPPType when called on a function with no OwnerClass (events) Change 2727968 on 2015/10/14 by Maciej.Mroz Since ConstructorHelpers::FClassFinder is usually static, the loaded class should be in root set, to prevent the pointer stored in ConstructorHelpers::FClassFinder from being obsolete. FindOrLoadClass behaves now like FindOrLoadObject. #codereview Robert.Manuszewski, Nick.Whiting Change 2728139 on 2015/10/14 by Phillip.Kavan
2015-11-25 18:47:20 -05:00
case EX_InstrumentationEvent:
{
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 2967759) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2919729 on 2016/03/23 by Ben.Cosh Support for macros in the profiler #UEBP-177 - Macro instance handling #Proj Kismet, BlueprintProfiler - Adds support for timings inside macro calls - Extends the tunnel graph support to handle multiple entry/exit sites Change 2938064 on 2016/04/08 by Phillip.Kavan [UE-17794] The "Delete Unused Variable" feature now considers the GetClassDefaults node as well. change summary: - added external linkage to UK2Node_GetClassDefaults::FindClassPin(). - added an include for the K2Node_GetClassDefaults header file to BlueprintGraphDefinitions.h. - added UK2Node_GetClassDefaults::GetInputClass() as a public API w/ external linkage; moved default 'nullptr' param logic into this impl. - modified FBlueprintEditorUtils::IsVariableUsed() to add an extra check for a GetClassDefaults node with a visible output pin for the variable that's also connected. - modified UK2Node_GetClassDefaults::GetInputClass() to return the generated skeleton class for Blueprint class types. Change 2938088 on 2016/04/08 by Mike.Beach Making bytecode produced by latent action nodes deterministic. Change 2938101 on 2016/04/08 by Mike.Beach Fixing a bug where the compile summary was not being reported because another compiler log was lingering - making it so the MathExpression node compiler log is not initialized with intent to report its own summary (it gets folded into the primary log). Change 2938121 on 2016/04/08 by Phillip.Kavan Remove a few redundant MBASM calls on variable type change. Change 2940295 on 2016/04/11 by Dan.Oconnor We now 'tag subobjects' of a blueprint even if it's part of the rootset, this means we correctly detect references to the BPGC in FPendingDelete::CheckForReferences(). Original rootset check dates to 2012 and I can find no justification for it currently. #jira UE-29216 Change 2943227 on 2016/04/13 by Dan.Oconnor Fixed improper detection of functions from interfaces that themselves inherit from some other interface #jira UE-29440 Change 2944270 on 2016/04/14 by Phillip.Kavan [UEBP-176] First pass at BP graph node heat map visualization while profiling. change summary: - added an "indicator overlay" to graph node widget layouts - added a heat mode "mode" selector widget to the BP profiler view panel - extended IBlueprintProfilerInterface to include APIs for accessing current heat map mode state - added FScriptNodePerfData::GetBlueprintPerfDataForAllTracePaths() (tentative - may need revisiting) - added SGraphNode::GetNodeIndicatorOverlayColor() and GetNodeIndicatorOverlayVisibility() delegates - added BP-specific delegate overrides to SGraphNodeK2Base; extended to include both compact and variable nodes Change 2946932 on 2016/04/18 by Mike.Beach Guarding against invalid EdGraphPins (ones that have been moved to the transient package) when constructing the widget - prevents a crash that we've been unable to repro or determine the cause of (turns it instead into an ensure, so we can collect more contextual information on the issue). #jira UE-26998 Change 2949968 on 2016/04/20 by Dan.Oconnor Array access out of bounds by value is a warning again, added ability to elevate individual warnings on a per project basis (or supress them) #jira UE-28971 Change 2950113 on 2016/04/20 by Dan.Oconnor Removed GBlueprintCompileTime, it was not accurate. Printing BlueprintCompileAndLoadTimerData.GetTime() at start instead Change 2951086 on 2016/04/21 by Ben.Cosh This change addresses the edge case in the blueprint profiler that caused stats to fail when tunnel nodes were linked through to other tunnel nodes. #jira UE-28750 - Crash compiling a Blueprint that contains a For Loop with profiler active #Proj Kismet, BlueprintProfiler Change 2951336 on 2016/04/21 by Ben.Cosh This change enables blueprint breakpoints during instrumented conditions. #jira UEBP-178 - Fix breakpoints under profiling conditions #Proj CoreUObject, BlueprintProfiler, UnrealEd, KismetCompiler Change 2951406 on 2016/04/21 by Ben.Cosh Fix for blueprint profiler stats for the top level blueprint stat entry not updating correctly. #Proj Kismet Change 2951832 on 2016/04/21 by Ben.Cosh Fix for certain blueprint profiler stats not being updated and collected at the blueprint container level due to incorrect tracepaths. #Proj Kismet #info This should fix the node heatmaps as a side effect. #Codereview Phillip.Kavan Change 2956696 on 2016/04/26 by Dan.Oconnor Tweak fix for macros being BS_Dirty after loading. The current fix had the side effect of not recompiling clients of the macro after making a change to the macro and entering PIE #jira UE-29495 Change 2957564 on 2016/04/27 by Maciej.Mroz Various fixes related to nativized enums. #jira UE-27735 Enumerators are not set correctly in packaged games if Nativize Blueprint Assets is set to true Change 2961626 on 2016/04/29 by Mike.Beach Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints) Change 2962747 on 2016/05/02 by Maciej.Mroz #jira UE-30123 Cannot use abilities in nativized Orion build GameplayAbility handles BPGC and DynamicClass the same way. C++ backend do not assumes that some literal objects are UserDefinesEnum/UserDefinedStruct/BlueprintGeneratedClass. Change 2965679 on 2016/05/04 by Maciej.Mroz Increased stack size (384k) of threads spawned by Task Graph. (Temporary?) fix for stack overflow, when amination in Orion are evaluated. Change 2965758 on 2016/05/04 by Maciej.Mroz #jira UE-30300 "ReturnToBase" ability does not work in nativized Orion. Fixed CDO creation in async loaded Dynamic Class. Fixed too restrict cast assertions. Change 2966543 on 2016/05/04 by Maciej.Mroz #jira UE-30235 Mac QAGame fails to package with nativization #jira UE-30282 Match3 nativized android package fails to build Change 2966839 on 2016/05/04 by Dan.Oconnor Typo IMPLEMENT_MODULE creates weird linking error, also may need entry in Target.cs to get BlueprintRuntime to build. Copying that pattern from ___LoadingScreen modules #jira UE-30333 Change 2967347 on 2016/05/05 by Maciej.Mroz #jira UE-30196 Unable to package a copy of project with Nativize Blueprints enabled CommandUtils.GetDirectoryName should not be used with directory path (but only with file path), because it cannot handle paths like "e:\My11Project 4.13" (containing '.'). It seems useless with directory path anyway. [CL 2968184 by Dan Oconnor in Main branch]
2016-05-05 18:28:40 -04:00
const uint8 EventType = ReadBYTE(ScriptIndex);
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) @ 2781164 #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2716841 on 2015/10/05 by Mike.Beach (WIP) Cleaning up how we setup script assets for replacement on cook (aligning more with the Blueprint conversion tool). #codereview Maciej.Mroz Change 2719089 on 2015/10/07 by Maciej.Mroz ToValidCPPIdentifierChars handles propertly '?' char. #codereview Dan.Oconnor Change 2719361 on 2015/10/07 by Maciej.Mroz Generated native code for AnimBPGC - some preliminary changes. Refactor: UAnimBlueprintGeneratedClass is not accessed directly in runtime. It is accessed via UAnimClassInterface interface. Properties USkeletalMeshComponent::AnimBlueprintGeneratedClass and UInterpTrackFloatAnimBPParam::AnimBlueprintClass were changed into "TSubclassOf<UAnimInstance> AnimClass" The UDynamicClass also can deliver the IAnimClassInterface interface. See UAnimClassData, IAnimClassInterface::GetFromClass and UDynamicClass::AnimClassImplementation. #codereview Lina.Halper, Thomas.Sarkanen Change 2719383 on 2015/10/07 by Maciej.Mroz Debug-only code removed Change 2720528 on 2015/10/07 by Dan.Oconnor Fix for determinsitc cooking of async tasks and load asset nodes #codereview Mike.Beach, Maciej.Mroz Change 2721273 on 2015/10/08 by Maciej.Mroz Blueprint Compiler Cpp Backend - Anim Blueprints can be converted - Various fixes/improvements Change 2721310 on 2015/10/08 by Maciej.Mroz refactor (cl#2719361) - no "auto" keyword Change 2721727 on 2015/10/08 by Mike.Beach (WIP) Setup the cook commandlet so it handles converted assets, replacing them with generated classes. - Refactored the conversion manifest (using a map over an array) - Centralized destination paths into a helper struct (for the manifest) - Generating an Editor module that automatically hooks into the cook process when enabled - Loading and applying native replacments for the cook Change 2723276 on 2015/10/09 by Michael.Schoell Blueprints duplicated for PIE will no longer register as dependencies to other Blueprint. #jira UE-16695 - Editor freezes then crashes while attempting to save during PIE #jira UE-21614 - [CrashReport] Crash while saving during PIE - FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:736 Change 2724345 on 2015/10/11 by Ben.Cosh Blueprint profiler at first pass, this includes the ability to instrument specific blueprints with realtime editor stat display. #UEBP-21 - Profiling data capture and storage #UEBP-13 - Performance capture landing page #Branch UE4 #Proj BlueprintProfiler, BlueprintGraph, EditorStyle, Kismet, UnrealEd, CoreUObject, Engine Change 2724613 on 2015/10/12 by Ben.Cosh Incremental update for blueprint profiler to fix the way some of the reported stats cascade through events and branches and additionally some missed bits of code are refactored/removed. #Branch UE4 #Proj BlueprintProfiler #info Whilst looking into this I spotted the reason why the stats seem so erratic, There appears to be an issue with FText's use of EXPERIMENTAL_TEXT_FAST_DECIMAL_FORMAT which I have reported, but ideally disable this locally until a fix is integrated. Change 2724723 on 2015/10/12 by Maciej.Mroz Constructor of a dynamic class creates CDO. #codereview Robert.Manuszewski Change 2725108 on 2015/10/12 by Mike.Beach [UE-21891] Minor fix to the array shuffle() function; now processes the last entry like all the others. Change 2726358 on 2015/10/13 by Maciej.Mroz UDataTable is properly saved even if its RowStruct is null. https://udn.unrealengine.com/questions/264064/crash-using-hotreload-in-custom-datatable-cdo-clas.html Change 2727395 on 2015/10/13 by Mike.Beach (WIP) Second pass on the Blueprint conversion pipeline; setting it up for more optimal (speedier) performance. * Using stubs for replacements (rather than loading dynamic replacement). * Giving the cook commandlet more control (so a conversion could be ran directly). * Now logging replacements by old object path (to account for UPackage replacement queries). * Fix for [UE-21947], unshelved from CL 2724944 (by Maciej.Mroz). #codereview Maciej.Mroz Change 2727484 on 2015/10/13 by Mike.Beach [UE-22008] Fixing up comment/tooltip typo for UActorComponent::bAutoActivate. Change 2727527 on 2015/10/13 by Mike.Beach Downgrading an inactionable EdGraph warning, while adding more info so we could possibly determine what's happening. Change 2727702 on 2015/10/13 by Dan.Oconnor Fix for crash in UDelegateProperty::GetCPPType when called on a function with no OwnerClass (events) Change 2727968 on 2015/10/14 by Maciej.Mroz Since ConstructorHelpers::FClassFinder is usually static, the loaded class should be in root set, to prevent the pointer stored in ConstructorHelpers::FClassFinder from being obsolete. FindOrLoadClass behaves now like FindOrLoadObject. #codereview Robert.Manuszewski, Nick.Whiting Change 2728139 on 2015/10/14 by Phillip.Kavan
2015-11-25 18:47:20 -05:00
switch (EventType)
{
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3080732) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3058607 on 2016/07/20 by Mike.Beach Preventing a uneeded FStructOnScope allocation from happening - was causing issues with the memstomp allocator (internally, FStructOnScope was allocating mem of zero size and then asserting on the returned pointer). Change 3059586 on 2016/07/21 by Maciej.Mroz Added comments Change 3061614 on 2016/07/22 by Ben.Cosh Fix for a bug in the blueprint profiler tunnel mapping code that caused asserts when internal pure tunnel pins were linked to each other as pass thru. #Jira UE-33654 - Editor crash on compilation when feeding impure data to macros implemented via blueprint while profiling is enabled #Jira UE-33138 - BP Profiler: crash when trying to set child actor in profiler #Proj BlueprintProfiler Change 3061686 on 2016/07/22 by Mike.Beach Keeping cyclically dependent Blueprints from infinitely trying to recompile each other, when both have an unrelated error that will not be resolved by compiling the other. Change 3061760 on 2016/07/22 by Ben.Cosh Minor refactor of the delegate event code in the profiler to fix some stubborn issues. #Jira UE-33466 - Key events still have problems with recording event stats correctly #Proj BlueprintProfiler, Kismet Change 3061819 on 2016/07/22 by Maciej.Mroz #jira UE-26676 Blueprint native events give error when output ref params aren't in a specific order Force a overriden function to have the same parameter's order as the original one. Change 3061854 on 2016/07/22 by Bob.Tellez Duplicate CL#3058653 //Fortnite/Main #UE4 Now actually removing deprecated pins from non-blueprint graphs. Also MarkPendingKill now happens in UEdGraphNode's BeginDestroy instead of its destructor to ensure supporting code can safely access references to other UObjects. Change 3062634 on 2016/07/23 by Mike.Beach Accounting for EditablePinBase nodes whose UserDefinedPins have the wrong direction assigned to them (we now validate the direction, and expect it to reflect the EdGraphPin's). We already had made this fixup in CustomEvent nodes, but others (like collapsed tunnels, and math expression nodes) needed the fixup as well. Change 3062926 on 2016/07/25 by Ben.Cosh Added functionality to the blueprint compiler to detect local event function calls and handle them better in profiling conditions. #Jira UE-32869 - Nodes called after a custom event call do not record stats in the profiler #Proj CoreUObject, BlueprintProfiler, UnrealEd, KismetCompiler, BlueprintGraph - Added script emitted inline event start/stop calls for inline events so we can pull out and process these events discretely - Looked into adding something similar for all events but couldn't find a good place to put it/get it operational so it caught more standard events. Change 3063406 on 2016/07/25 by Ben.Cosh Modifying the execution graph selection highlight coloring. #Jira none #Proj EditorStyle Change 3063505 on 2016/07/25 by Ben.Cosh The blueprint profiler tunnel mapping was missing a call seek past reroute nodes #Jira UE-33670 - Reroute nodes used in 'for' loops break profiler communication #Proj BlueprintProfiler Change 3063508 on 2016/07/25 by Ben.Cosh Fixed a minor bug in the stat creation code that reported tunnel pure timings twice. #Jira UE-33707 - BP Profiler - Pure nodes internal to macro reported twice in tree view #Proj Kismet Change 3063511 on 2016/07/25 by Ben.Cosh Fix for a bug introduced that caused pie instances to mapped twice in the blueprint profiler. #Jira UE-33697 - BP Profiler: Extra instance showing up in the tree view #Proj BlueprintProfiler Change 3063627 on 2016/07/25 by Maciej.Mroz #jira UE-33027 Crash when implementing interface to child blueprint and then implementing it with parent blueprint Removed premature validation. Change 3064349 on 2016/07/26 by Maciej.Mroz #jira UE-32942 BP Nativization: Reduce the size of executable files Enabled and fixed local variables on event graph. Local variable can be only created as return value (so we're sure it doesn't require any resistency between calls.) It reduces size of executable file (2MB in Orion.exe dev config). It reduces number of member variables in nativized class (local varaibles in functions are not uproperties, so the number of generated of objects decreases). Change 3064788 on 2016/07/26 by Ryan.Rauschkolb Fixed Splitting a Rotation input struct pin results in any previously entered values shifting to a different axis #UE-31931 Change 3064828 on 2016/07/26 by Ryan.Rauschkolb Removed flag to disable Single Layout Blueprint Editor (no longer experimental feature) #jira UE-32038 Change 3064966 on 2016/07/26 by Ryan.Rauschkolb Fixed Comment bubbles don't handle widget visibility correctly #UE-21278 Change 3068095 on 2016/07/28 by Maciej.Mroz #jira UE-32942 BP Nativization: Reduce the size of executable files Private and protected properties have PrivatePropertyOffset (PPO) function in .generated.h. This function allows the nativized code to access the property without using UProperty. -It reduces the size of executable file (added by nativized plugin) about 10%. The OrionGame.exe (development config) is 6MB smaller. -It reduces the number of FindField function calls and stativ variables in the nativized code. List of inaccessible properties (that cannot be accessed using PPO) is logged while cooking (with nativization enabled). Change 3068122 on 2016/07/28 by Maciej.Mroz #jira UE-32942 BP Nativization: Reduce the size of executable files Hardcoded asset paths are split, so string literals can be better reused. Added UDynamicClass::FindStructPropertyChecked. It replaces FindFieldChecked<UStructProperty>, without inlining, and implicit FName constructor. It reduced the size of OrionGame.exe 1MB. Change 3068159 on 2016/07/28 by Maciej.Mroz #jira UE-32806 GitHub 2569 : Exposed GetComponentByClass to blueprint #2569: Exposed GetComponentByClass to blueprint (Contributed by Koderz) Change 3069715 on 2016/07/29 by Maciej.Mroz #jira UE-33460 [CrashReport] UE4Editor_CoreUObject!UObjectPropertyBase::ParseObjectPropertyValue() [propertybaseobject.cpp:237] UObjectPropertyBase::ParseObjectPropertyValue won;t crash when property is invalid. Property validation in UserDefinedStruct. THe struct is not recompiled on load, so it must be validated after serialization. Change 3070569 on 2016/07/29 by Bob.Tellez Duplicating CL#3070518 from //Fortnite/Main #UE4 Deprecated pin removal logic is now exclusively in UEdGraphNode::PostLoad. DeprecatedPinWatches fixup is now done in K2Node::PostLoad. Change 3071292 on 2016/07/30 by Mike.Beach Preventing the Blueprint reinstancer's Function/PropertyMap from being GC'd during compile. This was causing issues where new functions/properties were being allocated in the same pointer location, and UpdateBytecodeReferences() was replacing those references as well (specifically in unrelated class's Children->Next chain, linking in functions/properties that did not belong to that class). This was causing a multitude of problems (mainly bad property offset read/writes and endless field iterator loops). #jira UE-29631 Change 3072078 on 2016/08/01 by Maciej.Mroz #jira UE-33423, UE-33860 Removed too strint ensures. Fixed FGraphObjectTextFactory - After Custom Event nodes are pased, Skel Class is recompiled, because other pasted nodes may require its signature. Change 3072166 on 2016/08/01 by Dan.Oconnor PR #2589: fix EaseIn / EaseOut descriptions (Contributed by dsine-de) #jira UE-32997 Change 3072614 on 2016/08/01 by Mike.Beach Fixing an issue where hot-reloading a Blueprint parent class was not reinstancing skeleton CDOs. This caused problems later where the skel class layout didn't reflect the CDO object. #jira UE-29613 #codreview Maciej.Mroz, Phillip.Kavan Change 3073939 on 2016/08/02 by Dan.Oconnor Final fix for function graphs that cannot be deleted (bAllowDeletion erroneously set to false). Issue only manifests with assets created before 4.11, as the original bug was fixed in 2842578 #jira UE-19062 Change 3075793 on 2016/08/03 by Maciej.Mroz #jira UE-30473 Moving child component in child blueprint forces parent to become dirty Don't make parent BP package dirty, when a component in child BP was modified. Change 3076990 on 2016/08/04 by Ben.Cosh This fixes issues with mapping tunnel boundary pure nodes and addresses some asserts recently introduced. #Jira UE-33691 - Assert when compiling Blueprint with profiler instrumentation #Jira UE-33138 - BP Profiler: crash when trying to set child actor in profiler #Jira UE-33654 - Editor crash on compilation when feeding impure data to macros implemented via blueprint while profiling is enabled #Proj Kismet, BlueprintProfiler, BlueprintGraph - Fixed inline event detection ( it was causing function stats to fail, happened across it ) - Updated pure node lookup to use the entry pin, this was required because pure nodes span function contexts and lookup is a problem in nested tunnels. - Updated tunnel pure node code, added a stubbed pure chain early on external pure links add this and it maps at an appropriate time. - Changed the way nested tunnels are mapped, now only top level tunnels are gathered mapping the blueprint and these map nested tunnels and register them. - Updated pure node stat refreshes and heat level updates ( this was causing a bunch of extra cost with my changes ) - Fixed an issue with script perf data that caused nan's with no samples. - Updated pure node playback to cache pure nodes and avoid a second involved lookup when applying timings. - Renamed FScriptExecutionPureNode to FScriptExecutionPureChainNode to better reflect it's updated role. - Added extra editor stat collection for checking the cost breakdown of the profiler ( hottest path and heat level calcs now have discreet timings ) Change 3079235 on 2016/08/05 by Phillip.Kavan Fix for a bug in pi to pure node lookup functionality that caused pure nodes to be mapped more than once. #Jira UE-34254 - Crash compiling blueprint with instrumentation - !ScriptExecNode.IsValid() #Proj BlueprintProfiler, Kismet - Fixed the code to focus observed pins - Fixed event pin mapping code that was failing when linked directly to a tunnel node. Note: Submitting on behalf of BenC (per MikeB). Change 3080417 on 2016/08/08 by Ben.Cosh This fixes the way execution path stats are calculated. #Jira UE-34150 - Exec pin containers in the profiler are accumulating time incorrectly. #Proj Kismet Change 3080484 on 2016/08/08 by Maciej.Mroz #jira UE-28625 Direction of GetOverlapInfos parameter doesn't match Change 3080571 on 2016/08/08 by Ben.Cosh This addresses some flaws in the fix submitted in CL 3080417 that were discovered after submission. #Jira UE-34150 - Exec pin containers in the profiler are accumulating time incorrectly. #Proj Kismet [CL 3080751 by Mike Beach in Main branch]
2016-08-08 11:42:16 -04:00
case EScriptInstrumentation::InlineEvent:
Ar.Logf(TEXT("%s $%X: .. instrumented inline event .."), *Indents, (int32)Opcode);
break;
case EScriptInstrumentation::Stop:
Ar.Logf(TEXT("%s $%X: .. instrumented event stop .."), *Indents, (int32)Opcode);
break;
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2842642 on 2016/01/25 by Maciej.Mroz Blueprint C++ Conversion: fixed dependency (headers) list builder Change 2842648 on 2016/01/25 by Maciej.Mroz AssetPtr has implicit constructor from StringReference Change 2842652 on 2016/01/25 by Maciej.Mroz Minor improvements in Orion headers. Necessary to compile the project with converted Blueprints Change 2842653 on 2016/01/25 by Maciej.Mroz Blueprint C++ Conversion: Split UberGraph into subfunctions Change 2843917 on 2016/01/26 by Michael.Schoell Replacing variable nodes with other variable nodes will now correctly mark the Blueprint as structurally modified. #jira UE-24925 - Using "Replace variable with..." does not mark a blueprint as needing compilation Change 2844300 on 2016/01/26 by Maciej.Mroz Blueprint C++ Conversion: improvements in constructor - UProperties for inaccessigle variables are reused - Arrays of structs use "StaticStruct()->InitializeStruct.." and diff-serialization. Change 2845536 on 2016/01/27 by Ben.Cosh Refactor of the Blueprint Profiler core to enable execution wire heatmaps. Still to do: - Sequence node handling - spotted as a bug last minute - Some functions still require a refactor, I'll pick this is up in next changes - Alternative statistic display widgets - enable blueprint breakpoints when profiling?! not sure we want this but adding for visibility Change 2845619 on 2016/01/27 by Michael.Schoell BP-Version bump to resolve TODO in K2Node_Event. Change 2845824 on 2016/01/27 by Michael.Schoell BP-Version bump to resolve TODO in K2Node_FunctionEntry. Change 2847390 on 2016/01/28 by Maciej.Mroz AssetPtr constructor from StringReference in explicit Change 2847894 on 2016/01/28 by Maciej.Mroz Blueprint C++ Conversion: Fixed pathologically included headers. Change 2848662 on 2016/01/29 by Ben.Cosh Fix for problems closing the blueprint editor introduced with CL 2845536 #UE-26153 - Unable to open the same blueprint after closing blueprint editor. #UE-26090 - Crash when closing the editor with the blueprint editor open Change 2848922 on 2016/01/29 by Maciej.Mroz Blueprint C++ Conversion: Removed unnecessary switch and StateStack in ubergraph subfunctions Change 2848934 on 2016/01/29 by Maciej.Mroz FEnumEditorUtils::EnsureAllDisplayNamesExist modifies UUserDefinedEnum::DisplayNames only when it's necessary It should fix the "Saving FText XXX which has been initialized from FString at cook time " warning Change 2849251 on 2016/01/29 by Michael.Schoell Fixed issues with the "Set Members..." node for structs not providing modified literals and other by-value data in the output connection. Reworked the compiler to handle terms with bPassedByReference in new ways. Variables will always mark their terms as bPassedByReference and the "Set Members..." node will leverage the value to know whether it needs to create a local output variable on the node or forward the reference. Break nodes will adapt their output terms to reflect the state of the input term, effectively forwarding the bPassedByReference state. #jira UE-24451 - "Set Members..." node does not return by-ref as expected when the input pin is connected to a literal (or otherwise truly by-value) pin. Change 2849263 on 2016/01/29 by Michael.Schoell Submit for missing file from CL# 2849251 Change 2849269 on 2016/01/29 by Michael.Schoell Improvements to localization support in SBlueprintPalette (items in the MyBlueprint window as well as the BP context menu when selecting nodes). Change 2849925 on 2016/01/29 by Mike.Beach Hanlding deferred loading placeholder-classes in UObjectPropertyBase::CheckValidObject (considering placeholder objects valid, when loading with deferring is enabled). Change 2850484 on 2016/01/31 by Maciej.Mroz Fixed crash when converting Widget Blueprint Change 2850485 on 2016/01/31 by Maciej.Mroz Blueprint C++ Conversion: KCST_UnconditionalGoto requires switch, when it's generated by UK2Node_ExecutionSequence Change 2850859 on 2016/02/01 by Ben.Cosh Fix for issue with debug instance filter causing an out of bounds access on the debug function stack array. #UE-25552 - Debugging specific instances of Fortnite's player pawn generic bp causes crashes #Proj UnrealEd Change 2850997 on 2016/02/01 by Maciej.Mroz Blueprint C++ Conversion: Fixed a lot of errors caused by cl#2842642 Change 2851965 on 2016/02/01 by Mike.Beach Preventing pin watches from saving/retaining old split pins that have since been deleted (recombine). #jira UE-26299 [CL 2865780 by Mike Beach in Main branch]
2016-02-12 17:00:45 -05:00
case EScriptInstrumentation::PureNodeEntry:
Ar.Logf(TEXT("%s $%X: .. instrumented pure node entry site .."), *Indents, (int32)Opcode);
break;
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 2967759) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2919729 on 2016/03/23 by Ben.Cosh Support for macros in the profiler #UEBP-177 - Macro instance handling #Proj Kismet, BlueprintProfiler - Adds support for timings inside macro calls - Extends the tunnel graph support to handle multiple entry/exit sites Change 2938064 on 2016/04/08 by Phillip.Kavan [UE-17794] The "Delete Unused Variable" feature now considers the GetClassDefaults node as well. change summary: - added external linkage to UK2Node_GetClassDefaults::FindClassPin(). - added an include for the K2Node_GetClassDefaults header file to BlueprintGraphDefinitions.h. - added UK2Node_GetClassDefaults::GetInputClass() as a public API w/ external linkage; moved default 'nullptr' param logic into this impl. - modified FBlueprintEditorUtils::IsVariableUsed() to add an extra check for a GetClassDefaults node with a visible output pin for the variable that's also connected. - modified UK2Node_GetClassDefaults::GetInputClass() to return the generated skeleton class for Blueprint class types. Change 2938088 on 2016/04/08 by Mike.Beach Making bytecode produced by latent action nodes deterministic. Change 2938101 on 2016/04/08 by Mike.Beach Fixing a bug where the compile summary was not being reported because another compiler log was lingering - making it so the MathExpression node compiler log is not initialized with intent to report its own summary (it gets folded into the primary log). Change 2938121 on 2016/04/08 by Phillip.Kavan Remove a few redundant MBASM calls on variable type change. Change 2940295 on 2016/04/11 by Dan.Oconnor We now 'tag subobjects' of a blueprint even if it's part of the rootset, this means we correctly detect references to the BPGC in FPendingDelete::CheckForReferences(). Original rootset check dates to 2012 and I can find no justification for it currently. #jira UE-29216 Change 2943227 on 2016/04/13 by Dan.Oconnor Fixed improper detection of functions from interfaces that themselves inherit from some other interface #jira UE-29440 Change 2944270 on 2016/04/14 by Phillip.Kavan [UEBP-176] First pass at BP graph node heat map visualization while profiling. change summary: - added an "indicator overlay" to graph node widget layouts - added a heat mode "mode" selector widget to the BP profiler view panel - extended IBlueprintProfilerInterface to include APIs for accessing current heat map mode state - added FScriptNodePerfData::GetBlueprintPerfDataForAllTracePaths() (tentative - may need revisiting) - added SGraphNode::GetNodeIndicatorOverlayColor() and GetNodeIndicatorOverlayVisibility() delegates - added BP-specific delegate overrides to SGraphNodeK2Base; extended to include both compact and variable nodes Change 2946932 on 2016/04/18 by Mike.Beach Guarding against invalid EdGraphPins (ones that have been moved to the transient package) when constructing the widget - prevents a crash that we've been unable to repro or determine the cause of (turns it instead into an ensure, so we can collect more contextual information on the issue). #jira UE-26998 Change 2949968 on 2016/04/20 by Dan.Oconnor Array access out of bounds by value is a warning again, added ability to elevate individual warnings on a per project basis (or supress them) #jira UE-28971 Change 2950113 on 2016/04/20 by Dan.Oconnor Removed GBlueprintCompileTime, it was not accurate. Printing BlueprintCompileAndLoadTimerData.GetTime() at start instead Change 2951086 on 2016/04/21 by Ben.Cosh This change addresses the edge case in the blueprint profiler that caused stats to fail when tunnel nodes were linked through to other tunnel nodes. #jira UE-28750 - Crash compiling a Blueprint that contains a For Loop with profiler active #Proj Kismet, BlueprintProfiler Change 2951336 on 2016/04/21 by Ben.Cosh This change enables blueprint breakpoints during instrumented conditions. #jira UEBP-178 - Fix breakpoints under profiling conditions #Proj CoreUObject, BlueprintProfiler, UnrealEd, KismetCompiler Change 2951406 on 2016/04/21 by Ben.Cosh Fix for blueprint profiler stats for the top level blueprint stat entry not updating correctly. #Proj Kismet Change 2951832 on 2016/04/21 by Ben.Cosh Fix for certain blueprint profiler stats not being updated and collected at the blueprint container level due to incorrect tracepaths. #Proj Kismet #info This should fix the node heatmaps as a side effect. #Codereview Phillip.Kavan Change 2956696 on 2016/04/26 by Dan.Oconnor Tweak fix for macros being BS_Dirty after loading. The current fix had the side effect of not recompiling clients of the macro after making a change to the macro and entering PIE #jira UE-29495 Change 2957564 on 2016/04/27 by Maciej.Mroz Various fixes related to nativized enums. #jira UE-27735 Enumerators are not set correctly in packaged games if Nativize Blueprint Assets is set to true Change 2961626 on 2016/04/29 by Mike.Beach Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints) Change 2962747 on 2016/05/02 by Maciej.Mroz #jira UE-30123 Cannot use abilities in nativized Orion build GameplayAbility handles BPGC and DynamicClass the same way. C++ backend do not assumes that some literal objects are UserDefinesEnum/UserDefinedStruct/BlueprintGeneratedClass. Change 2965679 on 2016/05/04 by Maciej.Mroz Increased stack size (384k) of threads spawned by Task Graph. (Temporary?) fix for stack overflow, when amination in Orion are evaluated. Change 2965758 on 2016/05/04 by Maciej.Mroz #jira UE-30300 "ReturnToBase" ability does not work in nativized Orion. Fixed CDO creation in async loaded Dynamic Class. Fixed too restrict cast assertions. Change 2966543 on 2016/05/04 by Maciej.Mroz #jira UE-30235 Mac QAGame fails to package with nativization #jira UE-30282 Match3 nativized android package fails to build Change 2966839 on 2016/05/04 by Dan.Oconnor Typo IMPLEMENT_MODULE creates weird linking error, also may need entry in Target.cs to get BlueprintRuntime to build. Copying that pattern from ___LoadingScreen modules #jira UE-30333 Change 2967347 on 2016/05/05 by Maciej.Mroz #jira UE-30196 Unable to package a copy of project with Nativize Blueprints enabled CommandUtils.GetDirectoryName should not be used with directory path (but only with file path), because it cannot handle paths like "e:\My11Project 4.13" (containing '.'). It seems useless with directory path anyway. [CL 2968184 by Dan Oconnor in Main branch]
2016-05-05 18:28:40 -04:00
case EScriptInstrumentation::NodeDebugSite:
Ar.Logf(TEXT("%s $%X: .. instrumented debug site .."), *Indents, (int32)Opcode);
break;
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) @ 2781164 #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2716841 on 2015/10/05 by Mike.Beach (WIP) Cleaning up how we setup script assets for replacement on cook (aligning more with the Blueprint conversion tool). #codereview Maciej.Mroz Change 2719089 on 2015/10/07 by Maciej.Mroz ToValidCPPIdentifierChars handles propertly '?' char. #codereview Dan.Oconnor Change 2719361 on 2015/10/07 by Maciej.Mroz Generated native code for AnimBPGC - some preliminary changes. Refactor: UAnimBlueprintGeneratedClass is not accessed directly in runtime. It is accessed via UAnimClassInterface interface. Properties USkeletalMeshComponent::AnimBlueprintGeneratedClass and UInterpTrackFloatAnimBPParam::AnimBlueprintClass were changed into "TSubclassOf<UAnimInstance> AnimClass" The UDynamicClass also can deliver the IAnimClassInterface interface. See UAnimClassData, IAnimClassInterface::GetFromClass and UDynamicClass::AnimClassImplementation. #codereview Lina.Halper, Thomas.Sarkanen Change 2719383 on 2015/10/07 by Maciej.Mroz Debug-only code removed Change 2720528 on 2015/10/07 by Dan.Oconnor Fix for determinsitc cooking of async tasks and load asset nodes #codereview Mike.Beach, Maciej.Mroz Change 2721273 on 2015/10/08 by Maciej.Mroz Blueprint Compiler Cpp Backend - Anim Blueprints can be converted - Various fixes/improvements Change 2721310 on 2015/10/08 by Maciej.Mroz refactor (cl#2719361) - no "auto" keyword Change 2721727 on 2015/10/08 by Mike.Beach (WIP) Setup the cook commandlet so it handles converted assets, replacing them with generated classes. - Refactored the conversion manifest (using a map over an array) - Centralized destination paths into a helper struct (for the manifest) - Generating an Editor module that automatically hooks into the cook process when enabled - Loading and applying native replacments for the cook Change 2723276 on 2015/10/09 by Michael.Schoell Blueprints duplicated for PIE will no longer register as dependencies to other Blueprint. #jira UE-16695 - Editor freezes then crashes while attempting to save during PIE #jira UE-21614 - [CrashReport] Crash while saving during PIE - FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:736 Change 2724345 on 2015/10/11 by Ben.Cosh Blueprint profiler at first pass, this includes the ability to instrument specific blueprints with realtime editor stat display. #UEBP-21 - Profiling data capture and storage #UEBP-13 - Performance capture landing page #Branch UE4 #Proj BlueprintProfiler, BlueprintGraph, EditorStyle, Kismet, UnrealEd, CoreUObject, Engine Change 2724613 on 2015/10/12 by Ben.Cosh Incremental update for blueprint profiler to fix the way some of the reported stats cascade through events and branches and additionally some missed bits of code are refactored/removed. #Branch UE4 #Proj BlueprintProfiler #info Whilst looking into this I spotted the reason why the stats seem so erratic, There appears to be an issue with FText's use of EXPERIMENTAL_TEXT_FAST_DECIMAL_FORMAT which I have reported, but ideally disable this locally until a fix is integrated. Change 2724723 on 2015/10/12 by Maciej.Mroz Constructor of a dynamic class creates CDO. #codereview Robert.Manuszewski Change 2725108 on 2015/10/12 by Mike.Beach [UE-21891] Minor fix to the array shuffle() function; now processes the last entry like all the others. Change 2726358 on 2015/10/13 by Maciej.Mroz UDataTable is properly saved even if its RowStruct is null. https://udn.unrealengine.com/questions/264064/crash-using-hotreload-in-custom-datatable-cdo-clas.html Change 2727395 on 2015/10/13 by Mike.Beach (WIP) Second pass on the Blueprint conversion pipeline; setting it up for more optimal (speedier) performance. * Using stubs for replacements (rather than loading dynamic replacement). * Giving the cook commandlet more control (so a conversion could be ran directly). * Now logging replacements by old object path (to account for UPackage replacement queries). * Fix for [UE-21947], unshelved from CL 2724944 (by Maciej.Mroz). #codereview Maciej.Mroz Change 2727484 on 2015/10/13 by Mike.Beach [UE-22008] Fixing up comment/tooltip typo for UActorComponent::bAutoActivate. Change 2727527 on 2015/10/13 by Mike.Beach Downgrading an inactionable EdGraph warning, while adding more info so we could possibly determine what's happening. Change 2727702 on 2015/10/13 by Dan.Oconnor Fix for crash in UDelegateProperty::GetCPPType when called on a function with no OwnerClass (events) Change 2727968 on 2015/10/14 by Maciej.Mroz Since ConstructorHelpers::FClassFinder is usually static, the loaded class should be in root set, to prevent the pointer stored in ConstructorHelpers::FClassFinder from being obsolete. FindOrLoadClass behaves now like FindOrLoadObject. #codereview Robert.Manuszewski, Nick.Whiting Change 2728139 on 2015/10/14 by Phillip.Kavan
2015-11-25 18:47:20 -05:00
case EScriptInstrumentation::NodeEntry:
Ar.Logf(TEXT("%s $%X: .. instrumented wire entry site .."), *Indents, (int32)Opcode);
break;
case EScriptInstrumentation::NodeExit:
Ar.Logf(TEXT("%s $%X: .. instrumented wire exit site .."), *Indents, (int32)Opcode);
break;
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2865817 on 2016/02/12 by Mike.Beach Handling deferred (cyclic) dependency issues that arrise from imports not found within the linker's ImportMap (imports loaded from config files and UProperty::ImportText). #jira UE-26756 #codereview Robert.Manuszewski Change 2866282 on 2016/02/13 by Maciej.Mroz Blueprint C++ Conversion: - Added CustomDynamicClassInitialization meta data and function - References to other converted fields are gathered before CDO is created (it solves many dependencies) #codereview Robert.Manuszewski Change 2867921 on 2016/02/15 by Mike.Beach Fixing (CIS error) typo - Accidently assigning uninitialized variable to itself. Change 2867970 on 2016/02/15 by Mike.Beach Removing "static" keyword on template specializations (CIS error). Change 2868401 on 2016/02/16 by Maciej.Mroz TBaseStructure for more noexport structures Change 2868404 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: - Fixed some issues related to NOEXPORT structures - Added FEmitDefaultValueHelper::SpecialStructureConstructor Change 2868461 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: - Fixed component initialization in actors, based on a DynamicClass Change 2868481 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: (Work in progress.) In BPGC templates cor SCS components are owned by the class. In DynamicClass the templates are owned by CDO. It requires to update the import path, when a component template is referenced by an extern object. #codereview Robert.Manuszewski, Dan.Oconnor Change 2868769 on 2016/02/16 by Maciej.Mroz Improved parsing for multi-parameter AutoCreateRefTerm meta data Change 2870310 on 2016/02/17 by Ben.Cosh Incremental refactor and update for the blueprint profiler. - Shuffled files around and renamed to make the layout more informational - Added profiler capture and playback contexts - Added blueprint and function contexts, this enables rapid stat discards in situations such as blueprint compilation. - Moved the blueprint execution mapping out of the profiler and into the blueprint contexts - Refactored the event playback so it processes with one event at a time. #CodeReview Phillip.Kavan Change 2870386 on 2016/02/17 by Maciej.Mroz Improved UProperty::ExportCppDeclaration - Const reference to a pointer should be: "Type* const &" , not "const Type* &". #codereview Steve.Robb Change 2870686 on 2016/02/17 by Nick.Whiting Engine changes needed for Bullet Train compatibility: - Adding BP-exposed GetClosestBone function, with ability to optionally filter only bones associated with physics assets - Exposing GetRemoteRole to BPs Change 2871419 on 2016/02/17 by Mike.Beach Fixing CIS incude error. #codereview Ben.Cosh Change 2872190 on 2016/02/18 by Mike.Beach Another CIS fix - forward declaring a class that wasn't included. #codereview Ben.Cosh Change 2872285 on 2016/02/18 by Maciej.Mroz added bDontNativizeDataOnlyBP in Editor.ini Change 2872826 on 2016/02/18 by Ben.Cosh CIS fixes for mac builds #codereview Dan.Oconnor, Mike.Beach Change 2874284 on 2016/02/19 by Mike.Beach Supporting nested struct properties that are filled out through text imports during deferred dependency loading. #codereview Robert.Manuszewski Change 2874299 on 2016/02/19 by Mike.Beach CIS fix - macro typo in non-debug build. Change 2875571 on 2016/02/22 by Maciej.Mroz Blueprint C++ Conversion: Fixed generated FCompiledInDeferStruct instance for nativized structs. It has a proper overriden name. Change 2875574 on 2016/02/22 by Maciej.Mroz Blueprint C++ Conversion: Class type of unconverted asset is not replaced in import map while cooking. Change 2875741 on 2016/02/22 by Michael.Schoell Array Item Get nodes now return by-ref. All use cases of the node, as well as use cases of ForEachLoop and ForEachLoopWithBreaks, have been updated to use a Copy node on the output to maintain any existing functionality. [CL 2884111 by Mike Beach in Main branch]
2016-02-26 16:58:26 -05:00
case EScriptInstrumentation::PushState:
Ar.Logf(TEXT("%s $%X: .. push execution state .."), *Indents, (int32)Opcode);
break;
case EScriptInstrumentation::RestoreState:
Ar.Logf(TEXT("%s $%X: .. restore execution state .."), *Indents, (int32)Opcode);
break;
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 2967759) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2919729 on 2016/03/23 by Ben.Cosh Support for macros in the profiler #UEBP-177 - Macro instance handling #Proj Kismet, BlueprintProfiler - Adds support for timings inside macro calls - Extends the tunnel graph support to handle multiple entry/exit sites Change 2938064 on 2016/04/08 by Phillip.Kavan [UE-17794] The "Delete Unused Variable" feature now considers the GetClassDefaults node as well. change summary: - added external linkage to UK2Node_GetClassDefaults::FindClassPin(). - added an include for the K2Node_GetClassDefaults header file to BlueprintGraphDefinitions.h. - added UK2Node_GetClassDefaults::GetInputClass() as a public API w/ external linkage; moved default 'nullptr' param logic into this impl. - modified FBlueprintEditorUtils::IsVariableUsed() to add an extra check for a GetClassDefaults node with a visible output pin for the variable that's also connected. - modified UK2Node_GetClassDefaults::GetInputClass() to return the generated skeleton class for Blueprint class types. Change 2938088 on 2016/04/08 by Mike.Beach Making bytecode produced by latent action nodes deterministic. Change 2938101 on 2016/04/08 by Mike.Beach Fixing a bug where the compile summary was not being reported because another compiler log was lingering - making it so the MathExpression node compiler log is not initialized with intent to report its own summary (it gets folded into the primary log). Change 2938121 on 2016/04/08 by Phillip.Kavan Remove a few redundant MBASM calls on variable type change. Change 2940295 on 2016/04/11 by Dan.Oconnor We now 'tag subobjects' of a blueprint even if it's part of the rootset, this means we correctly detect references to the BPGC in FPendingDelete::CheckForReferences(). Original rootset check dates to 2012 and I can find no justification for it currently. #jira UE-29216 Change 2943227 on 2016/04/13 by Dan.Oconnor Fixed improper detection of functions from interfaces that themselves inherit from some other interface #jira UE-29440 Change 2944270 on 2016/04/14 by Phillip.Kavan [UEBP-176] First pass at BP graph node heat map visualization while profiling. change summary: - added an "indicator overlay" to graph node widget layouts - added a heat mode "mode" selector widget to the BP profiler view panel - extended IBlueprintProfilerInterface to include APIs for accessing current heat map mode state - added FScriptNodePerfData::GetBlueprintPerfDataForAllTracePaths() (tentative - may need revisiting) - added SGraphNode::GetNodeIndicatorOverlayColor() and GetNodeIndicatorOverlayVisibility() delegates - added BP-specific delegate overrides to SGraphNodeK2Base; extended to include both compact and variable nodes Change 2946932 on 2016/04/18 by Mike.Beach Guarding against invalid EdGraphPins (ones that have been moved to the transient package) when constructing the widget - prevents a crash that we've been unable to repro or determine the cause of (turns it instead into an ensure, so we can collect more contextual information on the issue). #jira UE-26998 Change 2949968 on 2016/04/20 by Dan.Oconnor Array access out of bounds by value is a warning again, added ability to elevate individual warnings on a per project basis (or supress them) #jira UE-28971 Change 2950113 on 2016/04/20 by Dan.Oconnor Removed GBlueprintCompileTime, it was not accurate. Printing BlueprintCompileAndLoadTimerData.GetTime() at start instead Change 2951086 on 2016/04/21 by Ben.Cosh This change addresses the edge case in the blueprint profiler that caused stats to fail when tunnel nodes were linked through to other tunnel nodes. #jira UE-28750 - Crash compiling a Blueprint that contains a For Loop with profiler active #Proj Kismet, BlueprintProfiler Change 2951336 on 2016/04/21 by Ben.Cosh This change enables blueprint breakpoints during instrumented conditions. #jira UEBP-178 - Fix breakpoints under profiling conditions #Proj CoreUObject, BlueprintProfiler, UnrealEd, KismetCompiler Change 2951406 on 2016/04/21 by Ben.Cosh Fix for blueprint profiler stats for the top level blueprint stat entry not updating correctly. #Proj Kismet Change 2951832 on 2016/04/21 by Ben.Cosh Fix for certain blueprint profiler stats not being updated and collected at the blueprint container level due to incorrect tracepaths. #Proj Kismet #info This should fix the node heatmaps as a side effect. #Codereview Phillip.Kavan Change 2956696 on 2016/04/26 by Dan.Oconnor Tweak fix for macros being BS_Dirty after loading. The current fix had the side effect of not recompiling clients of the macro after making a change to the macro and entering PIE #jira UE-29495 Change 2957564 on 2016/04/27 by Maciej.Mroz Various fixes related to nativized enums. #jira UE-27735 Enumerators are not set correctly in packaged games if Nativize Blueprint Assets is set to true Change 2961626 on 2016/04/29 by Mike.Beach Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints) Change 2962747 on 2016/05/02 by Maciej.Mroz #jira UE-30123 Cannot use abilities in nativized Orion build GameplayAbility handles BPGC and DynamicClass the same way. C++ backend do not assumes that some literal objects are UserDefinesEnum/UserDefinedStruct/BlueprintGeneratedClass. Change 2965679 on 2016/05/04 by Maciej.Mroz Increased stack size (384k) of threads spawned by Task Graph. (Temporary?) fix for stack overflow, when amination in Orion are evaluated. Change 2965758 on 2016/05/04 by Maciej.Mroz #jira UE-30300 "ReturnToBase" ability does not work in nativized Orion. Fixed CDO creation in async loaded Dynamic Class. Fixed too restrict cast assertions. Change 2966543 on 2016/05/04 by Maciej.Mroz #jira UE-30235 Mac QAGame fails to package with nativization #jira UE-30282 Match3 nativized android package fails to build Change 2966839 on 2016/05/04 by Dan.Oconnor Typo IMPLEMENT_MODULE creates weird linking error, also may need entry in Target.cs to get BlueprintRuntime to build. Copying that pattern from ___LoadingScreen modules #jira UE-30333 Change 2967347 on 2016/05/05 by Maciej.Mroz #jira UE-30196 Unable to package a copy of project with Nativize Blueprints enabled CommandUtils.GetDirectoryName should not be used with directory path (but only with file path), because it cannot handle paths like "e:\My11Project 4.13" (containing '.'). It seems useless with directory path anyway. [CL 2968184 by Dan Oconnor in Main branch]
2016-05-05 18:28:40 -04:00
case EScriptInstrumentation::ResetState:
Ar.Logf(TEXT("%s $%X: .. reset execution state .."), *Indents, (int32)Opcode);
break;
case EScriptInstrumentation::SuspendState:
Ar.Logf(TEXT("%s $%X: .. suspend execution state .."), *Indents, (int32)Opcode);
break;
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2865817 on 2016/02/12 by Mike.Beach Handling deferred (cyclic) dependency issues that arrise from imports not found within the linker's ImportMap (imports loaded from config files and UProperty::ImportText). #jira UE-26756 #codereview Robert.Manuszewski Change 2866282 on 2016/02/13 by Maciej.Mroz Blueprint C++ Conversion: - Added CustomDynamicClassInitialization meta data and function - References to other converted fields are gathered before CDO is created (it solves many dependencies) #codereview Robert.Manuszewski Change 2867921 on 2016/02/15 by Mike.Beach Fixing (CIS error) typo - Accidently assigning uninitialized variable to itself. Change 2867970 on 2016/02/15 by Mike.Beach Removing "static" keyword on template specializations (CIS error). Change 2868401 on 2016/02/16 by Maciej.Mroz TBaseStructure for more noexport structures Change 2868404 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: - Fixed some issues related to NOEXPORT structures - Added FEmitDefaultValueHelper::SpecialStructureConstructor Change 2868461 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: - Fixed component initialization in actors, based on a DynamicClass Change 2868481 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: (Work in progress.) In BPGC templates cor SCS components are owned by the class. In DynamicClass the templates are owned by CDO. It requires to update the import path, when a component template is referenced by an extern object. #codereview Robert.Manuszewski, Dan.Oconnor Change 2868769 on 2016/02/16 by Maciej.Mroz Improved parsing for multi-parameter AutoCreateRefTerm meta data Change 2870310 on 2016/02/17 by Ben.Cosh Incremental refactor and update for the blueprint profiler. - Shuffled files around and renamed to make the layout more informational - Added profiler capture and playback contexts - Added blueprint and function contexts, this enables rapid stat discards in situations such as blueprint compilation. - Moved the blueprint execution mapping out of the profiler and into the blueprint contexts - Refactored the event playback so it processes with one event at a time. #CodeReview Phillip.Kavan Change 2870386 on 2016/02/17 by Maciej.Mroz Improved UProperty::ExportCppDeclaration - Const reference to a pointer should be: "Type* const &" , not "const Type* &". #codereview Steve.Robb Change 2870686 on 2016/02/17 by Nick.Whiting Engine changes needed for Bullet Train compatibility: - Adding BP-exposed GetClosestBone function, with ability to optionally filter only bones associated with physics assets - Exposing GetRemoteRole to BPs Change 2871419 on 2016/02/17 by Mike.Beach Fixing CIS incude error. #codereview Ben.Cosh Change 2872190 on 2016/02/18 by Mike.Beach Another CIS fix - forward declaring a class that wasn't included. #codereview Ben.Cosh Change 2872285 on 2016/02/18 by Maciej.Mroz added bDontNativizeDataOnlyBP in Editor.ini Change 2872826 on 2016/02/18 by Ben.Cosh CIS fixes for mac builds #codereview Dan.Oconnor, Mike.Beach Change 2874284 on 2016/02/19 by Mike.Beach Supporting nested struct properties that are filled out through text imports during deferred dependency loading. #codereview Robert.Manuszewski Change 2874299 on 2016/02/19 by Mike.Beach CIS fix - macro typo in non-debug build. Change 2875571 on 2016/02/22 by Maciej.Mroz Blueprint C++ Conversion: Fixed generated FCompiledInDeferStruct instance for nativized structs. It has a proper overriden name. Change 2875574 on 2016/02/22 by Maciej.Mroz Blueprint C++ Conversion: Class type of unconverted asset is not replaced in import map while cooking. Change 2875741 on 2016/02/22 by Michael.Schoell Array Item Get nodes now return by-ref. All use cases of the node, as well as use cases of ForEachLoop and ForEachLoopWithBreaks, have been updated to use a Copy node on the output to maintain any existing functionality. [CL 2884111 by Mike Beach in Main branch]
2016-02-26 16:58:26 -05:00
case EScriptInstrumentation::PopState:
Ar.Logf(TEXT("%s $%X: .. pop execution state .."), *Indents, (int32)Opcode);
break;
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3099612) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3061854 on 2016/07/22 by Bob.Tellez Duplicate CL#3058653 //Fortnite/Main #UE4 Now actually removing deprecated pins from non-blueprint graphs. Also MarkPendingKill now happens in UEdGraphNode's BeginDestroy instead of its destructor to ensure supporting code can safely access references to other UObjects. Change 3068095 on 2016/07/28 by Maciej.Mroz #jira UE-32942 BP Nativization: Reduce the size of executable files Private and protected properties have PrivatePropertyOffset (PPO) function in .generated.h. This function allows the nativized code to access the property without using UProperty. -It reduces the size of executable file (added by nativized plugin) about 10%. The OrionGame.exe (development config) is 6MB smaller. -It reduces the number of FindField function calls and stativ variables in the nativized code. List of inaccessible properties (that cannot be accessed using PPO) is logged while cooking (with nativization enabled). Change 3070569 on 2016/07/29 by Bob.Tellez Duplicating CL#3070518 from //Fortnite/Main #UE4 Deprecated pin removal logic is now exclusively in UEdGraphNode::PostLoad. DeprecatedPinWatches fixup is now done in K2Node::PostLoad. Change 3081792 on 2016/08/08 by Dan.Oconnor Widget and Animation blueprint diffing is no longer experimental, added warning explaining shortcomings. This is preferrable because the text diff is basically useless #jira UE-1234 Change 3081865 on 2016/08/09 by Dan.Oconnor build fix #jria UE-1234 Change 3082839 on 2016/08/09 by Bob.Tellez Duplicating CL#3082835 from //Fortnite/Main #UE4 Fix an issue where changing an array property in the defaults will leave the custom property chain stale until it is compiled, causing a crash in some circumstances. Change 3083367 on 2016/08/09 by Dan.Oconnor Fix for actors detaching when compiling a blueprint, needed to read attachment data before actors are destroyed, in case we're attached to another instance of the same type. Deemed too risky for 4.13. #jira UE-33278 Change 3083825 on 2016/08/10 by Maciej.Mroz #jira UE-34372 [CrashReport] UE4Editor_CoreUObject!StaticAllocateObject() [uobjectglobals.cpp:2102] VariableNames are validated at the begining of FKismetCompilerContext::Compile, because the validation requires CDO. Removed legacy code from FBlueprintEditorUtils::RenameMemberVariable. Change 3084313 on 2016/08/10 by Maciej.Mroz #jira UE-33883 Packaging with Nativize Blueprint Assets Causes Uninitialized Defaults Change 3085572 on 2016/08/11 by Maciej.Mroz #jira UE-34436 Ensures when copy/pasting linked anim bp nodes Redone cl#3085568 from 4.13 branch FGraphObjectTextFactory doesn't call compilation (it is called later by FBlueprintEditor::PasteNodesHere, when all nodes are pasted). CallFunction can be pasted even when it's function doesn't exist. The function could be created from a CustomEvent node, that was also pasted (so it wasn't compiled yet). Change 3087171 on 2016/08/12 by Maciej.Mroz BP Nativization: - FCustomThunkTemplates functions have the same declarations as original functions in Kismet Array Library - Properly declared scope of final functions - "AdditionalPublicDependencyModuleNames" option in "BlueprintNativizationSettings" (applied in Orion) Change 3088713 on 2016/08/15 by Ben.Cosh This updates the tunnel boundary compile time code to catch end of thread execution inside tunnels and provide instrumentation for it. #Jira UE-33563 - Macros without any outputs do not have their stats listed when called from a Keypress Event when profiling. #Proj BlueprintGraph, BlueprintProfiler, Kismet, KismetCompiler, UnrealEd Change 3088734 on 2016/08/15 by Ben.Cosh Minor change to the changes submitted in CL 3088713 after finding an issue during use. #Jira UE-33563 - Macros without any outputs do not have their stats listed when called from a Keypress Event when profiling. #Proj BlueprintGraph, BlueprintProfiler, Kismet, KismetCompiler, UnrealEd Change 3091248 on 2016/08/16 by Dan.Oconnor Removing unused function Change 3091555 on 2016/08/17 by Maciej.Mroz #jira UE-34745 [CrashReport] UE4Editor_BlueprintGraph!UEdGraphSchema_K2::CreateSubstituteNode() [edgraphschema_k2.cpp:5601] Fixed unsafe code. Change 3091767 on 2016/08/17 by Ben.Cosh Minor refresh on the threshold settings interface to allow more immediate visualisation of thresholds. #Jira UE-33572 - BP Profiler - Refresh heatmap coloring when thresholds changed. #Jira UE-33702 - BP Profiler - Custom heatmap thresholds appear to be broken #Jira UE-33698 - BP Profiler: Default heatmaps to on #Proj Kismet, BlueprintProfiler Reviewer notes: - Added an interfacel to indicate if performance thresholds have changed in BlueprintProfilerSettings so we can action changes - Added code to force update heat interfaces in the blueprintprofiler if thresholds are dirty. - Modified the BlueprintProfilerToolbar to reflect the above changes and only save settings when the combo dialog is closed ( saving on change makes the sliders unusable ) - Fixed the custom thresholds ( made them reciprical ) for testing. - Node heatmaps default to average - Heatmap display modes now get saved to the config Change 3091770 on 2016/08/17 by Ben.Cosh Refresh on the blueprint profiler node heatmaps #Jira UE-34802 - Fix the blueprint profiler node heatmaps, the current visualisation is first pass prototype. #Proj GraphEditor, EditorStyle Reviewer notes: - Quick update on the node heatmaps moving to a more graph editor sympathetic approach in code - Removed the old interfaces and added a new overlay pass in the grapheditor processed before the node shadow brushes. - Now the nodes have an outline/glow heatmap that doesn't color the node body ( I have an alternate set of images that also color the body if we decide on we still want that ) Change 3091972 on 2016/08/17 by Ben.Cosh Changing the blueprint profiler heatmap displays to be full node colorisation. #Jira none Change 3092515 on 2016/08/17 by Ryan.Rauschkolb Fixed Struct Ref pin in UK2Node_SetFieldsInStruct can be split when optional pins are visible #UE-34060 Change 3093644 on 2016/08/18 by Maciej.Mroz #jira UE-31754 BP interface signature change doesn't update child Blueprint - Introduced FCustomCompilationSettingsMap. FKismetEditorUtilities::CompileBlueprint can compile many blueprints (due to reinstaning), now we can specify separate compilation settings for each BP. - Simplified FKismetEditorUtilities::CompileBlueprint parameters list - FunctionEntry and FunctionResult nodes depends on Interface (if they implement a function , that was declared in the interface). - Interface is primary source of function signature (previously it was parent class) - When an Interface is compiled all BPs, that implement it, have refreshed nodes in proper order. - FBlueprintEditor::Compile ensures, that all parent classes of current BP are up-to-date Change 3093694 on 2016/08/18 by samuel.proctor Adding members to QA Test UDS Change 3096778 on 2016/08/22 by Mike.Beach Fixing Dev-BP CIS - closing bracket was mistakenly removed (thanks auto-merge). Change 3097150 on 2016/08/22 by Mike.Beach When converting function entry/exit nodes from an interface, set the replacement user-defined pins "DesiredDirection" properly (we now reject pins that don't match the expected direction, and user-defined pins created this way were setup wrong). #jira UE-34985 Change 3097878 on 2016/08/23 by Ryan.Rauschkolb BP Profiler: Fixed stack overflow when compiling tunnels that contain loops #jira UE-34767 Change 3098294 on 2016/08/23 by Maciej.Mroz #jira UE-30031, UE-34760, UE-34761 - Use Delta Serialization when exporting UDS value as text - Default Values of Local Variables (of UDS type) are refreshed while BP regeneration - Importing struct from text uses property guid (see CustomFindProperty) Change 3098599 on 2016/08/23 by Ryan.Rauschkolb Fixed option for split struct pin not appearing in context menu #jira UE-35108 [CL 3100065 by Mike Beach in Main branch]
2016-08-24 16:19:07 -04:00
case EScriptInstrumentation::TunnelEndOfThread:
Ar.Logf(TEXT("%s $%X: .. tunnel end of thread .."), *Indents, (int32)Opcode);
break;
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) @ 2781164 #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2716841 on 2015/10/05 by Mike.Beach (WIP) Cleaning up how we setup script assets for replacement on cook (aligning more with the Blueprint conversion tool). #codereview Maciej.Mroz Change 2719089 on 2015/10/07 by Maciej.Mroz ToValidCPPIdentifierChars handles propertly '?' char. #codereview Dan.Oconnor Change 2719361 on 2015/10/07 by Maciej.Mroz Generated native code for AnimBPGC - some preliminary changes. Refactor: UAnimBlueprintGeneratedClass is not accessed directly in runtime. It is accessed via UAnimClassInterface interface. Properties USkeletalMeshComponent::AnimBlueprintGeneratedClass and UInterpTrackFloatAnimBPParam::AnimBlueprintClass were changed into "TSubclassOf<UAnimInstance> AnimClass" The UDynamicClass also can deliver the IAnimClassInterface interface. See UAnimClassData, IAnimClassInterface::GetFromClass and UDynamicClass::AnimClassImplementation. #codereview Lina.Halper, Thomas.Sarkanen Change 2719383 on 2015/10/07 by Maciej.Mroz Debug-only code removed Change 2720528 on 2015/10/07 by Dan.Oconnor Fix for determinsitc cooking of async tasks and load asset nodes #codereview Mike.Beach, Maciej.Mroz Change 2721273 on 2015/10/08 by Maciej.Mroz Blueprint Compiler Cpp Backend - Anim Blueprints can be converted - Various fixes/improvements Change 2721310 on 2015/10/08 by Maciej.Mroz refactor (cl#2719361) - no "auto" keyword Change 2721727 on 2015/10/08 by Mike.Beach (WIP) Setup the cook commandlet so it handles converted assets, replacing them with generated classes. - Refactored the conversion manifest (using a map over an array) - Centralized destination paths into a helper struct (for the manifest) - Generating an Editor module that automatically hooks into the cook process when enabled - Loading and applying native replacments for the cook Change 2723276 on 2015/10/09 by Michael.Schoell Blueprints duplicated for PIE will no longer register as dependencies to other Blueprint. #jira UE-16695 - Editor freezes then crashes while attempting to save during PIE #jira UE-21614 - [CrashReport] Crash while saving during PIE - FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:736 Change 2724345 on 2015/10/11 by Ben.Cosh Blueprint profiler at first pass, this includes the ability to instrument specific blueprints with realtime editor stat display. #UEBP-21 - Profiling data capture and storage #UEBP-13 - Performance capture landing page #Branch UE4 #Proj BlueprintProfiler, BlueprintGraph, EditorStyle, Kismet, UnrealEd, CoreUObject, Engine Change 2724613 on 2015/10/12 by Ben.Cosh Incremental update for blueprint profiler to fix the way some of the reported stats cascade through events and branches and additionally some missed bits of code are refactored/removed. #Branch UE4 #Proj BlueprintProfiler #info Whilst looking into this I spotted the reason why the stats seem so erratic, There appears to be an issue with FText's use of EXPERIMENTAL_TEXT_FAST_DECIMAL_FORMAT which I have reported, but ideally disable this locally until a fix is integrated. Change 2724723 on 2015/10/12 by Maciej.Mroz Constructor of a dynamic class creates CDO. #codereview Robert.Manuszewski Change 2725108 on 2015/10/12 by Mike.Beach [UE-21891] Minor fix to the array shuffle() function; now processes the last entry like all the others. Change 2726358 on 2015/10/13 by Maciej.Mroz UDataTable is properly saved even if its RowStruct is null. https://udn.unrealengine.com/questions/264064/crash-using-hotreload-in-custom-datatable-cdo-clas.html Change 2727395 on 2015/10/13 by Mike.Beach (WIP) Second pass on the Blueprint conversion pipeline; setting it up for more optimal (speedier) performance. * Using stubs for replacements (rather than loading dynamic replacement). * Giving the cook commandlet more control (so a conversion could be ran directly). * Now logging replacements by old object path (to account for UPackage replacement queries). * Fix for [UE-21947], unshelved from CL 2724944 (by Maciej.Mroz). #codereview Maciej.Mroz Change 2727484 on 2015/10/13 by Mike.Beach [UE-22008] Fixing up comment/tooltip typo for UActorComponent::bAutoActivate. Change 2727527 on 2015/10/13 by Mike.Beach Downgrading an inactionable EdGraph warning, while adding more info so we could possibly determine what's happening. Change 2727702 on 2015/10/13 by Dan.Oconnor Fix for crash in UDelegateProperty::GetCPPType when called on a function with no OwnerClass (events) Change 2727968 on 2015/10/14 by Maciej.Mroz Since ConstructorHelpers::FClassFinder is usually static, the loaded class should be in root set, to prevent the pointer stored in ConstructorHelpers::FClassFinder from being obsolete. FindOrLoadClass behaves now like FindOrLoadObject. #codereview Robert.Manuszewski, Nick.Whiting Change 2728139 on 2015/10/14 by Phillip.Kavan
2015-11-25 18:47:20 -05:00
}
break;
}
case EX_Tracepoint:
{
Ar.Logf(TEXT("%s $%X: .. debug site .."), *Indents, (int32)Opcode);
break;
}
case EX_SwitchValue:
{
const auto NumCases = ReadWORD(ScriptIndex);
const auto AfterSkip = ReadSkipCount(ScriptIndex);
Ar.Logf(TEXT("%s $%X: Switch Value %d cases, end in 0x%X"), *Indents, (int32)Opcode, NumCases, AfterSkip);
AddIndent();
Ar.Logf(TEXT("%s Index:"), *Indents);
SerializeExpr(ScriptIndex);
for (uint16 CaseIndex = 0; CaseIndex < NumCases; ++CaseIndex)
{
Ar.Logf(TEXT("%s [%d] Case Index (label: 0x%X):"), *Indents, CaseIndex, ScriptIndex);
SerializeExpr(ScriptIndex); // case index value term
const auto OffsetToNextCase = ReadSkipCount(ScriptIndex);
Ar.Logf(TEXT("%s [%d] Offset to the next case: 0x%X"), *Indents, CaseIndex, OffsetToNextCase);
Ar.Logf(TEXT("%s [%d] Case Result:"), *Indents, CaseIndex);
SerializeExpr(ScriptIndex); // case term
}
Ar.Logf(TEXT("%s Default result (label: 0x%X):"), *Indents, ScriptIndex);
SerializeExpr(ScriptIndex);
Ar.Logf(TEXT("%s (label: 0x%X)"), *Indents, ScriptIndex);
DropIndent();
break;
}
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2865817 on 2016/02/12 by Mike.Beach Handling deferred (cyclic) dependency issues that arrise from imports not found within the linker's ImportMap (imports loaded from config files and UProperty::ImportText). #jira UE-26756 #codereview Robert.Manuszewski Change 2866282 on 2016/02/13 by Maciej.Mroz Blueprint C++ Conversion: - Added CustomDynamicClassInitialization meta data and function - References to other converted fields are gathered before CDO is created (it solves many dependencies) #codereview Robert.Manuszewski Change 2867921 on 2016/02/15 by Mike.Beach Fixing (CIS error) typo - Accidently assigning uninitialized variable to itself. Change 2867970 on 2016/02/15 by Mike.Beach Removing "static" keyword on template specializations (CIS error). Change 2868401 on 2016/02/16 by Maciej.Mroz TBaseStructure for more noexport structures Change 2868404 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: - Fixed some issues related to NOEXPORT structures - Added FEmitDefaultValueHelper::SpecialStructureConstructor Change 2868461 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: - Fixed component initialization in actors, based on a DynamicClass Change 2868481 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: (Work in progress.) In BPGC templates cor SCS components are owned by the class. In DynamicClass the templates are owned by CDO. It requires to update the import path, when a component template is referenced by an extern object. #codereview Robert.Manuszewski, Dan.Oconnor Change 2868769 on 2016/02/16 by Maciej.Mroz Improved parsing for multi-parameter AutoCreateRefTerm meta data Change 2870310 on 2016/02/17 by Ben.Cosh Incremental refactor and update for the blueprint profiler. - Shuffled files around and renamed to make the layout more informational - Added profiler capture and playback contexts - Added blueprint and function contexts, this enables rapid stat discards in situations such as blueprint compilation. - Moved the blueprint execution mapping out of the profiler and into the blueprint contexts - Refactored the event playback so it processes with one event at a time. #CodeReview Phillip.Kavan Change 2870386 on 2016/02/17 by Maciej.Mroz Improved UProperty::ExportCppDeclaration - Const reference to a pointer should be: "Type* const &" , not "const Type* &". #codereview Steve.Robb Change 2870686 on 2016/02/17 by Nick.Whiting Engine changes needed for Bullet Train compatibility: - Adding BP-exposed GetClosestBone function, with ability to optionally filter only bones associated with physics assets - Exposing GetRemoteRole to BPs Change 2871419 on 2016/02/17 by Mike.Beach Fixing CIS incude error. #codereview Ben.Cosh Change 2872190 on 2016/02/18 by Mike.Beach Another CIS fix - forward declaring a class that wasn't included. #codereview Ben.Cosh Change 2872285 on 2016/02/18 by Maciej.Mroz added bDontNativizeDataOnlyBP in Editor.ini Change 2872826 on 2016/02/18 by Ben.Cosh CIS fixes for mac builds #codereview Dan.Oconnor, Mike.Beach Change 2874284 on 2016/02/19 by Mike.Beach Supporting nested struct properties that are filled out through text imports during deferred dependency loading. #codereview Robert.Manuszewski Change 2874299 on 2016/02/19 by Mike.Beach CIS fix - macro typo in non-debug build. Change 2875571 on 2016/02/22 by Maciej.Mroz Blueprint C++ Conversion: Fixed generated FCompiledInDeferStruct instance for nativized structs. It has a proper overriden name. Change 2875574 on 2016/02/22 by Maciej.Mroz Blueprint C++ Conversion: Class type of unconverted asset is not replaced in import map while cooking. Change 2875741 on 2016/02/22 by Michael.Schoell Array Item Get nodes now return by-ref. All use cases of the node, as well as use cases of ForEachLoop and ForEachLoopWithBreaks, have been updated to use a Copy node on the output to maintain any existing functionality. [CL 2884111 by Mike Beach in Main branch]
2016-02-26 16:58:26 -05:00
case EX_ArrayGetByRef:
{
Ar.Logf(TEXT("%s $%X: Array Get-by-Ref Index"), *Indents, (int32)Opcode);
AddIndent();
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2884592 on 2016/02/27 by Maciej.Mroz Packages containing Dynamic Types are listed as dependencies in FAsyncPackage::LoadImports #codereview Robert.Manuszewski Change 2884607 on 2016/02/27 by Maciej.Mroz CDO of DynamicClass is postponed as a regular CDO creation. This change is risky (it still requires some tests), but it seems to be necessary for solving (cyclic) dependencies while Async Loading. #codereview Robert.Manuszewski, Mike.Beach Change 2885915 on 2016/02/29 by Michael.Schoell Struct pins on exposed on spawn properties will no longer error on compile if they do not have a pin connected to them. UKismetSystemLibrary::SetStructurePropertyByName's Value pin is now marked as a AutoCreateRefTerm so literals can be used on the auto-generated node. Modified FKismetCompilerUtilities::GenerateAssignmentNodes to assign the literal value into the pin, which in turn allows it to expand into an auto-ref term. #jira UE-23130 - ExposeOnSpawn struct properties are not handled correctly Change 2887269 on 2016/03/01 by Maciej.Mroz Fixes related to DisregardForGC: - merged 2885687 from Dev-Core branch - ensure CDO of newly added class is created in CloseDisregardForGC Change 2887273 on 2016/03/01 by Maciej.Mroz GUObjectArray.CloseDisregardForGC(); is called before GUObjectArray.DisableDisregardForGC(); Change 2892502 on 2016/03/03 by Maciej.Mroz More descriptive ensures. Change 2892509 on 2016/03/03 by Maciej.Mroz Minor changes in Orion code, necessary to compile the project with nativized Blueprints #codereview David.Ratti Change 2892513 on 2016/03/03 by Maciej.Mroz Blueprint C++ Conversion: there is no crash when a asset used by a nativized class wasn't loaded. Change 2894347 on 2016/03/04 by Michael.Schoell Fixed crash with the Array Item Get node in the disassembler. #jira UE-27734 - Error in TeamLobby Change 2895311 on 2016/03/04 by Michael.Schoell Right click and using "Find References" on an event node in either the MyBlueprint window or a graph panel, will search the function's name, not the node's title (drops the Event text). #jira UE-27335 - GitHub 2092 : Skip "Event " Prefix when Finding References for Events PR #2092: Skip "Event " Prefix when Finding References for Events (Contributed by mollstam) Change 2896714 on 2016/03/07 by Ben.Cosh Fixes for a few related crash/assert issues when profiling blueprints that use event dispatchers/call event functions and latent nodes. #UE-27090 - Crash when calling an Event Dispatcher within a Sequence node with the Blueprint Profiler on #Proj KismetCompiler, BlueprintProfiler, BlueprintGraph, Kismet, CoreUObject #codereview Phillip.Kavan Change 2897335 on 2016/03/07 by Dan.Oconnor Unshelved from pending changelist '2889006': We now copy UObjects that are assigned to Instance properties via UObjectPropertyBase::ImportText_Internal #jira UE-26310 Change 2899151 on 2016/03/08 by Phillip.Kavan [UEBP-112] BP profiler - pure node timings change summary: - first-pass revisions for tracking/visualizing pure node execution timings while profiling - trace path debugging support (default: off) #codereview Ben.Cosh Change 2901763 on 2016/03/09 by Michael.Schoell Can undo/redo nodes added using shortcuts. Also fixed issue with macro nodes added using shortcuts not being selected. #jira UE-28027 - Cannot Undo Blueprint Nodes Placed Using Shortcuts Change 2902762 on 2016/03/10 by Phillip.Kavan [UE-28167] Fix compile-time crash caused by intermediate pure nodes when the BP profiler view is active. change summary: - modified FBlueprintExecutionContext::MapNodeExecution() to avoid impure nodes when mapping the pure node execution chain. #codereview Ben.Cosh Change 2907961 on 2016/03/14 by Maciej.Mroz #jira UE-28249 Cooked win32 Fortnite server crash loading in to FastCook map Manually integrated CL#2906835 from Dev-Core - Reset last non-gc index when disabling disregard for GC pool Change 2908013 on 2016/03/14 by Maciej.Mroz EmptyLinkFunctionForGeneratedCode function for all .generated.*.cpp files Fixed problem when stuff from some .generated.*.cpp files for nativized Blueprints plugin were not linked at all. #codereview Robert.Manuszewski, Steve.Robb Change 2908033 on 2016/03/14 by Maciej.Mroz Various fixes and improvements related to initialization sequence of converted Dynamic Classes. [CL 2910931 by Mike Beach in Main branch]
2016-03-15 19:07:47 -04:00
SerializeExpr(ScriptIndex);
SerializeExpr(ScriptIndex);
DropIndent();
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2865817 on 2016/02/12 by Mike.Beach Handling deferred (cyclic) dependency issues that arrise from imports not found within the linker's ImportMap (imports loaded from config files and UProperty::ImportText). #jira UE-26756 #codereview Robert.Manuszewski Change 2866282 on 2016/02/13 by Maciej.Mroz Blueprint C++ Conversion: - Added CustomDynamicClassInitialization meta data and function - References to other converted fields are gathered before CDO is created (it solves many dependencies) #codereview Robert.Manuszewski Change 2867921 on 2016/02/15 by Mike.Beach Fixing (CIS error) typo - Accidently assigning uninitialized variable to itself. Change 2867970 on 2016/02/15 by Mike.Beach Removing "static" keyword on template specializations (CIS error). Change 2868401 on 2016/02/16 by Maciej.Mroz TBaseStructure for more noexport structures Change 2868404 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: - Fixed some issues related to NOEXPORT structures - Added FEmitDefaultValueHelper::SpecialStructureConstructor Change 2868461 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: - Fixed component initialization in actors, based on a DynamicClass Change 2868481 on 2016/02/16 by Maciej.Mroz Blueprint C++ Conversion: (Work in progress.) In BPGC templates cor SCS components are owned by the class. In DynamicClass the templates are owned by CDO. It requires to update the import path, when a component template is referenced by an extern object. #codereview Robert.Manuszewski, Dan.Oconnor Change 2868769 on 2016/02/16 by Maciej.Mroz Improved parsing for multi-parameter AutoCreateRefTerm meta data Change 2870310 on 2016/02/17 by Ben.Cosh Incremental refactor and update for the blueprint profiler. - Shuffled files around and renamed to make the layout more informational - Added profiler capture and playback contexts - Added blueprint and function contexts, this enables rapid stat discards in situations such as blueprint compilation. - Moved the blueprint execution mapping out of the profiler and into the blueprint contexts - Refactored the event playback so it processes with one event at a time. #CodeReview Phillip.Kavan Change 2870386 on 2016/02/17 by Maciej.Mroz Improved UProperty::ExportCppDeclaration - Const reference to a pointer should be: "Type* const &" , not "const Type* &". #codereview Steve.Robb Change 2870686 on 2016/02/17 by Nick.Whiting Engine changes needed for Bullet Train compatibility: - Adding BP-exposed GetClosestBone function, with ability to optionally filter only bones associated with physics assets - Exposing GetRemoteRole to BPs Change 2871419 on 2016/02/17 by Mike.Beach Fixing CIS incude error. #codereview Ben.Cosh Change 2872190 on 2016/02/18 by Mike.Beach Another CIS fix - forward declaring a class that wasn't included. #codereview Ben.Cosh Change 2872285 on 2016/02/18 by Maciej.Mroz added bDontNativizeDataOnlyBP in Editor.ini Change 2872826 on 2016/02/18 by Ben.Cosh CIS fixes for mac builds #codereview Dan.Oconnor, Mike.Beach Change 2874284 on 2016/02/19 by Mike.Beach Supporting nested struct properties that are filled out through text imports during deferred dependency loading. #codereview Robert.Manuszewski Change 2874299 on 2016/02/19 by Mike.Beach CIS fix - macro typo in non-debug build. Change 2875571 on 2016/02/22 by Maciej.Mroz Blueprint C++ Conversion: Fixed generated FCompiledInDeferStruct instance for nativized structs. It has a proper overriden name. Change 2875574 on 2016/02/22 by Maciej.Mroz Blueprint C++ Conversion: Class type of unconverted asset is not replaced in import map while cooking. Change 2875741 on 2016/02/22 by Michael.Schoell Array Item Get nodes now return by-ref. All use cases of the node, as well as use cases of ForEachLoop and ForEachLoopWithBreaks, have been updated to use a Copy node on the output to maintain any existing functionality. [CL 2884111 by Mike Beach in Main branch]
2016-02-26 16:58:26 -05:00
break;
}
default:
{
// This should never occur.
UE_LOG(LogScriptDisassembler, Warning, TEXT("Unknown bytecode 0x%02X; ignoring it"), (uint8)Opcode );
break;
}
}
}
void FKismetBytecodeDisassembler::InitTables()
{
}