2016-12-08 08:52:44 -05:00
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
# include "UnrealHeaderTool.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 "CoreMinimal.h"
# include "Misc/AssertionMacros.h"
# include "HAL/PlatformProcess.h"
# include "Templates/UnrealTemplate.h"
# include "Math/UnrealMathUtility.h"
# include "Containers/UnrealString.h"
# include "UObject/NameTypes.h"
# include "Logging/LogMacros.h"
# include "CoreGlobals.h"
# include "HAL/FileManager.h"
# include "Misc/Parse.h"
# include "Misc/CoreMisc.h"
# include "Misc/CommandLine.h"
# include "Misc/FileHelper.h"
# include "Misc/Paths.h"
# include "Delegates/Delegate.h"
# include "Misc/Guid.h"
# include "Misc/ConfigCacheIni.h"
# include "Misc/FeedbackContext.h"
# include "UObject/ErrorException.h"
# include "UObject/Script.h"
# include "UObject/ObjectMacros.h"
# include "UObject/UObjectGlobals.h"
# include "UObject/Class.h"
# include "UObject/Package.h"
# include "UObject/MetaData.h"
# include "UObject/Interface.h"
# include "UObject/UnrealType.h"
# include "UObject/TextProperty.h"
# include "Misc/PackageName.h"
# include "UnrealHeaderToolGlobals.h"
2014-03-14 14:13:41 -04:00
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 "ParserClass.h"
# include "Scope.h"
# include "HeaderProvider.h"
# include "GeneratedCodeVersion.h"
# include "SimplifiedParsingClassInfo.h"
# include "UnrealSourceFile.h"
2014-03-14 14:13:41 -04:00
# include "ParserHelper.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 "Classes.h"
2014-03-14 14:13:41 -04:00
# include "NativeClassExporter.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 "ProfilingDebugging/ScopedTimers.h"
2014-03-14 14:13:41 -04:00
# include "HeaderParser.h"
2014-05-22 01:20:24 -04:00
# include "IScriptGeneratorPluginInterface.h"
2014-04-02 18:09:23 -04:00
# include "Manifest.h"
2014-04-23 18:46:37 -04:00
# include "StringUtils.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 "Features/IModularFeatures.h"
2015-11-18 16:20:49 -05:00
# include "UHTMakefile/UHTMakefile.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 "Misc/ScopeExit.h"
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3049602)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2946506 on 2016/04/18 by Steven.Hutton
Update to Crash Reporter buggs table to add new search fields and inclusion of packages needed for e-mail reports.
Change 3017807 on 2016/06/17 by Chris.Wood
Improved Crash Report Process folder delete code as it could sometimes fail.
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also added logging to Slack when stop request received instead of just when stop is complete.
Change 3019367 on 2016/06/20 by Chris.Wood
Improve Crash Report Process logging to track bad reads from S3.
Also, better logging when CleanReport fails to delete folders.
Change 3019376 on 2016/06/20 by Steve.Robb
Clarification of assert message and comments which talk about 'null' TFunctions.
Tidy-up of dead code.
Change 3019409 on 2016/06/20 by Steve.Robb
New Find and FindByPredicate algorithms for finding stuff in arbitrary containers.
Change 3022658 on 2016/06/22 by Chris.Wood
Discarding duplicated crash reports earlier in read from Data Router process to avoid clashes in the landing zone (CRP v1.1.11)
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also improved logging to Slack with better layout, fixed event ordering and counting duplicates.
Change 3022840 on 2016/06/22 by Steve.Robb
Skipped UHT attributes removed.
Change 3022907 on 2016/06/22 by Robert.Manuszewski
Fixing crash when adding a new C++ class to project
#jira UE-32333
Change 3023169 on 2016/06/22 by Steve.Robb
Checks for UTHINGs in skipped preprocessor blocks.
Fixes for skipped UTHINGs and some other parsing accidents.
#jira UE-31627
Change 3023239 on 2016/06/22 by Steve.Robb
Fix for JSON date parsing reported here: https://udn.unrealengine.com/questions/299342/fdatetime-json-serialization-bug.html
Change 3026812 on 2016/06/24 by Mieszko.Zielinski
Marked FEnvQueryInstance::AddItemData UEnvQueryItemType_Point specialization as AIMODULE_API #UE4
Change 3028235 on 2016/06/27 by Robert.Manuszewski
PR #2535: BUGFIX: FPS pop-up updates when loading new stat file (Contributed by projectgheist)
Change 3028282 on 2016/06/27 by Steve.Robb
Fix for missing UFUNCTION check in skipped preprocessor blocks.
#jira UE-31627
Change 3028284 on 2016/06/27 by Steve.Robb
Debuggability improvements and coding standards changes.
Change 3028343 on 2016/06/27 by Steve.Robb
Fix for UHT error in WEX.
#jira UE-32464
Change 3028393 on 2016/06/27 by Steve.Robb
Fix for hot reload of enums finding the old enum.
Fix to stop SPropertyEditorNumeric caching the enum flags.
#jira UE-31658
Change 3030362 on 2016/06/28 by Robert.Manuszewski
Fixing hang when cooking.
Change 3030462 on 2016/06/28 by Steve.Robb
Assert added to PackageTools::GetFilteredPackageList() to help with catching a bug reported in the wild.
#jira UE-32001
Change 3034341 on 2016/06/30 by Robert.Manuszewski
Modified crash handling code (on Windows) to handle two threads crashing at the same time properly. Previously the second crash would force the process to exit before generating the crash report.
Added 'debug twothreadsgpf' command to test the functionality.
Change 3034342 on 2016/06/30 by John.Mahoney
Fix for crash when loading an empty cached asset registry.
#jira UE-32232
Change 3035599 on 2016/07/01 by Chris.Wood
Added support for CrashType string to Crash Report Process. CRP v1.1.12
[UE-30592] - Crash Reporter should determine crash type on client and pass string to server
Also fixes problem with reports falling back on the legacy WER metadata when a crash context exists. They now only read the error message from metadata if available and keep crash context data when possible.
Added in missing crash context parameters that have been added to clients but not known by the server.
Change 3035787 on 2016/07/01 by John.Mahoney
Fix for crash when DuplicateRedirects does not contain the DependentObject when saving dependencies. It will still fall through to the assertion below, but it will now fail with a useful error message instead of a generic 'Pair != nullptr' from Map.h.
#jira UE-30189
Change 3036933 on 2016/07/04 by Steve.Robb
Proper forwarding constructor for FAsyncTask.
Change 3036938 on 2016/07/04 by Steve.Robb
Fix for CDO hot reload corrupting memory when replacing references inside structs.
#jira UE-29335
Change 3036960 on 2016/07/04 by Steve.Robb
Fix for FAnsiAllocator::ResizeAllocation when resizing to zero.
Change 3037423 on 2016/07/05 by Steve.Robb
FModuleManager::UnloadOrAbandonModuleWithCallback split into two instead of switching behavior with a bool.
Change 3037464 on 2016/07/05 by Steve.Robb
HotReload.cpp cleanup:
Deep nesting flattened.
Linear array searches replaced with maps.
FHotReloadModule::GetGameModules made into a non-member function and split into two.
Comment and coding standard fixes.
Change 3037741 on 2016/07/05 by John.Mahoney
Fix for COTF not checking the correct timestamps on startup.
#jira UE-31023
Change 3037846 on 2016/07/05 by Steve.Robb
Fix for compile button disappearing on a bad compile.
#jira UE-31575
Change 3037994 on 2016/07/05 by Steve.Robb
Static analysis fixes:
warning C6308: 'realloc' might return null pointer: assigning null pointer to 'Data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
Change 3039186 on 2016/07/06 by Robert.Manuszewski
Enabling crash callstack logging by default.
Change 3039220 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C28159: Consider using 'InitiateSystemShutdownEx' instead of 'ExitWindowsEx'. Reason: Legacy API. Rearchitect to avoid Reboot
warning C6001: Using uninitialized memory 'UserNameLength'
warning C6001: Using uninitialized memory 'DomainNameLength'
Change 3039230 on 2016/07/06 by Steve.Robb
Fix for VC internal compiler errors.
Change 3039237 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'Path': the readable size is '400' bytes, but 'PathCurrentDepth' bytes may be read.
Change 3039287 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6509: Invalid annotation: 'return' cannot be referenced in some contexts
warning C6101: Returning uninitialized memory '*lpdwExitCode'. A successful path through the function does not set the named _Out_ parameter.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToStorage'.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToObject'.
warning C6031: Return value ignored: 'CoCreateInstance'.
Change 3039359 on 2016/07/06 by Graeme.Thornton
Compile error fix for FAsyncTask, courtesy of SteveR
Change 3039534 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6319: Use of the comma-operator in a tested expression causes the left argument to be ignored when it has no side-effects.
Change 3039545 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value.
Change 3039578 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3039623 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'
warning C6308:'realloc' might return null pointer: assigning null pointer to 'X', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
warning C6385: Reading invalid data from 'X': the readable size is 'Y' bytes, but 'Z' bytes may be read.
warning C6386: Buffer overrun while writing to 'X': the writable size is 'Y' bytes, but 'Z' bytes might be written.
warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did.
Change 3039630 on 2016/07/06 by John.Mahoney
Fix for crash when spawning an actor using a template object that has instance components. UActorComponent::PostInitProperties was adding itself to the owner's InstanceComponents array, resulting in a realloc of that array and invalidating the reference that the owner's ObjectInitializer was trying to replace while instantiating that property. The new instance component will be added to the array as part of the owner's initialization anyway, so it is not necessary to do it here.
#jira UE-29123
Change 3039664 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6386: Buffer overrun while writing to 'NewKeys': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
warning C6386: Buffer overrun while writing to 'NewHeapIndexes': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
Change 3039673 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'v'.
Change 3039690 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'.
warning C6246: Local declaration of 'X' hides declaration of the same name in outer scope.
warning C6262: Function uses '121180' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap.
warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3040868 on 2016/07/07 by Graeme.Thornton
Config based class stripping for server builds
Change 3040872 on 2016/07/07 by Graeme.Thornton
Remove "return false" NeedsLoadForServer functions from engine code
Change 3040997 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Landscape'.
warning C6011: Dereferencing NULL pointer 'rhs.Allocation.LayerInfo'.
warning C6011: Dereferencing NULL pointer 'lhs.Allocation.LayerInfo'.
Change 3041004 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent.
Change 3041014 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6287: Redundant code: the left and right sub-expressions are identical.
Change 3041111 on 2016/07/07 by Steve.Robb
Removal of an obsolete error message about INI file case sensitivity.
Change 3041150 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead?
Change 3041274 on 2016/07/07 by Steve.Robb
Static analysis fixes: warning C6001: Using uninitialized memory 'X'.
Change 3041294 on 2016/07/07 by Chris.Wood
Fixed protocol buffer and decompression errors in Crash Report Process (v.1.1.14)
[UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack
Size of buffer received from S3 is incorrect for some records. Fixed read problems by using size header value instead of stream length.
Increased buffer size for decompression as this was sometimes too small.
Modified S3 reading code to look for multiple records in each downloaded file.
Change 3041472 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed.
warning C6201: Index '1' is out of valid index range '0' to '0' for possibly stack allocated buffer 'NewHistory.Nodes'.
Change 3043074 on 2016/07/08 by John.Mahoney
Fix for COTF incorrectly reconstructing the original asset path based on the sandbox path when the game name differs from the game folder name.
Fix for COTF GetFiles not handling absolute GameDir paths properly.
#jira UE-31023
Change 3044461 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6386: Buffer overrun while writing to 'Attributes': the writable size is '16384' bytes, but '-8' bytes might be written.
Change 3044470 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Node.Sequence'.
Change 3044476 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Property'.
Change 3044551 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'KeyAreaNode' did.
Change 3044664 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'ToLandscape->SplineComponent'.
warning C28182: Dereferencing NULL pointer. 'SplinesComponent' contains the same NULL value as 'Landscape->SplineComponent' did.
warning C6011: Dereferencing NULL pointer 'Landscape->SplineComponent'.
warning C6385: Reading invalid data from 'out': the readable size is 'sizeof(kiss_fft_cpx)*Dims[0]*Dims[1]' bytes, but '16' bytes may be read.
Change 3044716 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'this->ScreenSize': the readable size is '32' bytes, but '-4' bytes may be read.
Change 3044717 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Window' contains the same NULL value as 'ElementType * Window=AllWindows.FindByPredicate((*FStaticMeshEditorTest::RunTest::<lambda_46fd0093f3912289e870263afe1fcb2e>(ExpectedTitle)))' did.
This appears to be a false positive.
Change 3044787 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'FbxObject'.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'RigidMeshNode' did.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'Result' did.
Change 3045933 on 2016/07/12 by Steve.Robb
Overloading support for TSharedPtr, TSharedRef and TWeakPtr.
Change 3045960 on 2016/07/12 by Robert.Manuszewski
Fixing a crash in Portal (and any other program that uses UObjects and GCs, with the exception of UHT) caused by classes not having their token stream assembled.
Change 3045963 on 2016/07/12 by Steve.Robb
PLATFORM_COMPILER_HAS_EXPLICIT_OPERATORS, FORCEINLINE_EXPLICIT_OPERATOR_BOOL and SAFE_BOOL_OPERATORS macros removed.
THasOperatorEquals and THasOperatorNotEquals traits moved to their own header.
Change 3045967 on 2016/07/12 by Steve.Robb
Initializer list support for TArray and TSet.
Change 3045968 on 2016/07/12 by Robert.Manuszewski
Fixing an ensure after typing 'stat dumphitches' in console.
Change 3045992 on 2016/07/12 by Robert.Manuszewski
Making sure CoreUObject headers are included for programs that don't include the engine (fixing MinidumpDiagnostics CIS failure)
Change 3047870 on 2016/07/13 by Steven.Hutton
Updated CRW to entity framework with repository models. #rb none
Change 3047871 on 2016/07/13 by Steven.Hutton
Add repository models #rb none
Change 3049468 on 2016/07/14 by Steven.Hutton
Fix broken project files. #rb none
#lockdown Nick.Penwarden
[CL 3050320 by Robert Manuszewski in Main branch]
2016-07-14 14:54:00 -04:00
# include "FileLineException.h"
2014-03-14 14:13:41 -04:00
/////////////////////////////////////////////////////
2014-04-02 18:09:23 -04:00
// Globals
2014-03-14 14:13:41 -04:00
2014-04-02 18:09:23 -04:00
FManifest GManifest ;
2014-03-14 14:13:41 -04:00
2015-03-27 17:16:51 -04:00
double GMacroizeTime = 0.0 ;
2014-03-14 14:13:41 -04:00
static TArray < FString > ChangeMessages ;
static bool bWriteContents = false ;
static bool bVerifyContents = false ;
static const bool bMultiLineUFUNCTION = true ;
static const bool bMultiLineUPROPERTY = true ;
2016-02-22 11:17:03 -05:00
static TSharedRef < FUnrealSourceFile > PerformInitialParseOnHeader ( UPackage * InParent , const TCHAR * FileName , EObjectFlags Flags , const TCHAR * Buffer , FUHTMakefile & UHTMakefile ) ;
2014-03-14 14:13:41 -04:00
2014-06-02 07:02:29 -04:00
FCompilerMetadataManager GScriptHelper ;
2014-03-14 14:13:41 -04:00
/** C++ name lookup helper */
2014-06-02 07:02:29 -04:00
FNameLookupCPP NameLookupCPP ;
2014-03-14 14:13:41 -04:00
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
namespace
{
static FString AsTEXT ( FString InStr )
{
return FString : : Printf ( TEXT ( " TEXT( \" %s \" ) " ) , * InStr ) ;
}
}
2015-04-20 06:19:21 -04:00
/**
* Finds exact match of Identifier in string . Returns nullptr if none is found .
*
* @ param StringBegin Start of string to search .
* @ param StringEnd End of string to search .
* @ param Identifier Identifier to find .
* @ return Pointer to Identifier match within string . nullptr if none found .
*/
const TCHAR * FindIdentifierExactMatch ( const TCHAR * StringBegin , const TCHAR * StringEnd , const FString & Identifier )
2015-04-10 06:02:22 -04:00
{
2015-04-20 06:19:21 -04:00
int32 StringLen = StringEnd - StringBegin ;
// Check for exact match first.
if ( FCString : : Strncmp ( StringBegin , * Identifier , StringLen ) = = 0 )
{
return StringBegin ;
}
2015-11-18 16:20:49 -05:00
int32 FindLen = Identifier . Len ( ) ;
const TCHAR * StringToSearch = StringBegin ;
2015-04-10 06:02:22 -04:00
for ( ; ; )
{
2015-11-18 16:20:49 -05:00
const TCHAR * IdentifierStart = FCString : : Strstr ( StringToSearch , * Identifier ) ;
2015-04-20 06:19:21 -04:00
if ( IdentifierStart = = nullptr )
2015-04-10 06:02:22 -04:00
{
2015-04-20 06:19:21 -04:00
// Not found.
return nullptr ;
2015-04-10 06:02:22 -04:00
}
2015-11-18 16:20:49 -05:00
if ( IdentifierStart > StringEnd | | IdentifierStart + FindLen + 1 > StringEnd )
2015-04-10 06:02:22 -04:00
{
2015-04-20 06:19:21 -04:00
// Found match is out of string range.
return nullptr ;
2015-04-10 06:02:22 -04:00
}
2015-11-18 16:20:49 -05:00
if ( IdentifierStart = = StringBegin & & ! FChar : : IsIdentifier ( * ( IdentifierStart + FindLen + 1 ) ) )
2015-04-20 06:19:21 -04:00
{
// Found match is at the beginning of string.
return IdentifierStart ;
2015-04-17 04:04:20 -04:00
}
2015-11-18 16:20:49 -05:00
if ( IdentifierStart + FindLen = = StringEnd & & ! FChar : : IsIdentifier ( * ( IdentifierStart - 1 ) ) )
2015-04-20 06:19:21 -04:00
{
// Found match ends with end of string.
return IdentifierStart ;
}
2015-11-18 16:20:49 -05:00
if ( ! FChar : : IsIdentifier ( * ( IdentifierStart + FindLen ) ) & & ! FChar : : IsIdentifier ( * ( IdentifierStart - 1 ) ) )
2015-04-20 06:19:21 -04:00
{
// Found match is in the middle of string
return IdentifierStart ;
}
// Didn't find exact match, nor got to end of search string. Keep on searching.
StringToSearch = IdentifierStart + FindLen ;
}
2015-04-10 06:02:22 -04:00
// We should never get here.
checkNoEntry ( ) ;
2015-04-20 06:19:21 -04:00
return nullptr ;
}
/**
* Finds exact match of Identifier in string . Returns nullptr if none is found .
*
* @ param String String to search .
* @ param Identifier Identifier to find .
* @ return Index to Identifier match within String . INDEX_NONE if none found .
*/
int32 FindIdentifierExactMatch ( const FString & String , const FString & Identifier )
{
2015-11-18 16:20:49 -05:00
const TCHAR * IdentifierPtr = FindIdentifierExactMatch ( * String , * String + String . Len ( ) , Identifier ) ;
2015-04-20 06:19:21 -04:00
if ( IdentifierPtr = = nullptr )
{
return INDEX_NONE ;
}
return IdentifierPtr - * String ;
}
/**
* Checks if exact match of Identifier is in String .
*
* @ param StringBegin Start of string to search .
* @ param StringEnd End of string to search .
* @ param Identifier Identifier to find .
* @ return true if Identifier is within string , false otherwise .
*/
bool HasIdentifierExactMatch ( const TCHAR * StringBegin , const TCHAR * StringEnd , const FString & Find )
{
return FindIdentifierExactMatch ( StringBegin , StringEnd , Find ) ! = nullptr ;
}
/**
* Checks if exact match of Identifier is in String .
*
* @ param String String to search .
* @ param Identifier Identifier to find .
* @ return true if Identifier is within String , false otherwise .
*/
bool HasIdentifierExactMatch ( const FString & String , const FString & Identifier )
{
return FindIdentifierExactMatch ( String , Identifier ) ! = INDEX_NONE ;
2015-04-10 06:02:22 -04:00
}
2014-03-14 14:13:41 -04:00
/////////////////////////////////////////////////////
// FFlagAudit
//@todo: UCREMOVAL this is all audit stuff
static struct FFlagAudit
{
struct Pair
{
FString Name ;
uint64 Flags ;
2015-11-18 16:20:49 -05:00
Pair ( const UObject * Source , const TCHAR * FlagType , uint64 InFlags )
2014-03-14 14:13:41 -04:00
{
Name = Source - > GetFullName ( ) + TEXT ( " [ " ) + FlagType + TEXT ( " ] " ) ;
Flags = InFlags ;
}
} ;
TArray < Pair > Items ;
2015-11-18 16:20:49 -05:00
void Add ( const UObject * Source , const TCHAR * FlagType , uint64 Flags )
2014-03-14 14:13:41 -04:00
{
new ( Items ) Pair ( Source , FlagType , Flags ) ;
}
void WriteResults ( )
{
bool bDoDiff = false ;
FString Filename ;
FString RefFilename = FString ( FPaths : : GameSavedDir ( ) ) / TEXT ( " ReferenceFlags.txt " ) ;
if ( ! FParse : : Param ( FCommandLine : : Get ( ) , TEXT ( " WRITEFLAGS " ) ) )
{
return ;
}
if ( FParse : : Param ( FCommandLine : : Get ( ) , TEXT ( " WRITEREF " ) ) )
{
Filename = RefFilename ;
}
else if ( FParse : : Param ( FCommandLine : : Get ( ) , TEXT ( " VERIFYREF " ) ) )
{
Filename = FString ( FPaths : : GameSavedDir ( ) ) / TEXT ( " VerifyFlags.txt " ) ;
bDoDiff = true ;
}
struct FComparePairByName
{
FORCEINLINE bool operator ( ) ( const FFlagAudit : : Pair & A , const FFlagAudit : : Pair & B ) const { return A . Name < B . Name ; }
} ;
Items . Sort ( FComparePairByName ( ) ) ;
int32 MaxLen = 0 ;
for ( int32 Index = 0 ; Index < Items . Num ( ) ; Index + + )
{
MaxLen = FMath : : Max < int32 > ( Items [ Index ] . Name . Len ( ) , MaxLen ) ;
}
MaxLen + = 4 ;
FStringOutputDevice File ;
for ( int32 Index = 0 ; Index < Items . Num ( ) ; Index + + )
{
File . Logf ( TEXT ( " %s%s0x%016llx \r \n " ) , * Items [ Index ] . Name , FCString : : Spc ( MaxLen - Items [ Index ] . Name . Len ( ) ) , Items [ Index ] . Flags ) ;
}
FFileHelper : : SaveStringToFile ( File , * Filename ) ;
if ( bDoDiff )
{
FString Verify = File ;
FString Ref ;
if ( FFileHelper : : LoadFileToString ( Ref , * RefFilename ) )
{
FStringOutputDevice MisMatches ;
TArray < FString > VerifyLines ;
2015-03-02 15:51:37 -05:00
Verify . ParseIntoArray ( VerifyLines , TEXT ( " \n " ) , true ) ;
2014-03-14 14:13:41 -04:00
TArray < FString > RefLines ;
2015-03-02 15:51:37 -05:00
Ref . ParseIntoArray ( RefLines , TEXT ( " \n " ) , true ) ;
2014-03-14 14:13:41 -04:00
check ( VerifyLines . Num ( ) = = RefLines . Num ( ) ) ; // we aren't doing a sophisticated diff
for ( int32 Index = 0 ; Index < RefLines . Num ( ) ; Index + + )
{
if ( RefLines [ Index ] ! = VerifyLines [ Index ] )
{
MisMatches . Logf ( TEXT ( " REF : %s " ) , * RefLines [ Index ] ) ;
MisMatches . Logf ( TEXT ( " VERIFY: %s " ) , * VerifyLines [ Index ] ) ;
}
}
FString DiffFilename = FString ( FPaths : : GameSavedDir ( ) ) / TEXT ( " FlagsDiff.txt " ) ;
FFileHelper : : SaveStringToFile ( MisMatches , * DiffFilename ) ;
}
}
}
} TheFlagAudit ;
2015-11-18 16:20:49 -05:00
void ConvertToBuildIncludePath ( const UPackage * Package , FString & LocalPath )
2014-05-19 06:57:00 -04:00
{
FPaths : : MakePathRelativeTo ( LocalPath , * GPackageToManifestModuleMap . FindChecked ( Package ) - > IncludeBase ) ;
}
2014-03-14 14:13:41 -04:00
/**
* Helper function for finding the location of a package
* This is required as source now lives in several possible directories
*
* @ param InPackage The name of the package of interest
* @ param OutLocation The location of the given package , if found
* @ param OutHeaderLocation The directory where generated headers should be placed
*
* @ return bool true if found , false if not
*/
2014-09-18 04:05:01 -04:00
bool FindPackageLocation ( const TCHAR * InPackage , FString & OutLocation , FString & OutHeaderLocation )
2014-03-14 14:13:41 -04:00
{
// Mapping of processed packages to their locations
// An empty location string means it was processed but not found
2014-04-23 20:18:55 -04:00
static TMap < FString , FManifestModule * > CheckedPackageList ;
2014-03-14 14:13:41 -04:00
FString CheckPackage ( InPackage ) ;
2015-11-18 16:20:49 -05:00
FManifestModule * ModuleInfoPtr = CheckedPackageList . FindRef ( CheckPackage ) ;
2014-03-14 14:13:41 -04:00
if ( ! ModuleInfoPtr )
{
2015-11-18 16:20:49 -05:00
FManifestModule * ModuleInfoPtr2 = GManifest . Modules . FindByPredicate ( [ & ] ( FManifestModule & Module ) { return Module . Name = = CheckPackage ; } ) ;
2014-03-14 14:13:41 -04:00
if ( ModuleInfoPtr2 & & IFileManager : : Get ( ) . DirectoryExists ( * ModuleInfoPtr2 - > BaseDirectory ) )
{
ModuleInfoPtr = ModuleInfoPtr2 ;
CheckedPackageList . Add ( CheckPackage , ModuleInfoPtr ) ;
}
}
if ( ! ModuleInfoPtr )
2015-11-18 16:20:49 -05:00
{
2014-03-14 14:13:41 -04:00
return false ;
2015-11-18 16:20:49 -05:00
}
2014-03-14 14:13:41 -04:00
OutLocation = ModuleInfoPtr - > BaseDirectory ;
OutHeaderLocation = ModuleInfoPtr - > GeneratedIncludeDirectory ;
return true ;
}
2015-03-27 17:16:51 -04:00
FString Macroize ( const TCHAR * MacroName , const TCHAR * StringToMacroize )
2014-03-14 14:13:41 -04:00
{
2015-03-27 17:16:51 -04:00
FScopedDurationTimer Tracker ( GMacroizeTime ) ;
2014-03-14 14:13:41 -04:00
FString Result = StringToMacroize ;
if ( Result . Len ( ) )
{
2015-03-27 18:10:52 -04:00
Result . ReplaceInline ( TEXT ( " \r \n " ) , TEXT ( " \n " ) , ESearchCase : : CaseSensitive ) ;
Result . ReplaceInline ( TEXT ( " \n " ) , TEXT ( " \\ \n " ) , ESearchCase : : CaseSensitive ) ;
checkSlow ( Result . EndsWith ( TEXT ( " \\ \n " ) , ESearchCase : : CaseSensitive ) ) ;
if ( Result . Len ( ) > = 3 )
{
for ( int32 Index = Result . Len ( ) - 3 ; Index < Result . Len ( ) ; + + Index )
{
Result [ Index ] = TEXT ( ' \n ' ) ;
}
}
else
{
Result = TEXT ( " \n \n \n " ) ;
}
Result . ReplaceInline ( TEXT ( " \n " ) , TEXT ( " \r \n " ) , ESearchCase : : CaseSensitive ) ;
2014-03-14 14:13:41 -04:00
}
return FString : : Printf ( TEXT ( " #define %s%s \r \n " ) , MacroName , Result . Len ( ) ? TEXT ( " \\ " ) : TEXT ( " " ) ) + Result ;
}
2014-10-30 09:53:47 -04:00
/** Generates a CRC tag string for the specified field */
static FString GetGeneratedCodeCRCTag ( UField * Field )
{
FString Tag ;
2015-11-18 16:20:49 -05:00
const uint32 * FieldCrc = GGeneratedCodeCRCs . Find ( Field ) ;
2014-10-30 09:53:47 -04:00
if ( FieldCrc )
{
Tag = FString : : Printf ( TEXT ( " // %u " ) , * FieldCrc ) ;
}
return Tag ;
}
2014-03-14 14:13:41 -04:00
struct FParmsAndReturnProperties
{
FParmsAndReturnProperties ( )
: Return ( NULL )
{
}
# if PLATFORM_COMPILER_HAS_DEFAULTED_FUNCTIONS
FParmsAndReturnProperties ( FParmsAndReturnProperties & & ) = default ;
FParmsAndReturnProperties ( const FParmsAndReturnProperties & ) = default ;
FParmsAndReturnProperties & operator = ( FParmsAndReturnProperties & & ) = default ;
FParmsAndReturnProperties & operator = ( const FParmsAndReturnProperties & ) = default ;
# else
FParmsAndReturnProperties ( FParmsAndReturnProperties & & Other ) : Parms ( MoveTemp ( Other . Parms ) ) , Return ( MoveTemp ( Other . Return ) ) { }
FParmsAndReturnProperties ( const FParmsAndReturnProperties & Other ) : Parms ( Other . Parms ) , Return ( Other . Return ) { }
FParmsAndReturnProperties & operator = ( FParmsAndReturnProperties & & Other ) { Parms = MoveTemp ( Other . Parms ) ; Return = MoveTemp ( Other . Return ) ; return * this ; }
FParmsAndReturnProperties & operator = ( const FParmsAndReturnProperties & Other ) { Parms = Other . Parms ; Return = Other . Return ; return * this ; }
# endif
bool HasParms ( ) const
{
return Parms . Num ( ) | | Return ;
}
TArray < UProperty * > Parms ;
UProperty * Return ;
} ;
/**
* Get parameters and return type for a given function .
*
* @ param Function The function to get the parameters for .
* @ return An aggregate containing the parameters and return type of that function .
*/
FParmsAndReturnProperties GetFunctionParmsAndReturn ( UFunction * Function )
{
FParmsAndReturnProperties Result ;
for ( TFieldIterator < UProperty > It ( Function ) ; It ; + + It )
{
UProperty * Field = * It ;
if ( ( It - > PropertyFlags & ( CPF_Parm | CPF_ReturnParm ) ) = = CPF_Parm )
{
Result . Parms . Add ( Field ) ;
}
else if ( It - > PropertyFlags & CPF_ReturnParm )
{
Result . Return = Field ;
}
}
return Result ;
}
/**
* Determines whether the glue version of the specified native function
* should be exported
*
* @ param Function the function to check
* @ return true if the glue version of the function should be exported .
*/
bool FNativeClassHeaderGenerator : : ShouldExportFunction ( UFunction * Function )
{
// export any script stubs for native functions declared in interface classes
bool bIsBlueprintNativeEvent = ( Function - > FunctionFlags & FUNC_BlueprintEvent ) & & ( Function - > FunctionFlags & FUNC_Native ) ;
if ( Function - > GetOwnerClass ( ) - > HasAnyClassFlags ( CLASS_Interface ) & & ! bIsBlueprintNativeEvent )
return true ;
// always export if the function is static
if ( Function - > FunctionFlags & FUNC_Static )
return true ;
// don't export the function if this is not the original declaration and there is
// at least one parent version of the function that is declared native
for ( UFunction * ParentFunction = Function - > GetSuperFunction ( ) ; ParentFunction ; ParentFunction = ParentFunction - > GetSuperFunction ( ) )
{
if ( ParentFunction - > FunctionFlags & FUNC_Native )
return false ;
}
return true ;
}
FString CreateLiteralString ( const FString & Str )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
FString Result ;
// Have a reasonable guess at reserving the right size
Result . Reserve ( Str . Len ( ) + Result . Len ( ) ) ;
Result + = TEXT ( " TEXT( \" " ) ;
2014-03-14 14:13:41 -04:00
// Have a reasonable guess at reserving the right size
Result . Reserve ( Str . Len ( ) + Result . Len ( ) ) ;
bool bPreviousCharacterWasHex = false ;
const TCHAR * Ptr = * Str ;
while ( TCHAR Ch = * Ptr + + )
{
switch ( Ch )
{
case TEXT ( ' \r ' ) : continue ;
case TEXT ( ' \n ' ) : Result + = TEXT ( " \\ n " ) ; bPreviousCharacterWasHex = false ; break ;
case TEXT ( ' \\ ' ) : Result + = TEXT ( " \\ \\ " ) ; bPreviousCharacterWasHex = false ; break ;
case TEXT ( ' \" ' ) : Result + = TEXT ( " \\ \" " ) ; bPreviousCharacterWasHex = false ; break ;
default :
if ( Ch < 31 | | Ch > = 128 )
{
Result + = FString : : Printf ( TEXT ( " \\ x%04x " ) , Ch ) ;
bPreviousCharacterWasHex = true ;
}
else
{
// We close and open the literal (with TEXT) here in order to ensure that successive hex characters aren't appended to the hex sequence, causing a different number
if ( bPreviousCharacterWasHex & & FCharWide : : IsHexDigit ( Ch ) )
{
Result + = " \" )TEXT( \" " ;
}
bPreviousCharacterWasHex = false ;
Result + = Ch ;
}
break ;
}
}
Result + = TEXT ( " \" ) " ) ;
return Result ;
}
2015-11-18 16:20:49 -05:00
static FString GetMetaDataCodeForObject ( const UObject * Object , const TCHAR * SymbolName , const TCHAR * Spaces )
2014-03-14 14:13:41 -04:00
{
TMap < FName , FString > * MetaData = UMetaData : : GetMapForObject ( Object ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
FUHTStringBuilder Result ;
2014-03-14 14:13:41 -04:00
if ( MetaData & & MetaData - > Num ( ) )
{
typedef TKeyValuePair < FName , FString > KVPType ;
TArray < KVPType > KVPs ;
2015-11-18 16:20:49 -05:00
for ( TPair < FName , FString > & KVP : * MetaData )
2014-03-14 14:13:41 -04:00
{
KVPs . Add ( KVPType ( KVP . Key , KVP . Value ) ) ;
}
// We sort the metadata here so that we can get consistent output across multiple runs
// even when metadata is added in a different order
KVPs . Sort ( [ ] ( const KVPType & Lhs , const KVPType & Rhs ) { return Lhs . Key < Rhs . Key ; } ) ;
2015-11-18 16:20:49 -05:00
for ( const KVPType & KVP : KVPs )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
Result . Logf ( TEXT ( " %sMetaData->SetValue(%s, TEXT( \" %s \" ), %s); \r \n " ) , Spaces , SymbolName , * KVP . Key . ToString ( ) , * CreateLiteralString ( KVP . Value ) ) ;
2014-03-14 14:13:41 -04:00
}
}
return Result ;
}
/**
* Exports the struct ' s C + + properties to the specified output device and adds special
* compiler directives for GCC to pack as we expect .
*
* @ param Struct UStruct to export properties
* @ param TextIndent Current text indentation
* @ param ImportsDefaults whether this struct will be serialized with a default value
*/
2015-03-27 18:10:52 -04:00
void FNativeClassHeaderGenerator : : ExportProperties ( UStruct * Struct , int32 TextIndent , bool bAccessSpecifiers , FUHTStringBuilder * Output )
2014-03-14 14:13:41 -04:00
{
UProperty * Previous = NULL ;
UProperty * PreviousNonEditorOnly = NULL ;
UProperty * LastInSuper = NULL ;
UStruct * InheritanceSuper = Struct - > GetInheritanceSuper ( ) ;
bool bEmittedHasEditorOnlyMacro = false ;
bool bEmittedHasScriptAlign = false ;
2015-03-27 18:10:52 -04:00
check ( Output ! = NULL ) ;
FUHTStringBuilder & HeaderOutput = * Output ;
2014-03-14 14:13:41 -04:00
// Find last property in the lowest base class that has any properties
UStruct * CurrentSuper = InheritanceSuper ;
while ( LastInSuper = = NULL & & CurrentSuper )
{
for ( TFieldIterator < UProperty > It ( CurrentSuper , EFieldIteratorFlags : : ExcludeSuper ) ; It ; + + It )
{
UProperty * Current = * It ;
// Disregard properties with 0 size like functions.
if ( It . GetStruct ( ) = = CurrentSuper & & Current - > ElementSize )
{
LastInSuper = Current ;
}
}
// go up a layer in the hierarchy
CurrentSuper = CurrentSuper - > GetSuperStruct ( ) ;
}
EPropertyHeaderExportFlags CurrentExportType = PROPEXPORT_Public ;
// find structs that are nothing but bytes, account for editor only properties being
// removed on consoles
int32 NumProperties = 0 ;
int32 NumByteProperties = 0 ;
int32 NumNonEditorOnlyProperties = 0 ;
int32 NumNonEditorOnlyByteProperties = 0 ;
for ( TFieldIterator < UProperty > It ( Struct , EFieldIteratorFlags : : ExcludeSuper ) ; It ; + + It )
{
// treat bitfield and bytes the same
bool bIsByteProperty = It - > IsA ( UByteProperty : : StaticClass ( ) ) ; // || It->IsA(UBoolProperty::StaticClass());
bool bIsEditorOnlyProperty = It - > IsEditorOnlyProperty ( ) ;
// count our propertie
NumProperties + + ;
if ( bIsByteProperty )
{
2014-04-02 18:09:23 -04:00
NumByteProperties + + ;
2014-03-14 14:13:41 -04:00
}
if ( ! bIsEditorOnlyProperty )
{
NumNonEditorOnlyProperties + + ;
}
if ( ! bIsEditorOnlyProperty & & bIsByteProperty )
{
NumNonEditorOnlyByteProperties + + ;
}
}
bool bCurrentlyInNotCPPBlock = false ;
// Iterate over all properties in this struct.
for ( TFieldIterator < UProperty > It ( Struct , EFieldIteratorFlags : : ExcludeSuper ) ; It ; + + It )
{
UProperty * Current = * It ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder PropertyText ;
2014-03-14 14:13:41 -04:00
// Disregard properties with 0 size like functions.
if ( It . GetStruct ( ) = = Struct )
{
FString AccessSpecifier = TEXT ( " public " ) ;
if ( bAccessSpecifiers )
{
// find the class info for this class
2015-01-20 09:33:54 -05:00
FClassMetaData * ClassData = GScriptHelper . FindClassData ( Struct ) ;
2015-04-30 10:25:31 -04:00
check ( ClassData ) ;
2014-03-14 14:13:41 -04:00
// find the compiler token for this property
FTokenData * PropData = ClassData - > FindTokenData ( Current ) ;
if ( PropData ! = NULL )
{
// if this property has a different access specifier, then export that now
if ( ( PropData - > Token . PropertyExportFlags & CurrentExportType ) = = 0 )
{
if ( ( PropData - > Token . PropertyExportFlags & PROPEXPORT_Private ) ! = 0 )
{
CurrentExportType = PROPEXPORT_Private ;
AccessSpecifier = TEXT ( " private " ) ;
}
else if ( ( PropData - > Token . PropertyExportFlags & PROPEXPORT_Protected ) ! = 0 )
{
CurrentExportType = PROPEXPORT_Protected ;
AccessSpecifier = TEXT ( " protected " ) ;
}
else
{
CurrentExportType = PROPEXPORT_Public ;
AccessSpecifier = TEXT ( " public " ) ;
}
if ( AccessSpecifier . Len ( ) )
{
// If we are changing the access specifier we need to emit the #endif for the WITH_EDITORONLY_DATA macro first otherwise the access specifier may
// only be conditionally compiled in.
if ( bEmittedHasEditorOnlyMacro )
{
PropertyText . Logf ( TEXT ( " #endif // WITH_EDITORONLY_DATA \r \n " ) ) ;
bEmittedHasEditorOnlyMacro = false ;
}
2015-03-27 18:10:52 -04:00
PropertyText . Logf ( TEXT ( " %s: " ) LINE_TERMINATOR , * AccessSpecifier ) ;
2014-03-14 14:13:41 -04:00
}
}
}
}
// If we are switching from editor to non-editor or vice versa and the state of the WITH_EDITORONLY_DATA macro emission doesn't match, generate the
// #if or #endif appropriately.
bool RequiresHasEditorOnlyMacro = Current - > IsEditorOnlyProperty ( ) ;
if ( ! bEmittedHasEditorOnlyMacro & & RequiresHasEditorOnlyMacro )
{
// Indent code and export CPP text.
PropertyText . Logf ( TEXT ( " #if WITH_EDITORONLY_DATA \r \n " ) ) ;
bEmittedHasEditorOnlyMacro = true ;
}
else if ( bEmittedHasEditorOnlyMacro & & ! RequiresHasEditorOnlyMacro )
{
PropertyText . Logf ( TEXT ( " #endif // WITH_EDITORONLY_DATA \r \n " ) ) ;
bEmittedHasEditorOnlyMacro = false ;
}
// Export property specifiers
// Indent code and export CPP text.
{
2015-03-27 18:10:52 -04:00
FUHTStringBuilder JustPropertyDecl ;
2014-03-14 14:13:41 -04:00
const FString * Dim = GArrayDimensions . Find ( Current ) ;
Current - > ExportCppDeclaration ( JustPropertyDecl , EExportedDeclaration : : Member , Dim ? * * Dim : NULL ) ;
ApplyAlternatePropertyExportText ( * It , JustPropertyDecl ) ;
// Finish up line.
2015-09-21 07:53:49 -04:00
PropertyText . Logf ( TEXT ( " %s%s; \r \n " ) , FCString : : Tab ( TextIndent + 1 ) , * JustPropertyDecl ) ;
2014-03-14 14:13:41 -04:00
}
LastInSuper = NULL ;
2015-03-27 18:10:52 -04:00
Previous = Current ;
2014-03-14 14:13:41 -04:00
if ( ! Current - > IsEditorOnlyProperty ( ) )
{
PreviousNonEditorOnly = Current ;
}
HeaderOutput . Log ( PropertyText ) ;
}
}
if ( bCurrentlyInNotCPPBlock )
{
2015-03-27 18:10:52 -04:00
HeaderOutput + = TEXT ( " #endif \r \n " ) ;
2014-03-14 14:13:41 -04:00
bCurrentlyInNotCPPBlock = false ;
}
// End of property list. If we haven't generated the WITH_EDITORONLY_DATA #endif, do so now.
if ( bEmittedHasEditorOnlyMacro )
{
2015-03-27 18:10:52 -04:00
HeaderOutput + = TEXT ( " #endif // WITH_EDITORONLY_DATA \r \n " ) ;
2014-03-14 14:13:41 -04:00
}
// if the last property that was exported wasn't public, emit a line to reset the access to "public" so that we don't interfere with cpptext
2015-03-27 18:10:52 -04:00
if ( CurrentExportType ! = PROPEXPORT_Public )
2014-03-14 14:13:41 -04:00
{
2015-03-27 18:10:52 -04:00
HeaderOutput + = TEXT ( " public: " ) LINE_TERMINATOR ;
2014-03-14 14:13:41 -04:00
}
}
2015-05-22 02:54:27 -04:00
/**
* Class that is representing a type singleton .
*/
struct FTypeSingleton
2014-03-14 14:13:41 -04:00
{
2015-05-22 02:54:27 -04:00
public :
/** Constructor */
FTypeSingleton ( FString InName , UField * InType )
: Name ( MoveTemp ( InName ) ) , Type ( InType ) { }
2014-06-02 07:02:29 -04:00
2015-05-22 02:54:27 -04:00
/**
* Gets this singleton ' s name .
*/
const FString & GetName ( ) const
{
return Name ;
2014-03-14 14:13:41 -04:00
}
2015-05-22 02:54:27 -04:00
/**
* Gets this singleton ' s extern declaration .
*/
const FString & GetExternDecl ( ) const
2014-03-14 14:13:41 -04:00
{
2015-05-22 02:54:27 -04:00
if ( ExternDecl . IsEmpty ( ) )
2014-03-14 14:13:41 -04:00
{
2015-05-22 02:54:27 -04:00
ExternDecl = GenerateExternDecl ( Type , GetName ( ) ) ;
}
return ExternDecl ;
}
private :
/**
* Extern declaration generator .
*/
static FString GenerateExternDecl ( UField * InType , const FString & InName )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
const TCHAR * TypeStr = nullptr ;
2015-05-22 02:54:27 -04:00
if ( InType - > GetClass ( ) = = UClass : : StaticClass ( ) )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
TypeStr = TEXT ( " UClass " ) ;
2015-05-22 02:54:27 -04:00
}
else if ( InType - > GetClass ( ) = = UFunction : : StaticClass ( ) | | InType - > GetClass ( ) = = UDelegateFunction : : StaticClass ( ) )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
TypeStr = TEXT ( " UFunction " ) ;
2015-05-22 02:54:27 -04:00
}
else if ( InType - > GetClass ( ) = = UScriptStruct : : StaticClass ( ) )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
TypeStr = TEXT ( " UScriptStruct " ) ;
2015-05-22 02:54:27 -04:00
}
else if ( InType - > GetClass ( ) = = UEnum : : StaticClass ( ) )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
TypeStr = TEXT ( " UEnum " ) ;
2015-05-22 02:54:27 -04:00
}
else
{
FError : : Throwf ( TEXT ( " Unsupported item type to get extern for. " ) ) ;
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
return FString : : Printf (
TEXT ( " \t %s_API class %s* %s; \r \n " ) ,
2015-05-22 02:54:27 -04:00
* FPackageName : : GetShortName ( InType - > GetOutermost ( ) ) . ToUpper ( ) ,
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
TypeStr ,
* InName
) ;
2015-05-22 02:54:27 -04:00
}
/** Field that stores this singleton name. */
FString Name ;
/** Cached field that stores this singleton extern declaration. */
mutable FString ExternDecl ;
/** Type of the singleton */
UField * Type ;
} ;
/**
* Class that represents type singleton cache .
*/
class FTypeSingletonCache
{
public :
/**
* Gets type singleton from cache .
*
* @ param Type Singleton type .
* @ param bRequiresValidObject Does it require a valid object ?
*/
static const FTypeSingleton & Get ( UField * Type , bool bRequiresValidObject = true )
{
static TMap < FTypeSingletonCacheKey , FTypeSingleton > CacheData ;
FTypeSingletonCacheKey Key ( Type , bRequiresValidObject ) ;
if ( FTypeSingleton * SingletonPtr = CacheData . Find ( Key ) )
{
return * SingletonPtr ;
}
return CacheData . Add ( Key ,
FTypeSingleton ( GenerateSingletonName ( Type , bRequiresValidObject ) , Type )
) ;
}
private :
/**
* Private type that represents cache map key .
*/
struct FTypeSingletonCacheKey
{
/** FTypeSingleton type */
UField * Type ;
/** If this type singleton requires valid object. */
bool bRequiresValidObject ;
/* Constructor */
FTypeSingletonCacheKey ( UField * InType , bool bInRequiresValidObject )
: Type ( InType ) , bRequiresValidObject ( bInRequiresValidObject )
{ }
/**
* Equality operator .
*
* @ param Other Other key .
*
* @ returns True if this is equal to Other . False otherwise .
*/
bool operator = = ( const FTypeSingletonCacheKey & Other ) const
{
return Type = = Other . Type & & bRequiresValidObject = = Other . bRequiresValidObject ;
}
/**
* Gets hash value for this object .
*/
friend uint32 GetTypeHash ( const FTypeSingletonCacheKey & Object )
{
return HashCombine (
GetTypeHash ( Object . Type ) ,
GetTypeHash ( Object . bRequiresValidObject )
) ;
}
} ;
/**
* Generates singleton name .
*/
static FString GenerateSingletonName ( UField * Item , bool bRequiresValidObject )
{
2016-04-28 13:50:05 -04:00
check ( Item ) ;
2015-05-22 02:54:27 -04:00
FString Suffix ;
if ( UClass * ItemClass = Cast < UClass > ( Item ) )
{
if ( ItemClass - > HasAllClassFlags ( CLASS_Intrinsic ) )
2014-03-14 14:13:41 -04:00
{
2015-05-22 02:54:27 -04:00
return FString : : Printf ( TEXT ( " %s::StaticClass() " ) , NameLookupCPP . GetNameCPP ( ItemClass ) ) ;
}
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
if ( ! bRequiresValidObject )
2015-05-22 02:54:27 -04:00
{
Suffix = TEXT ( " _NoRegister " ) ;
}
}
FString Result ;
for ( UObject * Outer = Item ; Outer ; Outer = Outer - > GetOuter ( ) )
{
if ( ! Result . IsEmpty ( ) )
{
Result = TEXT ( " _ " ) + Result ;
}
if ( Cast < UClass > ( Outer ) | | Cast < UScriptStruct > ( Outer ) )
{
FString OuterName = NameLookupCPP . GetNameCPP ( Cast < UStruct > ( Outer ) ) ;
Result = OuterName + Result ;
// Structs can also have UPackage outer.
if ( Cast < UClass > ( Outer ) | | Cast < UPackage > ( Outer - > GetOuter ( ) ) )
{
break ;
}
2014-03-14 14:13:41 -04:00
}
else
{
2015-05-22 02:54:27 -04:00
Result = Outer - > GetName ( ) + Result ;
2014-03-14 14:13:41 -04:00
}
}
2015-05-22 02:54:27 -04:00
// Can't use long package names in function names.
if ( Result . StartsWith ( TEXT ( " /Script/ " ) , ESearchCase : : CaseSensitive ) )
2014-03-14 14:13:41 -04:00
{
2015-05-22 02:54:27 -04:00
Result = FPackageName : : GetShortName ( Result ) ;
2014-03-14 14:13:41 -04:00
}
2015-05-22 02:54:27 -04:00
FString ClassString = NameLookupCPP . GetNameCPP ( Item - > GetClass ( ) ) ;
return FString ( TEXT ( " Z_Construct_ " ) ) + ClassString + TEXT ( " _ " ) + Result + Suffix + TEXT ( " () " ) ;
}
} ;
FString FNativeClassHeaderGenerator : : GetSingletonName ( UField * Item , bool bRequiresValidObject )
{
FString Result = FTypeSingletonCache : : Get ( Item , bRequiresValidObject ) . GetName ( ) ;
UClass * ItemClass = Cast < UClass > ( Item ) ;
if ( ItemClass ! = nullptr & & ItemClass - > HasAllClassFlags ( CLASS_Intrinsic ) )
{
return Result ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
2014-03-14 14:13:41 -04:00
if ( CastChecked < UPackage > ( Item - > GetOutermost ( ) ) ! = Package )
{
// this is a cross module reference, we need to include the right extern decl
2015-05-22 02:54:27 -04:00
FString Extern = FTypeSingletonCache : : Get ( Item , bRequiresValidObject ) . GetExternDecl ( ) ;
2014-03-14 14:13:41 -04:00
2015-05-22 02:54:27 -04:00
bool bAlreadyInSet = false ;
UniqueCrossModuleReferences . Add ( * Extern , & bAlreadyInSet ) ;
if ( ! bAlreadyInSet )
{
CrossModuleGeneratedFunctionDeclarations . Log ( * Extern ) ;
2014-03-14 14:13:41 -04:00
}
}
return Result ;
}
2014-06-02 07:02:29 -04:00
FString FNativeClassHeaderGenerator : : GetSingletonName ( FClass * Item , bool bRequiresValidObject )
{
return GetSingletonName ( ( UClass * ) Item , bRequiresValidObject ) ;
}
2015-09-09 14:07:28 -04:00
FString FNativeClassHeaderGenerator : : GetOverriddenName ( const UField * Item )
{
FString OverriddenName = Item - > GetMetaData ( TEXT ( " OverrideNativeName " ) ) ;
if ( ! OverriddenName . IsEmpty ( ) )
{
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
return OverriddenName . ReplaceCharWithEscapedChar ( ) ;
2015-09-09 14:07:28 -04:00
}
return Item - > GetName ( ) ;
}
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
FName FNativeClassHeaderGenerator : : GetOverriddenFName ( const UField * Item )
{
FString OverriddenName = Item - > GetMetaData ( TEXT ( " OverrideNativeName " ) ) ;
if ( ! OverriddenName . IsEmpty ( ) )
{
return FName ( * OverriddenName ) ;
}
return Item - > GetFName ( ) ;
}
FString FNativeClassHeaderGenerator : : GetOverriddenPathName ( const UField * Item )
{
return FString : : Printf ( TEXT ( " %s.%s " ) , * FClass : : GetTypePackageName ( Item ) , * GetOverriddenName ( Item ) ) ;
}
2015-09-28 14:27:23 -04:00
FString FNativeClassHeaderGenerator : : GetOverriddenNameForLiteral ( const UField * Item )
{
FString OverriddenName = Item - > GetMetaData ( TEXT ( " OverrideNativeName " ) ) ;
if ( ! OverriddenName . IsEmpty ( ) )
{
return TEXT ( " TEXT( \" " ) + OverriddenName + TEXT ( " \" ) " ) ;
}
return TEXT ( " \" " ) + Item - > GetName ( ) + TEXT ( " \" " ) ;
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
FString FNativeClassHeaderGenerator : : PropertyNew ( FString & Meta , UProperty * Prop , const FString & OuterString , const FString & PropMacro , const TCHAR * Name , const TCHAR * Spaces , const TCHAR * SourceStruct )
2014-03-14 14:13:41 -04:00
{
FString ExtraArgs ;
2014-07-29 02:43:48 -04:00
FString GeneratedCrc ;
2014-03-14 14:13:41 -04:00
FString PropNameDep = Prop - > GetName ( ) ;
if ( Prop - > HasAllPropertyFlags ( CPF_Deprecated ) )
{
PropNameDep + = TEXT ( " _DEPRECATED " ) ;
}
if ( UObjectPropertyBase * ObjectProperty = Cast < UObjectPropertyBase > ( Prop ) )
{
UClass * TargetClass = ObjectProperty - > PropertyClass ;
if ( UClassProperty * ClassProperty = Cast < UClassProperty > ( Prop ) )
{
TargetClass = ClassProperty - > MetaClass ;
}
if ( UAssetClassProperty * SubclassOfProperty = Cast < UAssetClassProperty > ( Prop ) )
{
TargetClass = SubclassOfProperty - > MetaClass ;
}
ExtraArgs = FString : : Printf ( TEXT ( " , %s " ) , * GetSingletonName ( TargetClass , false ) ) ;
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
if ( UClassProperty * ClassProperty = Cast < UClassProperty > ( Prop ) )
{
ExtraArgs + = FString : : Printf ( TEXT ( " , %s " ) , * GetSingletonName ( ClassProperty - > PropertyClass , false ) ) ;
}
2014-03-14 14:13:41 -04:00
}
else if ( UInterfaceProperty * InterfaceProperty = Cast < UInterfaceProperty > ( Prop ) )
{
UClass * TargetClass = InterfaceProperty - > InterfaceClass ;
ExtraArgs = FString : : Printf ( TEXT ( " , %s " ) , * GetSingletonName ( TargetClass , false ) ) ;
}
else if ( UStructProperty * StructProperty = Cast < UStructProperty > ( Prop ) )
{
UScriptStruct * Struct = StructProperty - > Struct ;
check ( Struct ) ;
ExtraArgs = FString : : Printf ( TEXT ( " , %s " ) , * GetSingletonName ( Struct ) ) ;
}
else if ( UByteProperty * ByteProperty = Cast < UByteProperty > ( Prop ) )
{
if ( ByteProperty - > Enum )
{
ExtraArgs = FString : : Printf ( TEXT ( " , %s " ) , * GetSingletonName ( ByteProperty - > Enum ) ) ;
}
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
else if ( UEnumProperty * EnumProperty = Cast < UEnumProperty > ( Prop ) )
{
ExtraArgs = FString : : Printf ( TEXT ( " , %s " ) , * GetSingletonName ( EnumProperty - > Enum ) ) ;
}
2014-03-14 14:13:41 -04:00
else if ( UBoolProperty * BoolProperty = Cast < UBoolProperty > ( Prop ) )
{
2016-06-16 11:54:44 -04:00
if ( Cast < UArrayProperty > ( BoolProperty - > GetOuter ( ) ) | | Cast < UMapProperty > ( BoolProperty - > GetOuter ( ) ) | | Cast < USetProperty > ( BoolProperty - > GetOuter ( ) ) )
2014-03-14 14:13:41 -04:00
{
ExtraArgs = FString ( TEXT ( " , 0 " ) ) ; // this is an array of C++ bools so the mask is irrelevant.
}
else
{
check ( SourceStruct ) ;
ExtraArgs = FString : : Printf ( TEXT ( " , CPP_BOOL_PROPERTY_BITMASK(%s, %s) " ) , * PropNameDep , SourceStruct ) ;
}
ExtraArgs + = FString : : Printf ( TEXT ( " , sizeof(%s), %s " ) , * BoolProperty - > GetCPPType ( NULL , 0 ) , BoolProperty - > IsNativeBool ( ) ? TEXT ( " true " ) : TEXT ( " false " ) ) ;
}
else if ( UDelegateProperty * DelegateProperty = Cast < UDelegateProperty > ( Prop ) )
{
UFunction * TargetFunction = DelegateProperty - > SignatureFunction ;
ExtraArgs = FString : : Printf ( TEXT ( " , %s " ) , * GetSingletonName ( TargetFunction ) ) ;
}
else if ( UMulticastDelegateProperty * MulticastDelegateProperty = Cast < UMulticastDelegateProperty > ( Prop ) )
{
UFunction * TargetFunction = MulticastDelegateProperty - > SignatureFunction ;
ExtraArgs = FString : : Printf ( TEXT ( " , %s " ) , * GetSingletonName ( TargetFunction ) ) ;
}
2016-04-28 13:50:05 -04:00
auto GetPropName = [ ] ( UProperty * InProp ) - > FString
{
if ( ! GUnsizedProperties . Contains ( InProp ) )
{
return InProp - > GetClass ( ) - > GetName ( ) ;
}
if ( InProp - > IsA < UIntProperty > ( ) )
{
return TEXT ( " UnsizedIntProperty " ) ;
}
check ( InProp - > IsA < UUInt32Property > ( ) ) ;
return TEXT ( " UnsizedUIntProperty " ) ;
} ;
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
const TCHAR * UPropertyObjectFlags = FClass : : IsOwnedByDynamicType ( Prop ) ? TEXT ( " RF_Public|RF_Transient " ) : TEXT ( " RF_Public|RF_Transient|RF_MarkAsNative " ) ;
FString Constructor = FString : : Printf ( TEXT ( " new(EC_InternalUseOnlyConstructor, %s, TEXT( \" %s \" ), %s) U%s(%s, 0x%016llx%s); " ) ,
2014-03-14 14:13:41 -04:00
* OuterString ,
2015-09-09 14:07:28 -04:00
* FNativeClassHeaderGenerator : : GetOverriddenName ( Prop ) ,
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
UPropertyObjectFlags ,
2016-04-28 13:50:05 -04:00
* GetPropName ( Prop ) ,
2014-03-14 14:13:41 -04:00
* PropMacro ,
Prop - > PropertyFlags & ~ CPF_ComputedFlags ,
* ExtraArgs ) ;
TheFlagAudit . Add ( Prop , TEXT ( " PropertyFlags " ) , Prop - > PropertyFlags ) ;
2014-07-29 02:43:48 -04:00
FString Lines = FString : : Printf ( TEXT ( " %sUProperty* %s = %s%s \r \n " ) ,
2014-03-14 14:13:41 -04:00
Spaces ,
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
Name ,
2014-07-29 02:43:48 -04:00
* Constructor ,
2014-10-30 09:53:47 -04:00
* GetGeneratedCodeCRCTag ( Prop ) ) ;
2014-03-14 14:13:41 -04:00
if ( Prop - > ArrayDim ! = 1 )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
Lines + = FString : : Printf ( TEXT ( " %s%s->ArrayDim = CPP_ARRAY_DIM(%s, %s); \r \n " ) , Spaces , Name , * PropNameDep , SourceStruct ) ;
2014-03-14 14:13:41 -04:00
}
if ( Prop - > RepNotifyFunc ! = NAME_None )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
Lines + = FString : : Printf ( TEXT ( " %s%s->RepNotifyFunc = FName(TEXT( \" %s \" )); \r \n " ) , Spaces , Name , * Prop - > RepNotifyFunc . ToString ( ) ) ;
2014-03-14 14:13:41 -04:00
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
Meta + = GetMetaDataCodeForObject ( Prop , Name , Spaces ) ;
2014-03-14 14:13:41 -04:00
return Lines ;
}
void FNativeClassHeaderGenerator : : OutputProperties ( FString & Meta , FOutputDevice & OutputDevice , const FString & OuterString , TArray < UProperty * > & Properties , const TCHAR * Spaces )
{
bool bEmittedHasEditorOnlyMacro = false ;
for ( int32 Index = Properties . Num ( ) - 1 ; Index > = 0 ; Index - - )
{
bool RequiresHasEditorOnlyMacro = Properties [ Index ] - > IsEditorOnlyProperty ( ) ;
if ( ! bEmittedHasEditorOnlyMacro & & RequiresHasEditorOnlyMacro )
{
// Indent code and export CPP text.
OutputDevice . Logf ( TEXT ( " #if WITH_EDITORONLY_DATA \r \n " ) ) ;
bEmittedHasEditorOnlyMacro = true ;
}
else if ( bEmittedHasEditorOnlyMacro & & ! RequiresHasEditorOnlyMacro )
{
OutputDevice . Logf ( TEXT ( " #endif // WITH_EDITORONLY_DATA \r \n " ) ) ;
bEmittedHasEditorOnlyMacro = false ;
}
2014-11-06 15:16:05 -05:00
OutputProperty ( Meta , OutputDevice , OuterString , Properties [ Index ] , Spaces ) ;
2014-03-14 14:13:41 -04:00
}
if ( bEmittedHasEditorOnlyMacro )
{
OutputDevice . Logf ( TEXT ( " #endif // WITH_EDITORONLY_DATA \r \n " ) ) ;
}
}
2015-01-20 09:33:54 -05:00
inline FString GetEventStructParamsName ( UObject * Outer , const TCHAR * FunctionName )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
FString OuterName ;
if ( Outer - > IsA < UClass > ( ) )
{
OuterName = ( ( UClass * ) Outer ) - > GetName ( ) ;
}
else if ( Outer - > IsA < UPackage > ( ) )
{
2015-03-27 18:10:52 -04:00
OuterName = ( ( UPackage * ) Outer ) - > GetName ( ) ;
OuterName . ReplaceInline ( TEXT ( " / " ) , TEXT ( " _ " ) , ESearchCase : : CaseSensitive ) ;
2015-01-20 09:33:54 -05:00
}
else
{
FError : : Throwf ( TEXT ( " Unrecognized outer type " ) ) ;
}
FString Result = FString : : Printf ( TEXT ( " %s_event%s_Parms " ) , * OuterName , FunctionName ) ;
2016-01-25 13:25:51 -05:00
if ( Result . Len ( ) & & FChar : : IsDigit ( Result [ 0 ] ) )
{
Result . InsertAt ( 0 , TCHAR ( ' _ ' ) ) ;
}
2014-03-14 14:13:41 -04:00
return Result ;
}
void FNativeClassHeaderGenerator : : OutputProperty ( FString & Meta , FOutputDevice & OutputDevice , const FString & OuterString , UProperty * Prop , const TCHAR * Spaces )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
FString PropName = Prop - > GetName ( ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
FString PropVariableName = FString : : Printf ( TEXT ( " NewProp_%s " ) , * PropName ) ;
2014-03-14 14:13:41 -04:00
{
FString SourceStruct ;
UFunction * Function = Cast < UFunction > ( Prop - > GetOuter ( ) ) ;
if ( Function )
{
while ( Function - > GetSuperFunction ( ) )
{
Function = Function - > GetSuperFunction ( ) ;
}
FString FunctionName = Function - > GetName ( ) ;
if ( Function - > HasAnyFunctionFlags ( FUNC_Delegate ) )
{
FunctionName = FunctionName . LeftChop ( FString ( HEADER_GENERATED_DELEGATE_SIGNATURE_SUFFIX ) . Len ( ) ) ;
}
2015-01-20 09:33:54 -05:00
SourceStruct = GetEventStructParamsName ( Function - > GetOuter ( ) , * FunctionName ) ;
2014-03-14 14:13:41 -04:00
}
else
{
2014-06-02 07:02:29 -04:00
SourceStruct = NameLookupCPP . GetNameCPP ( CastChecked < UStruct > ( Prop - > GetOuter ( ) ) ) ;
2014-03-14 14:13:41 -04:00
}
FString PropMacroOuterClass ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
FString PropNameDep = PropName ;
2014-03-14 14:13:41 -04:00
if ( Prop - > HasAllPropertyFlags ( CPF_Deprecated ) )
{
PropNameDep + = TEXT ( " _DEPRECATED " ) ;
}
UBoolProperty * BoolProperty = Cast < UBoolProperty > ( Prop ) ;
if ( BoolProperty )
{
OutputDevice . Logf ( TEXT ( " %sCPP_BOOL_PROPERTY_BITMASK_STRUCT(%s, %s, %s); \r \n " ) ,
Spaces ,
* PropNameDep ,
* SourceStruct ,
* BoolProperty - > GetCPPType ( NULL , 0 ) ) ;
2014-10-14 10:29:11 -04:00
PropMacroOuterClass = FString : : Printf ( TEXT ( " FObjectInitializer(), EC_CppProperty, CPP_BOOL_PROPERTY_OFFSET(%s, %s) " ) ,
2014-03-14 14:13:41 -04:00
* PropNameDep , * SourceStruct ) ;
}
else
{
PropMacroOuterClass = FString : : Printf ( TEXT ( " CPP_PROPERTY_BASE(%s, %s) " ) , * PropNameDep , * SourceStruct ) ;
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
OutputDevice . Log ( * PropertyNew ( Meta , Prop , OuterString , PropMacroOuterClass , * PropVariableName , Spaces , * SourceStruct ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-04-21 10:25:59 -04:00
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
// Map of enum class properties to their outer's variable name
TMap < UNumericProperty * , FString > UnderlyingEnumSuffixes ;
2015-04-21 10:25:59 -04:00
if ( UArrayProperty * ArrayProperty = Cast < UArrayProperty > ( Prop ) )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
FString InnerOuterString = FString : : Printf ( TEXT ( " NewProp_%s " ) , * PropName ) ;
2014-10-14 10:29:11 -04:00
FString PropMacroOuterArray = TEXT ( " FObjectInitializer(), EC_CppProperty, 0 " ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
FString InnerVariableName = FString : : Printf ( TEXT ( " NewProp_%s_Inner " ) , * ArrayProperty - > Inner - > GetName ( ) ) ;
OutputDevice . Log ( * PropertyNew ( Meta , ArrayProperty - > Inner , InnerOuterString , PropMacroOuterArray , * InnerVariableName , Spaces ) ) ;
if ( UEnumProperty * EnumArrayProperty = Cast < UEnumProperty > ( ArrayProperty - > Inner ) )
{
UnderlyingEnumSuffixes . Add ( EnumArrayProperty - > UnderlyingProp , MoveTemp ( InnerVariableName ) ) ;
}
2014-03-14 14:13:41 -04:00
}
2015-04-21 10:25:59 -04:00
2016-06-16 11:54:44 -04:00
else if ( UMapProperty * MapProperty = Cast < UMapProperty > ( Prop ) )
2015-04-21 10:25:59 -04:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
FString InnerOuterString = FString : : Printf ( TEXT ( " NewProp_%s " ) , * PropName ) ;
2015-04-21 10:25:59 -04:00
FString PropMacroOuterMap = TEXT ( " FObjectInitializer(), EC_CppProperty, " ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
FString KeyVariableName = FString : : Printf ( TEXT ( " NewProp_%s_KeyProp " ) , * MapProperty - > KeyProp - > GetName ( ) ) ;
FString ValueVariableName = FString : : Printf ( TEXT ( " NewProp_%s_ValueProp " ) , * MapProperty - > ValueProp - > GetName ( ) ) ;
OutputDevice . Log ( * PropertyNew ( Meta , MapProperty - > KeyProp , InnerOuterString , PropMacroOuterMap + TEXT ( " 0 " ) , * KeyVariableName , Spaces ) ) ;
OutputDevice . Log ( * PropertyNew ( Meta , MapProperty - > ValueProp , InnerOuterString , PropMacroOuterMap + TEXT ( " 1 " ) , * ValueVariableName , Spaces ) ) ;
if ( UEnumProperty * EnumKeyProperty = Cast < UEnumProperty > ( MapProperty - > KeyProp ) )
{
UnderlyingEnumSuffixes . Add ( EnumKeyProperty - > UnderlyingProp , MoveTemp ( KeyVariableName ) ) ;
}
if ( UEnumProperty * EnumValueProperty = Cast < UEnumProperty > ( MapProperty - > ValueProp ) )
{
UnderlyingEnumSuffixes . Add ( EnumValueProperty - > UnderlyingProp , MoveTemp ( ValueVariableName ) ) ;
}
2015-04-21 10:25:59 -04:00
}
2016-06-16 11:54:44 -04:00
else if ( USetProperty * SetProperty = Cast < USetProperty > ( Prop ) )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
FString InnerOuterString = FString : : Printf ( TEXT ( " NewProp_%s " ) , * PropName ) ;
FString PropMacroOuterSet = TEXT ( " FObjectInitializer(), EC_CppProperty, 0 " ) ;
FString ElementVariableName = FString : : Printf ( TEXT ( " NewProp_%s_ElementProp " ) , * SetProperty - > ElementProp - > GetName ( ) ) ;
OutputDevice . Log ( * PropertyNew ( Meta , SetProperty - > ElementProp , InnerOuterString , PropMacroOuterSet , * ElementVariableName , Spaces ) ) ;
if ( UEnumProperty * EnumSetProperty = Cast < UEnumProperty > ( SetProperty - > ElementProp ) )
{
UnderlyingEnumSuffixes . Add ( EnumSetProperty - > UnderlyingProp , MoveTemp ( ElementVariableName ) ) ;
}
}
else if ( UEnumProperty * EnumProperty = Cast < UEnumProperty > ( Prop ) )
{
UnderlyingEnumSuffixes . Add ( EnumProperty - > UnderlyingProp , PropVariableName ) ;
}
FString PropMacroOuterEnum = TEXT ( " FObjectInitializer(), EC_CppProperty, 0 " ) ;
for ( const TPair < UNumericProperty * , FString > & PropAndVarName : UnderlyingEnumSuffixes )
{
OutputDevice . Log ( * PropertyNew ( Meta , PropAndVarName . Key , PropAndVarName . Value , PropMacroOuterEnum , * ( PropAndVarName . Value + TEXT ( " _Underlying " ) ) , Spaces ) ) ;
2016-06-16 11:54:44 -04:00
}
2014-03-14 14:13:41 -04:00
}
static bool IsAlwaysAccessible ( UScriptStruct * Script )
{
FName ToTest = Script - > GetFName ( ) ;
if ( ToTest = = NAME_Matrix )
{
return false ; // special case, the C++ FMatrix does not have the same members.
}
bool Result = Script - > HasDefaults ( ) ; // if we have cpp struct ops in it for UHT, then we can assume it is always accessible
if ( ToTest = = NAME_Plane
| | ToTest = = NAME_Vector
| | ToTest = = NAME_Vector4
| | ToTest = = NAME_Quat
| | ToTest = = NAME_Color
)
{
check ( Result ) ;
}
return Result ;
}
static void FindNoExportStructs ( TArray < UScriptStruct * > & Structs , UStruct * Start )
{
while ( Start )
{
if ( UScriptStruct * StartScript = Cast < UScriptStruct > ( Start ) )
{
if ( StartScript - > StructFlags & STRUCT_Native )
{
break ;
}
if ( ! IsAlwaysAccessible ( StartScript ) ) // these are a special cases that already exists and if wrong if exported nievely
{
// this will topologically sort them in reverse order
Structs . Remove ( StartScript ) ;
Structs . Add ( StartScript ) ;
}
}
2015-04-21 10:25:59 -04:00
for ( UProperty * Prop : TFieldRange < UProperty > ( Start , EFieldIteratorFlags : : ExcludeSuper ) )
2014-03-14 14:13:41 -04:00
{
2015-04-21 10:25:59 -04:00
if ( UStructProperty * StructProp = Cast < UStructProperty > ( Prop ) )
2014-03-14 14:13:41 -04:00
{
2015-04-21 10:25:59 -04:00
FindNoExportStructs ( Structs , StructProp - > Struct ) ;
2014-03-14 14:13:41 -04:00
}
2015-04-21 10:25:59 -04:00
else if ( UArrayProperty * ArrayProp = Cast < UArrayProperty > ( Prop ) )
2014-03-14 14:13:41 -04:00
{
2015-04-21 10:25:59 -04:00
if ( UStructProperty * InnerStructProp = Cast < UStructProperty > ( ArrayProp - > Inner ) )
{
FindNoExportStructs ( Structs , InnerStructProp - > Struct ) ;
}
}
else if ( UMapProperty * MapProp = Cast < UMapProperty > ( Prop ) )
{
if ( UStructProperty * KeyStructProp = Cast < UStructProperty > ( MapProp - > KeyProp ) )
{
FindNoExportStructs ( Structs , KeyStructProp - > Struct ) ;
}
if ( UStructProperty * ValueStructProp = Cast < UStructProperty > ( MapProp - > ValueProp ) )
{
FindNoExportStructs ( Structs , ValueStructProp - > Struct ) ;
}
2014-03-14 14:13:41 -04:00
}
2016-06-16 11:54:44 -04:00
else if ( USetProperty * SetProp = Cast < USetProperty > ( Prop ) )
{
if ( UStructProperty * ElementStructProp = Cast < UStructProperty > ( SetProp - > ElementProp ) )
{
FindNoExportStructs ( Structs , ElementStructProp - > Struct ) ;
}
}
2014-03-14 14:13:41 -04:00
}
Start = Start - > GetSuperStruct ( ) ;
}
}
2015-11-18 16:20:49 -05:00
FString GetPackageSingletonName ( const UPackage * Package )
2014-03-14 14:13:41 -04:00
{
2014-06-02 07:02:29 -04:00
static FString ClassString = NameLookupCPP . GetNameCPP ( UPackage : : StaticClass ( ) ) ;
2015-11-18 16:20:49 -05:00
return FString ( TEXT ( " Z_Construct_ " ) ) + ClassString + TEXT ( " _ " ) + Package - > GetName ( ) . Replace ( TEXT ( " / " ) , TEXT ( " _ " ) ) + TEXT ( " () " ) ;
2014-03-14 14:13:41 -04:00
}
2015-11-18 16:20:49 -05:00
void FNativeClassHeaderGenerator : : ExportGeneratedPackageInitCode ( const UPackage * InPackage )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
FString ApiString = GetAPIString ( ) ;
2015-04-22 14:15:56 -04:00
FString SingletonName ( GetPackageSingletonName ( InPackage ) ) ;
2014-03-14 14:13:41 -04:00
2015-03-27 18:10:52 -04:00
FUHTStringBuilder & GeneratedFunctionText = GetGeneratedFunctionTextDevice ( ) ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
GeneratedFunctionDeclarations . Logf ( TEXT ( " \t %sclass UPackage* %s; \r \n " ) , * ApiString , * SingletonName ) ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
GeneratedFunctionText . Logf ( TEXT ( " \t UPackage* %s \r \n " ) , * SingletonName ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t { \r \n " ) ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t static UPackage* ReturnPackage = NULL; \r \n " ) ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t if (!ReturnPackage) \r \n " ) ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t { \r \n " ) ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t ReturnPackage = CastChecked<UPackage>(StaticFindObjectFast(UPackage::StaticClass(), NULL, FName(TEXT( \" %s \" )), false, false)); \r \n " ) , * InPackage - > GetName ( ) ) ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
FString Meta = GetMetaDataCodeForObject ( InPackage , TEXT ( " ReturnPackage " ) , TEXT ( " \t \t \t " ) ) ;
2014-03-14 14:13:41 -04:00
if ( Meta . Len ( ) )
{
GeneratedFunctionText . Logf ( TEXT ( " #if WITH_METADATA \r \n " ) ) ;
2015-09-21 07:53:49 -04:00
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t UMetaData* MetaData = ReturnPackage->GetMetaData(); \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
GeneratedFunctionText . Log ( * Meta ) ;
GeneratedFunctionText . Logf ( TEXT ( " #endif \r \n " ) ) ;
}
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
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t ReturnPackage->SetPackageFlags(PKG_CompiledIn | 0x%08X); \r \n " ) , InPackage - > GetPackageFlags ( ) & ( PKG_ClientOptional | PKG_ServerSideOnly | PKG_EditorOnly | PKG_Developer ) ) ;
Copying //UE4/Dev-Framework to Dev-Main (//UE4/Dev-Main)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2720406 on 2015/10/07 by Aaron.McLeran
Audio optimization
Don't search for nearest listener if there's only 1 listener.
Change 2720411 on 2015/10/07 by Aaron.McLeran
Fixing HRTF spatialization code with recent changes to stereo spatialization.
HRTF emitter posiition doesn't need to be converted to XAudio2 coordinates.
Change 2723829 on 2015/10/09 by Mieszko.Zielinski
Fixed NavigationSystem trying to set label of newly spawned navigation data #UE4
UE-21880
Change 2723873 on 2015/10/09 by Mieszko.Zielinski
Fixed a bug in FNavAgentProperties::IsEquivalent resulting in failing the test for FNavAgentProperties instances having default AgentStepHeight value (-1) #UE4
UE-21977
Change 2724834 on 2015/10/12 by Ori.Cohen
PR #1634: Add PxVehicleDriveNW support to PhysXVehicleManager.cpp (Contributed by zeduk)
Change 2724850 on 2015/10/12 by Marc.Audy
Fix sound not restarting in matinee preview when jumping back along timeline after reaching end
#codereview Nick.Darnell
Change 2726499 on 2015/10/13 by Ori.Cohen
Fix edge case where sphyl length and radius are 0 and they are not properly clamped to 0.1
Change 2726689 on 2015/10/13 by Marc.Audy
Make UPackage::PackageFlags private
Add debugging for UE-21181 to try and track down when EditorWorld's PackageFlags are getting flagged as PlayInEditor
#codereview Mike.Fricker
Change 2726862 on 2015/10/13 by Lukasz.Furman
removed unused code from DetourNavMeshQuery
#ue4 UE-21988
Change 2726888 on 2015/10/13 by Lukasz.Furman
fixed observer abort: both mode in behavior tree's cone check decorator
#ue4 UE-19375
Change 2726913 on 2015/10/13 by Lukasz.Furman
navmesh raycast will use nearest poly containing ray origin instead of just closest one
#ue4 UE-19334
Change 2726920 on 2015/10/13 by Marc.Audy
Re-unify ULevelStreaming::GetWorldAssetPackageName and GetWorldAssetPackageFName
#codereview Dmitriy.Dyomin, Bob.Tellez
Change 2726931 on 2015/10/13 by Lukasz.Furman
fixed missing Tick event in aborting behavior tree tasks from abandoned subtree
#ue4 UE-21777
Change 2728093 on 2015/10/14 by Ori.Cohen
Fix edge case of sphyl scale take two. The previous approach did double scaling
Change 2728577 on 2015/10/14 by Mieszko.Zielinski
Improved navmesh labeling condition #UE4
Change suggested by github user
#rb Lukasz.Furman
Change 2728587 on 2015/10/14 by Lukasz.Furman
fixed crowd simulation for auto possessed pawns placed on level
#ue4
#rb Mieszko.Zielinski
Change 2728629 on 2015/10/14 by Lukasz.Furman
fixed influence of navmesh edges on crowd simulation near end of path
#ue4 UE-21380
#rb Mieszko.Zielinski
Change 2728678 on 2015/10/14 by Lukasz.Furman
added Z check to detour's crowd avoidance segment gathering
#ue4 UE-20889
#rb Mieszko.Zielinski
Change 2728745 on 2015/10/14 by Lukasz.Furman
fixed copy&paste operation in behavior tree's composite decorators subgraphs
#ue4 UE-18740
Change 2729276 on 2015/10/14 by Stan.Melax
ensure all actors get recreated with new collision shape specification.
this wasn't being done for a couple of editing methods.
todo: this should be merged into 4.10
#UE-20961
#rb ori.cohen
Change 2730709 on 2015/10/15 by Marc.Audy
Prevent memory corruption when an invalid controller ID is passed in to the forcefeedback channel functions
#rb Lina.Halper
Change 2733590 on 2015/10/19 by Benn.Gallagher
Fixed various crashes when using undo and redo while manipulating state machines UE 22088
Change 2735143 on 2015/10/20 by Lukasz.Furman
clearing behavior tree debugger's state when displayed subtree becomes inactive
#ue4
#rb Mieszko.Zielinski
Change 2735144 on 2015/10/20 by Lukasz.Furman
rebuilding behavior tree graph node order when node is being moved
#ue4
#rb Mieszko.Zielinski
Change 2735403 on 2015/10/20 by sebastian.kowalczyk
Integrated fix for issue UE-18594 "Gameplay Debugger is hijacking the Canvas" issue from 4.10 (2735391). Extended previous fix to care about OSX users - it's possible to configure shortcuts in engine config file now (little different ones for osx platform).
Change 2736406 on 2015/10/21 by sebastian.kowalczyk
Added new GameplayDebugger as a plugin. Old gameplay debugger is still here to keep backward compatibility but it's deprecated now. Current projects should be moved to use new plugin soon.
Change 2736436 on 2015/10/21 by sebastian.kowalczyk
Fixed crash in gameplay debugger with player set as debug target.
Change 2736437 on 2015/10/21 by sebastian.kowalczyk
Added visual indicator around selected pawn to fix FORT-10273 issue. (FN is not using new gd plugin yet).
Change 2736489 on 2015/10/21 by sebastian.kowalczyk
Hide internal and debug hud classes from drop down lists.
Change 2736504 on 2015/10/21 by sebastian.kowalczyk
Fix for UE-18548 "EnableGDT does not work correctly in PIE".
Change 2736529 on 2015/10/21 by sebastian.kowalczyk
Fixed UE-18548 "EnableGDT does not work correctly in PIE"
Change 2736588 on 2015/10/21 by sebastian.kowalczyk
Removed old log visualizer classes.
Change 2736700 on 2015/10/21 by sebastian.kowalczyk
Fixed UE-19256 "Perception debug data doesn't get replicated by Gameplay Debuger" for old gameplay debugger module.
Change 2737180 on 2015/10/21 by Zak.Middleton
#ue4 - Fix UPrimitiveComponent::GetCollisionShape not correctly enforcing bounds limits.
#rb Aaron.Mcleran
#jira UE-22436
Change 2738084 on 2015/10/22 by sebastian.kowalczyk
Better indication of selected pawn for Gameplay Debugger.
Change 2738413 on 2015/10/22 by Marc.Audy
Disable duplication of worlds/maps via the content browser
#jira UE-22200
#rb James.Golding
Change 2739743 on 2015/10/23 by bruce.nesbit
UE-18707 - Issue with drawing material triangle on canvas #1387
Added DrawTriangleUsingVertexColor
Change 2739751 on 2015/10/23 by bruce.nesbit
Revised bShowDebugForReticleTarget should not be static #1539
Change 2739788 on 2015/10/23 by bruce.nesbit
Revised the 2 functions that used FTriangleRenderer::DrawTriangle to use FTriangleRenderer::DrawTriangleUsingVertexColor
Fixed compile error
Change 2739870 on 2015/10/23 by Marc.Audy
Avoid issues while detaching child components if OnAttachmentChange were to remove a sibling component itself.
#jira UE-22362
#rb Zak.Middleton
Change 2739882 on 2015/10/23 by sebastian.kowalczyk
Fix for UE-20901 "VisualLog redirections are broken after PIE finishes" issue.
Change 2740140 on 2015/10/23 by Marc.Audy
Ensure that components reregister tick functions after seamless travel
#jira UE-20892
#rb Zak.Middleton
Change 2740614 on 2015/10/23 by Ori.Cohen
Fix linker issues for people wanting to use physics lock lambdas
Change 2740674 on 2015/10/23 by Aaron.McLeran
Sound Focus Feature
Added new parameters to SoundAttenuation settings to allow audio to change behavior based on its angle to the listener
- Define the min/max azimuth angle to establish in-focus and non-focus regions
- Can scale the priority of a sound based on focus angle
- Can attenuate the volume of a sound based on focus angle
- Can scale the listener-emitter distance based on focus angle
- Distance scale is applied when determining max audible distance for USoundBase
- Can opt-out of focus effects for a sound at the USoundBase level
#rb Ryan.Vance
Change 2741542 on 2015/10/26 by Lukasz.Furman
lowered min value clamping in navigation filter properties
#ue4
#rb Mieszko.Zielinski
Change 2743227 on 2015/10/27 by Marc.Audy
Make ASceneCaptureCube subclassable outside of Engine module
#jira UE-22609
Make USceneCaptureComponentCube::UpdateContent callable outside of Engine module
#jira UE-22610
#rb Jeff.Farris
Change 2743255 on 2015/10/27 by Marc.Audy
Wrap FActorSpawnParameters class with deprecation warning disable pragma instead of hand implementing copy constructor
#rb Jeff.Farris
Change 2743729 on 2015/10/27 by Ori.Cohen
Fix case where we spawn and adjust location which gives us implicit velocity.
#codereview Stan.Melax
Change 2746135 on 2015/10/29 by sebastian.kowalczyk
Fixed UE-21668 "Saving log filters selected in LogVisualizer causes insane ini file sizes! And doesn't really work."
Change 2746437 on 2015/10/29 by Lukasz.Furman
pass on verifying behavior tree stack before accessing its elements
#ue4
#rb Mieszko.Zielinski
Change 2748028 on 2015/10/30 by sebastian.kowalczyk
Changed GameplayDebugger's console variable from gd.EQSOnHUD to ai.gd.EQSOnHUD" after suggestion with MieszkoZ.
Change 2748184 on 2015/10/30 by Aaron.McLeran
UE-22693 Fix for streaming bug
- 3rd decoded buffer in initial 3 buffers was not getting submitted to xaudio2 voice resulting in garbled/skipped audio.
- Wasn't able to repro the 'cannot read chunk' part of the bug
#rb ryan.vance
Change 2749255 on 2015/10/31 by sebastian.kowalczyk
Fixed ai.gd.EQSOnHUD console variable after rename from gd.EQSOnHUD.
Change 2749276 on 2015/10/31 by sebastian.kowalczyk
Added switch to toggle highlight of selected actor to GameplayDebugger.
Change 2749318 on 2015/10/31 by sebastian.kowalczyk
New Gameplay Debugger plugin can be used with old module simultaneously. It's best to configure different keyboard binding for plugin when using old module (it can be set in project settings, for new gameplay debugger plugin - when activated for project).
Change 2749337 on 2015/10/31 by sebastian.kowalczyk
Fixed GameplayDebugger compilation in shipping/test builds.
Change 2749376 on 2015/10/31 by sebastian.kowalczyk
Small clean-up in gameplay debugger class for BT.
Change 2749931 on 2015/11/02 by James.Golding
Add stats to ProcMeshComp
Change 2749932 on 2015/11/02 by James.Golding
Remove PhysicsThrusterComponent.h from Engine.h
Change 2749960 on 2015/11/02 by James.Golding
- Fix PS4 compile errors in ActiveSound.cpp
- Constructor order of FActiveSound
- Shadowed AudioComponent var in CheckOcclusion
#RB thomas.sarkanen
#codereview aaron.mcleran
Change 2749961 on 2015/11/02 by James.Golding
Fix PS4 compile errors in GameplayDebuggerBaseObject.cpp
- Shadowed DefaultContext function param, now just Context, which matches declaration
#RB thomas.sarkanen
#codereview sebastian.kowalczyk
Change 2750026 on 2015/11/02 by Thomas.Sarkanen
Anim Multithreading: thread-safety refactor
Segregated access to various parts of anim update data by spitting off a new proxy class (FAnimInstanceProxy) containing all data accessed in Update() and Evaluate() passes. Gated access to the proxy data on the game thread in a number of ways:
- Explicit access via GetValueOnGameThread() - this blocks on any existing task, completes and then allows control to return to the accessing function. This allows stuff like Blueprints to continue to operate as normal.
- Explicit access via GetValueOnAnyThread() - this ensures that in the limited set of circumstances we need this (Blueprint pure functions mostly) that conditions are met about concurrent access.
- Deprecating many APIs on UAnimInstance that should not be used (and in fact are not used at present, happily).
Derived classes of UAnimInstance can override the creation of the proxy class to create their own type. We do this for UAnimSingleNodeInstance etc.
Any API deprecation should continue to function - no functions have been removed yet. The only things that are not backwards-compatible are direct access to some public member variables for which there is no way to support (e.g. via references, for example UngroupedActivePlayerArrays).
Some APIs have been changed to more specifically represent the dependencies involved. For example TickAssetPlayerInstance() used to take a UAnimInstance*, only to use it to simply queue notifies. This has been deprecated and replaced with a new FNotifyQueue API. FNotifyQueue also uses a thread-safe FRandomStream instead of FMath::Rand.
Many changes are due to substituting accessor functions for direct variable access.
Removed 'service' tick group as we no longer need to segregate the running of our parallel update.
Anim nodes that need to do some game thread-side update should register for a pre-update callback delegate in the proxy. See FAnimNode_AnimDynamics for an example of this.
Moved UpdateActiveVertexAnims into FAnimRuntime so I can subsume some of the code that was in USkeletalMeshComponent::EvaluateAnimation into UAnimInstance (and hence keep the proxy access private).
#rb Martin.Wilson,Lina.Halper
#codereview Michael.Noland
Change 2750077 on 2015/11/02 by Marc.Audy
Expose UInputComponent::BindAction that supports WithKey delegate signature
Change 2751767 on 2015/11/03 by Thomas.Sarkanen
Added extra support to Anim Blueprint 'fast-path'
Added support for negated bools (value gets negated during copy).
Added support for copying from struct members (via break struct) and split struct pins.
Removed potentially troublesome references to BP-constructed UProperties, replacing them with the property FName. This adds some extra Initialize() overhead, but prevents various crash-on load issues (one when generating the class CRC). Added guard to prevent multiple initialization to save this more expensive work being done more often.
#rb Martin.Wilson
Change 2752158 on 2015/11/03 by Jeff.Farris
Fixed UGameplayStatics::SpawnEmitterAttached() to register the ParticleSystemComponent after it spawns.
#rb marc.audy
Change 2752159 on 2015/11/03 by Jeff.Farris
Improvements to camera lens effects to (EmitterCameraLensEffectBase)
- can now specify a transform to align the emitter with the camera
- exposed several key parameters to Blueprints
- ENGINE_API now applies to the entire class
#rb marc.audy
Change 2753454 on 2015/11/04 by Thomas.Sarkanen
Fixup deprecation warnings fallout from multithreaded update changes.
Fixed up use of AnimInstance in Vicon plugin.
Fixed up use of AnimInstance in slope warping node.
Un-deprecated some APIs to become warning free (these APIs are safe to call but just a 'bad idea if you want to do it right').
Also an extra API to allow for smoother transition: Allow custom allocation/deallocation (including using a proxy member struct) by providing an override point for proxy destruction.
#rb Martin.Wilson
Change 2754099 on 2015/11/04 by Ori.Cohen
Fix for task threads dropping stats (from Gil)
#rb Gil.Gribb
Change 2754449 on 2015/11/04 by Marc.Audy
Ensure that components created from an Actor's blueprint BeginPlay implementation get BeginPlay called on them and register their component ticks
#jira UE-20853
Reorganize some booleans to get better bit packing
#rb Jeff.Farris
#codereview Mieszko.Zielinski
Change 2754573 on 2015/11/04 by Aaron.McLeran
Fixing audio component PostLoad code to not set all LowPassFilterFrequency values to 0.0f
Change 2755345 on 2015/11/05 by Thomas.Sarkanen
Added deprecated constructors for various animation contexts
Allows existing code to compile if it creates its own contexts from UAnimInstance.
#rb James.Golding
Change 2755348 on 2015/11/05 by James.Golding
Add BP-exposed SetBoundsScale function to PrimitiveComponent
#RB thomas.sarkanen
Change 2755437 on 2015/11/05 by Marc.Audy
Fix compile errors
#codereview Thomas.Sarkanen, Mieszko.Zielinski, Aaron.McLeran
Change 2755982 on 2015/11/05 by Marc.Audy
Move HeaderParse changes for deprecation macro from Core
Fix world settings warning
Change 2756028 on 2015/11/05 by Marc.Audy
Fix shadow variable issue
Change 2756090 on 2015/11/05 by Ori.Cohen
Improve budget tool so that task threads are computed automatically.
#rb Gil.Gribb
Change 2756120 on 2015/11/05 by Mieszko.Zielinski
Fixed AIController::MoveTo not using DefaultQueryExtent of its navigation data #UE4
#rb Lukasz.Furman
Change 2756243 on 2015/11/05 by Mieszko.Zielinski
Fixed AI perception sight's "auto-visibility" mechanism totally skipping distance and vision cone checks #UE4
The old way was resulting in false positives when for example observer teleported somewhere far
#rb Lukasz.Furman
#codereview John.Abercrombie
Change 2756280 on 2015/11/05 by Mieszko.Zielinski
Minor VLog code cleanup and dumb-fixing visual logger accessing timer manager off of game thread #UE4
#rb Lukasz.Furman
Change 2756500 on 2015/11/05 by Mieszko.Zielinski
Added sanity-checking to BlueprintNodeHelpers::HasBlueprintFunction and cleaned up its usage #UE4
Also, refactored its parameters into references over pointers.
#rb Lukasz.Furman
Change 2757041 on 2015/11/06 by Thomas.Sarkanen
Removed check() in UAnimInstance::GetProxyOnAnyThread()
The check was no longer needed as if we are on the game thread we block until tasks are completed below, and if we are on any other thread we are 'safe' anyway.
#rb James.Golding
Change 2757207 on 2015/11/06 by Ori.Cohen
Fix incorrect root body cache which causes a single frame "freak out" when simulating physics from an animation
#rb Lina.Halper
Change 2757238 on 2015/11/06 by Marc.Audy
Force compiler generated functions to be generated for FHierarchicalSimplification in WorldSettings.h so that they are generated while the deprecation warnings are disabled.
#rb Mike.Fricker
Change 2757284 on 2015/11/06 by Stan.Melax
tapered capsule drawing
cloth collision happens with spheres and for the hull or tapered capsule goemetry between any specified pair of spheres.
(this was already code reviewed before, but missed the check-in window before streamtime)
#rb ori.cohen
Change 2757743 on 2015/11/06 by Lukasz.Furman
fixed node memory allocations for injected behavior tree decorators
#ue4 UE-22783
#rb Mieszko.Zielinski
Change 2757772 on 2015/11/06 by Lukasz.Furman
added setters for crowd avoidance
#ue4 UE-22785
#rb Mieszko.Zielinski
Change 2758422 on 2015/11/07 by Lina.Halper
Potential fix for invalid root bone index input
#jira :/UE-23086
#code review: Ori.Cohen
Change 2758429 on 2015/11/07 by Mieszko.Zielinski
Reimplemented a fix for AI Sight's "auto seeing" mechanics in a more flexible way #UE4
#jira UE-23089
Change 2758571 on 2015/11/08 by Mieszko.Zielinski
Modified ensure condition in UAIPerceptionComponent::OnRegister so it doesn't go off when BP does it's magic when components are being added to a BP actor class #UE4
#jira UE-23080
Change 2758821 on 2015/11/09 by Thomas.Sarkanen
Fixed animations no longer playing when using a dedicated server.
Uses correct logic to determine whether we are running as a server or not.
#rb Martin.Wilson
Change 2758920 on 2015/11/09 by Marc.Audy
Don't dereference weak object pointers repeatedly in FBoneContainer::Initialize
#rb Lina.Halper
Change 2758944 on 2015/11/09 by Ori.Cohen
Fix crash when stats are only on one thread and budget mode is used
Change 2758967 on 2015/11/09 by Benn.Gallagher
Fix for crash undoing notify socket changes in Persona, needed to recache the notify track data after the transaction had reserialized the sequence.
#jira UE-22963
Change 2758973 on 2015/11/09 by Benn.Gallagher
Added new 'Random Player' node for anim graphs allowing the user to play a selection of animations in a random order with certain randomised paramers. Also allows 'Shuffle Mode' to act more like a playlist in that it will play everything on the list before repeating.
#rb Bruce.Nesbit
Change 2759219 on 2015/11/09 by Ori.Cohen
Character perf test is now looking at stats directly and sending to analytics
#RB Ben.Salem
Change 2759398 on 2015/11/09 by Lina.Halper
Fix issue where placed montages are not playing.
- the issue is that IsPlaying does not consider montage, but SetPlaying does. It is asymmetry, so I made it same. However, there are other functions that need to be re-looked at wr.t. montage
#code review: Thomas.Sarkanen
#RB: Marc.Audy
Change 2759491 on 2015/11/09 by Lina.Halper
#Anim: Fix not getting input correctly for Copy Pose node
#RB: Marc.Audy
Change 2759602 on 2015/11/09 by Marc.Audy
Fix imporperly named struct
Change 2759795 on 2015/11/09 by Aaron.McLeran
UE-23145 Adding a Priority value to USoundBase to use in concurrency evaluation and sorting wave instances for voice stealing.
#rb zak.middleton
Change 2760081 on 2015/11/09 by Aaron.McLeran
UE-23091 Adding more logging for NaN checks and fixing one source of NaNs for audio.
OmniDirectional Math Explanation:
For XAudio2, because we do our own distance-attenuation calculations, we use the X3dAudio2 API to simply compute a speaker-map for spatialization and force the listener to be at the origin and the emitter to be on the unit-circle. Thus, from XAudio2's perspective, all distances for every listener-emitter pair will be 1.0.
So in order to use the InnerRadius blending feature, we need to trick it into doing a an inner radius blend relative to a distance of 1.0. For example, if OmniRadius and Distance are the same, then the "NormalizedOmniRadius" is 1.0 and XAudio2 will begin its "blend" of the sound to an omni-directional speaker map.
If Emitter-listener distance is less than the OmniRadius, we'll want to do more blending to an omni-directional speaker map, but we need to set the InnerRadius to something greater than 1.0 (i.e. so that the normalized distance of 1.0 will be treated as less than the InnerRadius). To do "full" omni-directional blending, the emitter-listener distance will be 0 or close to zero, and the NormalizedOmniRadius will be very large (i.e. close to infiinity).
The previous math just set the NormalizedOmniRadius to FLT_MAX which is fine but that number is eventually squared before making the API call. FLT_MAX squared is INF.
Note: I do not think we need to square the OmniRadius in:
Emitter.InnerRadius = OmniRadius*OmniRadius;
But I am keeping it t here because of legacy content which depends on that behavior.
#rb zak.middleton
hange 2760401 on 2015/11/10 by Thomas.Sarkanen@Thomas.Sarkanen-Dev-Framework
Re-instated deleted protected functions in UAnimInstance.
Fixed access of UAnimInstance in FAnimNode_StateMachine.
#rb Martin.Wilson
Change 2760407 on 2015/11/10 by Jurre.deBaare
Construct raw meshes for spline meshes now uses the render data instead of original model data (preserves tangents/normals)
Change 2760468 on 2015/11/10 by Benn.Gallagher
Anim Dynamics optimizations, cached iteration independant data to reduce footprint of iteration on limits.
#rb Graeme.Thornton
Change 2760613 on 2015/11/10 by Jeff.Farris
Fixed async collision completion delegate potentially firing repeatedly. (UE-23149)
#cr marc.audy
#codereview lina.halper
Change 2760795 on 2015/11/10 by Marc.Audy
Don't compile in pointless AddReferencedObjects when with editoronly data not defined
Minor coding standard cleanup (NULL and auto)
Change 2760848 on 2015/11/10 by Benn.Gallagher
Fix to anim instance proxy to not rely on state machine initialization to bind native delegates as nested state machines are not guaranteed to be initialized. This was fixed in UAnimInstance originally but broken again by the proxy instance code.
#jira UE-23164
#rb Martin.Wilson
Change 2760866 on 2015/11/10 by Marc.Audy
Manage transient visualization components for camera component in the same way that sprite component for other actor components are
#rb Mike.Beach
Change 2760963 on 2015/11/10 by Marc.Audy
Since construction script can cause actors to be spawned don't use a ranged for to iterate
#jira UE-22639
#rb Jeff.Farris
#codereview Dmitriy.Dyomin
Change 2762297 on 2015/11/11 by James.Golding
UE-23086 Don't ensure in SetRootBodyIndex when Bodies array is empty (ie no physics state created)
#rb martin.wilson
#codereview ori.cohen, lina.halper
Change 2763566 on 2015/11/11 by Lina.Halper
FAnimNode_CopyPoseFromMesh::Evaluate - was accessing skeleton joint, not mesh joint.
#RB: Laurent.Delayen
Change 2763926 on 2015/11/12 by Thomas.Sarkanen
Fix anim notifies not firing from single anim instances
UE-23248 - Anim Notifies are not working for Animation Sequences
UE-23249 - Anim Notifies using Sound Cues do not work
#rb James.Golding
Change 2764039 on 2015/11/12 by Jurre.deBaare
Fix for issue with incorrect material indices after reducing a skeletal mesh with non LOD0 mesh as BaseLOD (OR-9243) #rb Lina.Halper
Change 2764307 on 2015/11/12 by Jurre.deBaare
VS2015 SSF library
Change 2764314 on 2015/11/12 by Stan.Melax
crashfix was putting bad bodies to sleep at start
Fatal error!
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000000
UE4Editor-Engine.dll!USkeletalMeshComponent::InitArticulated() [...\\engine\\source\\runtime\\engine\\private\\skeletalmeshcomponentphysics.cpp:875]
On some skeletalmeshcomponent, some bodies aren't getting created correctly. Trying to force them to sleep was causing a crash - it expected instantiated physx bodies. Seems that all the rest of the code is able to tolerate bad bodies.
Added check to ensure physx body exists before trying to force it to sleep.
not sure if bad bodies are the norm or if this fix is just more "kicking the can down the road".
#codereview ori.cohen
Change 2764343 on 2015/11/12 by Jurre.deBaare
- Fixed crash when building a LOD with SubActors.Num < 2
- Force HLOD level slider is now always enabled, however won't show complete image if not all HLODs are build
- LODActor tree view item now scrolls into view if selected in the world
- Set bAllowCullDistanceVolume to false for LODActor's static mesh components by default
- Added 7zip files
- Fixed issue with WinINet complaining about http-request without 'http://' prefix
- Changed % reduced or original triangles display string, now uses float instead of int (for < 1% reductions)
- Override texture sizes and automatic texture bias
- Fixed issue with incorrect material merging, not picking up it required mesh-data during baking. Added extra conditions for rendering with mesh-data.
- Now incorporate static meshes with opague materials into HLOD merging
- Fixed issue with incorrect normals after merging meshes who's owning components had been negatively scaled
- Fixed issue with incorrect texture size being set from MergeActor window (was only changing .X component)
- Fixed issue with material merging when meshes with multiple LODs are merged, right now only merges LOD0's together if we are also merging the materials (otherwise, merge each LOD)
- Added ENUM for texture scaling/resizing type that has to be applied while merging the materials
- Added detail customization class for FMaterialProxySettings
#rb James.Golding
[CL 2765024 by Marc Audy in Main branch]
2015-11-12 18:11:48 -05:00
TheFlagAudit . Add ( InPackage , TEXT ( " PackageFlags " ) , InPackage - > GetPackageFlags ( ) ) ;
2014-03-14 14:13:41 -04:00
{
FGuid Guid ;
2015-01-13 12:24:06 -05:00
uint32 CombinedCRC = 0 ;
2015-11-18 16:20:49 -05:00
for ( TUniqueObj < FUHTStringBuilderLineCounter > & Split : GeneratedFunctionBodyTextSplit )
2015-01-13 12:24:06 -05:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
uint32 SplitCRC = GenerateTextCRC ( * * Split ) ;
2015-01-13 12:24:06 -05:00
if ( CombinedCRC = = 0 )
{
// Don't combine in the first case because it keeps GUID backwards compatibility
CombinedCRC = SplitCRC ;
}
else
{
CombinedCRC = HashCombine ( SplitCRC , CombinedCRC ) ;
}
}
Guid . A = CombinedCRC ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
Guid . B = GenerateTextCRC ( * GeneratedFunctionDeclarations ) ;
2015-09-21 07:53:49 -04:00
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t FGuid Guid; \r \n " ) ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t Guid.A = 0x%08X; \r \n " ) , Guid . A ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t Guid.B = 0x%08X; \r \n " ) , Guid . B ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t Guid.C = 0x%08X; \r \n " ) , Guid . C ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t Guid.D = 0x%08X; \r \n " ) , Guid . D ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t ReturnPackage->SetGuid(Guid); \r \n " ) , Guid . D ) ;
2015-01-20 09:33:54 -05:00
GeneratedFunctionText . Log ( TEXT ( " \r \n " ) ) ;
for ( UField * ScriptType : TObjectRange < UField > ( ) )
{
2015-04-22 14:15:56 -04:00
if ( ScriptType - > GetOutermost ( ) ! = InPackage )
2015-01-20 09:33:54 -05:00
{
continue ;
}
if (
( ScriptType - > IsA < UScriptStruct > ( ) & & ( ( ( UScriptStruct * ) ScriptType ) - > StructFlags & STRUCT_NoExport ) ! = 0 ) | |
ScriptType - > IsA < UDelegateFunction > ( )
)
{
2015-09-08 09:23:57 -04:00
UField * FieldOuter = Cast < UField > ( ScriptType - > GetOuter ( ) ) ;
if ( ! FieldOuter | | ! FClass : : IsDynamic ( FieldOuter ) )
{
2015-09-21 07:53:49 -04:00
GeneratedFunctionText . Logf ( TEXT ( " \t \t \t %s; \r \n " ) , * GetSingletonName ( ScriptType ) ) ;
2015-09-08 09:23:57 -04:00
}
2015-01-20 09:33:54 -05:00
}
}
2014-03-14 14:13:41 -04:00
}
2015-09-21 07:53:49 -04:00
GeneratedFunctionText . Logf ( TEXT ( " \t \t } \r \n " ) ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t \t return ReturnPackage; \r \n " ) ) ;
GeneratedFunctionText . Logf ( TEXT ( " \t } \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
void FNativeClassHeaderGenerator : : ExportNativeGeneratedInitCode ( FUnrealSourceFile & SourceFile , FClass * Class , FUHTStringBuilder & OutFriendText )
2014-03-14 14:13:41 -04:00
{
2015-03-27 18:10:52 -04:00
FUHTStringBuilder & GeneratedFunctionText = GetGeneratedFunctionTextDevice ( ) ;
2015-01-20 09:33:54 -05:00
check ( ! OutFriendText . Len ( ) ) ;
2014-03-14 14:13:41 -04:00
// Emit code to build the UObjects that used to be in .u files
2015-09-08 09:23:57 -04:00
const bool bIsNoExport = Class - > HasAnyClassFlags ( CLASS_NoExport ) ;
const bool bIsDynamic = FClass : : IsDynamic ( Class ) ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder BodyText ;
FUHTStringBuilder CallSingletons ;
2015-01-20 09:33:54 -05:00
FString ApiString = GetAPIString ( ) ;
2014-03-14 14:13:41 -04:00
2016-02-12 17:00:45 -05:00
TSet < FName > AlreadyIncludedNames ;
2014-03-14 14:13:41 -04:00
TArray < UFunction * > FunctionsToExport ;
for ( TFieldIterator < UFunction > Function ( Class , EFieldIteratorFlags : : ExcludeSuper ) ; Function ; + + Function )
{
2016-02-12 17:00:45 -05:00
UFunction * LocalFunc = * Function ;
FName TrueName = FNativeClassHeaderGenerator : : GetOverriddenFName ( LocalFunc ) ;
bool bAlreadyIncluded = false ;
AlreadyIncludedNames . Add ( TrueName , & bAlreadyIncluded ) ;
if ( bAlreadyIncluded )
{
// In a dynamic class the same function signature may be used for a Multi- and a Single-cast delegate.
if ( ! LocalFunc - > IsA < UDelegateFunction > ( ) | | ! bIsDynamic )
{
FError : : Throwf ( TEXT ( " The same function linked twice. Function: %s Class: %s " ) , * LocalFunc - > GetName ( ) , * Class - > GetName ( ) ) ;
}
continue ;
}
2014-03-14 14:13:41 -04:00
FunctionsToExport . Add ( * Function ) ;
}
// Sort the list of functions
FunctionsToExport . Sort ( ) ;
// Export the init code for each function
for ( int32 FuncIndex = 0 ; FuncIndex < FunctionsToExport . Num ( ) ; FuncIndex + + )
{
UFunction * Function = FunctionsToExport [ FuncIndex ] ;
2015-03-12 14:06:13 -04:00
if ( ! Function - > IsA < UDelegateFunction > ( ) )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
ExportFunction ( SourceFile , Function , & FScope : : GetTypeScope ( Class ) . Get ( ) , bIsNoExport ) ;
2015-03-12 14:06:13 -04:00
}
2015-09-21 07:53:49 -04:00
CallSingletons . Logf ( TEXT ( " \t \t \t \t OuterClass->LinkChild(%s); \r \n " ) , * GetSingletonName ( Function ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-03-27 18:10:52 -04:00
FUHTStringBuilder GeneratedClassRegisterFunctionText ;
2014-07-29 02:43:48 -04:00
2015-01-20 09:33:54 -05:00
// The class itself.
2014-03-14 14:13:41 -04:00
{
// simple ::StaticClass wrapper to avoid header, link and DLL hell
{
FString SingletonNameNoRegister ( GetSingletonName ( Class , false ) ) ;
2015-05-22 02:54:27 -04:00
GeneratedFunctionDeclarations . Log ( FTypeSingletonCache : : Get ( Class , false ) . GetExternDecl ( ) ) ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t UClass* %s \r \n " ) , * SingletonNameNoRegister ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t { \r \n " ) ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t return %s::StaticClass(); \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t } \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
}
FString SingletonName ( GetSingletonName ( Class ) ) ;
2015-09-21 07:53:49 -04:00
OutFriendText . Logf ( TEXT ( " \t friend %sclass UClass* %s; \r \n " ) , * ApiString , * SingletonName ) ;
2015-05-22 02:54:27 -04:00
GeneratedFunctionDeclarations . Log ( FTypeSingletonCache : : Get ( Class ) . GetExternDecl ( ) ) ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t UClass* %s \r \n " ) , * SingletonName ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t { \r \n " ) ) ;
2015-09-08 09:23:57 -04:00
if ( ! bIsDynamic )
{
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t static UClass* OuterClass = NULL; \r \n " ) ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t if (!OuterClass) \r \n " ) ) ;
2015-09-08 09:23:57 -04:00
}
else
{
2015-11-18 16:20:49 -05:00
const FString DynamicClassPackageName = FClass : : GetTypePackageName ( Class ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t UPackage* OuterPackage = FindOrConstructDynamicTypePackage(TEXT( \" %s \" )); \r \n " ) , * DynamicClassPackageName ) ;
2016-02-26 16:58:26 -05:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t UClass* OuterClass = Cast<UClass>(StaticFindObjectFast(UClass::StaticClass(), OuterPackage, TEXT( \" %s \" ))); \r \n " ) , * FNativeClassHeaderGenerator : : GetOverriddenName ( Class ) ) ;
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t if (!OuterClass || !(OuterClass->ClassFlags & CLASS_Constructed)) \r \n " ) ) ;
2015-09-08 09:23:57 -04:00
}
2015-09-11 10:08:33 -04:00
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t { \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
if ( Class - > GetSuperClass ( ) & & Class - > GetSuperClass ( ) ! = Class )
{
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t %s; \r \n " ) , * GetSingletonName ( Class - > GetSuperClass ( ) ) ) ;
2014-03-14 14:13:41 -04:00
}
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
if ( ! bIsDynamic )
{
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t %s; \r \n " ) , * GetPackageSingletonName ( CastChecked < UPackage > ( Class - > GetOutermost ( ) ) ) ) ;
}
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t OuterClass = %s::StaticClass(); \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t if (!(OuterClass->ClassFlags & CLASS_Constructed)) \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t { \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t \t UObjectForceRegistration(OuterClass); \r \n " ) ) ;
2014-11-06 15:16:05 -05:00
uint32 Flags = ( Class - > ClassFlags & CLASS_SaveInCompiledInClasses ) | CLASS_Constructed ;
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t \t OuterClass->ClassFlags |= 0x%08X; \r \n " ) , Flags ) ;
2014-03-14 14:13:41 -04:00
TheFlagAudit . Add ( Class , TEXT ( " ClassFlags " ) , Flags ) ;
2014-07-29 02:43:48 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \r \n " ) ) ;
GeneratedClassRegisterFunctionText . Log ( CallSingletons ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
FString OuterString = FString ( TEXT ( " OuterClass " ) ) ;
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
2016-02-26 16:58:26 -05:00
TMap < FName , FString > * MetaDataMap = UMetaData : : GetMapForObject ( Class ) ;
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
{
FClassMetaData * ClassMetaData = GScriptHelper . FindClassData ( Class ) ;
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
if ( MetaDataMap & & ClassMetaData & & ClassMetaData - > bObjectInitializerConstructorDeclared )
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
{
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
MetaDataMap - > Add ( FName ( TEXT ( " ObjectInitializerConstructorDeclared " ) ) , FString ( ) ) ;
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
}
}
2015-09-21 07:53:49 -04:00
FString Meta = GetMetaDataCodeForObject ( Class , * OuterString , TEXT ( " \t \t \t \t " ) ) ;
2014-03-14 14:13:41 -04:00
// properties
{
TArray < UProperty * > Props ;
for ( TFieldIterator < UProperty > ItInner ( Class , EFieldIteratorFlags : : ExcludeSuper ) ; ItInner ; + + ItInner )
{
Props . Add ( * ItInner ) ;
}
2015-02-05 13:10:48 -05:00
if ( Props . Num ( ) > 0 )
{
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " PRAGMA_DISABLE_DEPRECATION_WARNINGS \r \n " ) ) ;
2015-09-21 07:53:49 -04:00
OutputProperties ( Meta , GeneratedClassRegisterFunctionText , OuterString , Props , TEXT ( " \t \t \t \t " ) ) ;
2015-05-12 17:44:46 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " PRAGMA_ENABLE_DEPRECATION_WARNINGS \r \n " ) ) ;
2015-02-05 13:10:48 -05:00
}
2014-03-14 14:13:41 -04:00
}
// function table
{
// Grab and sort the list of functions in the function map
TArray < UFunction * > FunctionsInMap ;
for ( auto Function : TFieldRange < UFunction > ( Class , EFieldIteratorFlags : : ExcludeSuper ) )
{
FunctionsInMap . Add ( Function ) ;
}
FunctionsInMap . Sort ( ) ;
// Emit code to construct each UFunction and rebuild the function map at runtime
for ( UFunction * Function : FunctionsInMap )
{
2015-09-28 14:27:23 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t \t OuterClass->AddFunctionToFunctionMapWithOverriddenName(%s, %s);%s \r \n " ) , * GetSingletonName ( Function ) , * FNativeClassHeaderGenerator : : GetOverriddenNameForLiteral ( Function ) , * GetGeneratedCodeCRCTag ( Function ) ) ;
2014-03-14 14:13:41 -04:00
}
}
// class flags are handled by the intrinsic bootstrap code
2015-09-21 07:53:49 -04:00
//GeneratedClassRegisterFunctionText.Logf(TEXT("\t\t\tOuterClass->ClassFlags = 0x%08X;\r\n"), Class->ClassFlags);
2014-03-14 14:13:41 -04:00
if ( Class - > ClassConfigName ! = NAME_None )
{
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t \t OuterClass->ClassConfigName = FName(TEXT( \" %s \" )); \r \n " ) , * Class - > ClassConfigName . ToString ( ) ) ;
2014-03-14 14:13:41 -04:00
}
for ( auto & Inter : Class - > Interfaces )
{
check ( Inter . Class ) ;
FString OffsetString ( TEXT ( " 0 " ) ) ;
if ( Inter . PointerOffset )
{
2014-06-02 07:02:29 -04:00
OffsetString = FString : : Printf ( TEXT ( " VTABLE_OFFSET(%s, %s) " ) , NameLookupCPP . GetNameCPP ( Class ) , NameLookupCPP . GetNameCPP ( Inter . Class , true ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t \t OuterClass->Interfaces.Add(FImplementedInterface(%s, %s, %s )); \r \n " ) ,
2014-03-14 14:13:41 -04:00
* GetSingletonName ( Inter . Class , false ) ,
* OffsetString ,
Inter . bImplementedByK2 ? TEXT ( " true " ) : TEXT ( " false " )
) ;
}
if ( Class - > ClassGeneratedBy )
{
UE_LOG ( LogCompile , Fatal , TEXT ( " For intrinsic and compiled-in classes, ClassGeneratedBy should always be NULL " ) ) ;
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t \t OuterClass->ClassGeneratedBy = %s; \r \n " ) , * GetSingletonName ( CastChecked < UClass > ( Class - > ClassGeneratedBy ) , false ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t \t OuterClass->StaticLink(); \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
if ( Meta . Len ( ) )
{
2014-07-29 02:43:48 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " #if WITH_METADATA \r \n " ) ) ;
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t \t UMetaData* MetaData = OuterClass->GetOutermost()->GetMetaData(); \r \n " ) ) ;
2014-07-29 02:43:48 -04:00
GeneratedClassRegisterFunctionText . Log ( * Meta ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " #endif \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
}
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
if ( bIsDynamic )
{
2016-02-26 16:58:26 -05:00
FString * CustomDynamicClassInitializationMD = MetaDataMap ? MetaDataMap - > Find ( TEXT ( " CustomDynamicClassInitialization " ) ) : nullptr ;
if ( CustomDynamicClassInitializationMD )
{
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t \t %s(CastChecked<UDynamicClass>(OuterClass)); \n " ) , * ( * CustomDynamicClassInitializationMD ) ) ;
}
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
}
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t \t } \r \n " ) ) ;
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
2015-09-21 07:53:49 -04:00
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t } \r \n " ) ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t check(OuterClass->GetClass()); \r \n " ) ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t \t return OuterClass; \r \n " ) ) ;
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \t } \r \n " ) ) ;
2014-07-29 02:43:48 -04:00
GeneratedFunctionText + = GeneratedClassRegisterFunctionText ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
if ( OutFriendText . Len ( ) & & bIsNoExport )
2014-03-14 14:13:41 -04:00
{
2015-09-21 07:53:49 -04:00
GeneratedFunctionText . Logf ( TEXT ( " \t /* friend declarations for pasting into noexport class %s \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
2015-01-20 09:33:54 -05:00
GeneratedFunctionText . Log ( OutFriendText ) ;
2015-09-21 07:53:49 -04:00
GeneratedFunctionText . Logf ( TEXT ( " \t */ \r \n " ) ) ;
2015-03-27 18:10:52 -04:00
OutFriendText . Reset ( ) ;
2014-03-14 14:13:41 -04:00
}
FString SingletonName ( GetSingletonName ( Class ) ) ;
2015-03-27 18:10:52 -04:00
SingletonName . ReplaceInline ( TEXT ( " () " ) , TEXT ( " " ) , ESearchCase : : CaseSensitive ) ; // function address
2014-03-14 14:13:41 -04:00
2014-07-29 02:43:48 -04:00
{
2015-09-29 17:44:18 -04:00
FString OverriddenClassName = * FNativeClassHeaderGenerator : : GetOverriddenName ( Class ) ;
2015-05-07 05:55:26 -04:00
const TCHAR * ClassNameCPP = NameLookupCPP . GetNameCPP ( Class ) ;
2015-09-08 09:23:57 -04:00
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
const FString InitSearchableValuesFunctionName = bIsDynamic ? Class - > GetMetaData ( TEXT ( " InitializeStaticSearchableValues " ) ) : FString ( ) ;
const FString InitSearchableValuesFunctionParam = InitSearchableValuesFunctionName . IsEmpty ( ) ? FString ( TEXT ( " nullptr " ) ) :
FString : : Printf ( TEXT ( " &%s::%s " ) , ClassNameCPP , * InitSearchableValuesFunctionName ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
GeneratedFunctionText . Logf ( TEXT ( " \t static FCompiledInDefer Z_CompiledInDefer_UClass_%s(%s, &%s::StaticClass, TEXT( \" %s \" ), TEXT( \" %s \" ), %s, %s, %s, %s); \r \n " ) ,
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
ClassNameCPP ,
* SingletonName ,
ClassNameCPP ,
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
bIsDynamic ? * FClass : : GetTypePackageName ( Class ) : * Class - > GetOutermost ( ) - > GetName ( ) ,
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
bIsDynamic ? * OverriddenClassName : ClassNameCPP ,
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
bIsDynamic ? TEXT ( " true " ) : TEXT ( " false " ) ,
bIsDynamic ? * AsTEXT ( FClass : : GetTypePackageName ( Class ) ) : TEXT ( " nullptr " ) ,
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
bIsDynamic ? * AsTEXT ( FNativeClassHeaderGenerator : : GetOverriddenPathName ( Class ) ) : TEXT ( " nullptr " ) ,
* InitSearchableValuesFunctionParam ) ;
2014-07-29 02:43:48 -04:00
2015-05-07 05:55:26 -04:00
// Append base class' CRC at the end of the generated code, this will force update derived classes
// when base class changes during hot-reload.
uint32 BaseClassCRC = 0 ;
if ( Class - > GetSuperClass ( ) & & ! Class - > GetSuperClass ( ) - > HasAnyClassFlags ( CLASS_Intrinsic ) )
{
BaseClassCRC = GGeneratedCodeCRCs . FindChecked ( Class - > GetSuperClass ( ) ) ;
}
GeneratedClassRegisterFunctionText . Logf ( TEXT ( " \r \n // %u \r \n " ) , BaseClassCRC ) ;
2014-07-29 02:43:48 -04:00
// Calculate generated class initialization code CRC so that we know when it changes after hot-reload
2014-12-11 04:58:57 -05:00
uint32 ClassCrc = GenerateTextCRC ( * GeneratedClassRegisterFunctionText ) ;
2015-05-07 05:55:26 -04:00
GGeneratedCodeCRCs . Add ( Class , ClassCrc ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
UHTMakefile . AddGeneratedCodeCRC ( & SourceFile , Class , ClassCrc ) ;
2014-07-29 02:43:48 -04:00
// Emit the IMPLEMENT_CLASS macro to go in the generated cpp file.
2015-09-08 09:23:57 -04:00
if ( ! bIsDynamic )
{
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t IMPLEMENT_CLASS(%s, %u); \r \n " ) , ClassNameCPP , ClassCrc ) ;
2015-09-08 09:23:57 -04:00
}
else
{
2015-09-29 17:44:18 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t IMPLEMENT_DYNAMIC_CLASS(%s, TEXT( \" %s \" ), %u); \r \n " ) , ClassNameCPP , * OverriddenClassName , ClassCrc ) ;
2015-09-08 09:23:57 -04:00
}
2014-03-14 14:13:41 -04:00
}
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
void FNativeClassHeaderGenerator : : ExportFunction ( FUnrealSourceFile & SourceFile , UFunction * Function , FScope * Scope , bool bIsNoExport )
2015-01-20 09:33:54 -05:00
{
UFunction * SuperFunction = Function - > GetSuperFunction ( ) ;
auto * CompilerInfo = FFunctionData : : FindForFunction ( Function ) ;
bool bIsDelegate = Function - > HasAnyFunctionFlags ( FUNC_Delegate ) ;
const FFuncInfo & FunctionData = CompilerInfo - > GetFunctionData ( ) ;
const FString SingletonName ( GetSingletonName ( Function ) ) ;
2015-05-22 02:54:27 -04:00
GeneratedFunctionDeclarations . Log ( FTypeSingletonCache : : Get ( Function ) . GetExternDecl ( ) ) ;
2015-01-20 09:33:54 -05:00
2015-03-27 18:10:52 -04:00
FUHTStringBuilder CurrentFunctionText ;
2015-01-20 09:33:54 -05:00
2015-09-21 07:53:49 -04:00
CurrentFunctionText . Logf ( TEXT ( " \t UFunction* %s \r \n " ) , * SingletonName ) ;
CurrentFunctionText . Logf ( TEXT ( " \t { \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
if ( bIsNoExport | | ! ( Function - > FunctionFlags & FUNC_Event ) ) // non-events do not export a params struct, so lets do that locally for offset determination
{
TGuardValue < bool > Guard ( bIsExportingForOffsetDeterminationOnly , true ) ;
TArray < UScriptStruct * > Structs ;
FindNoExportStructs ( Structs , Function ) ;
if ( Structs . Num ( ) )
{
2015-03-27 18:10:52 -04:00
ExportMirrorsForNoexportStructs ( Structs , /*Indent=*/ 2 , CurrentFunctionText ) ;
2015-01-20 09:33:54 -05:00
}
TArray < UFunction * > CallbackFunctions ;
CallbackFunctions . Add ( Function ) ;
2015-03-27 18:10:52 -04:00
ExportEventParms ( * Scope , CallbackFunctions , CurrentFunctionText , /*Indent=*/ 2 , /*bOutputConstructor=*/ false ) ;
2015-01-20 09:33:54 -05:00
}
if ( UObject * Outer = Function - > GetOuter ( ) )
{
2015-09-21 07:53:49 -04:00
CurrentFunctionText . Logf ( TEXT ( " \t \t UObject* Outer=%s; \r \n " ) , Outer - > IsA < UPackage > ( ) ? * GetPackageSingletonName ( ( UPackage * ) Outer ) : * GetSingletonName ( Function - > GetOwnerClass ( ) ) ) ;
2015-01-20 09:33:54 -05:00
}
else
{
2015-09-21 07:53:49 -04:00
CurrentFunctionText . Logf ( TEXT ( " \t \t UObject* Outer=nullptr; \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
}
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
UField * FieldOuter = Cast < UField > ( Function - > GetOuter ( ) ) ;
const bool bIsDynamic = ( FieldOuter & & FClass : : IsDynamic ( FieldOuter ) ) ;
if ( ! bIsDynamic )
{
CurrentFunctionText . Logf ( TEXT ( " \t \t static UFunction* ReturnFunction = NULL; \r \n " ) ) ;
}
else
{
CurrentFunctionText . Logf ( TEXT ( " \t \t UFunction* ReturnFunction = static_cast<UFunction*>(StaticFindObjectFast( UFunction::StaticClass(), Outer, %s )); \r \n " )
, * FNativeClassHeaderGenerator : : GetOverriddenNameForLiteral ( Function ) ) ;
}
2015-09-21 07:53:49 -04:00
CurrentFunctionText . Logf ( TEXT ( " \t \t if (!ReturnFunction) \r \n " ) ) ;
CurrentFunctionText . Logf ( TEXT ( " \t \t { \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
FString SuperFunctionString ( TEXT ( " NULL " ) ) ;
if ( SuperFunction )
{
SuperFunctionString = GetSingletonName ( SuperFunction ) ;
}
TArray < UProperty * > Props ;
for ( TFieldIterator < UProperty > ItInner ( Function , EFieldIteratorFlags : : ExcludeSuper ) ; ItInner ; + + ItInner )
{
Props . Add ( * ItInner ) ;
}
FString StructureSize ;
if ( Props . Num ( ) )
{
UFunction * TempFunction = Function ;
while ( TempFunction - > GetSuperFunction ( ) )
{
TempFunction = TempFunction - > GetSuperFunction ( ) ;
}
FString FunctionName = TempFunction - > GetName ( ) ;
if ( TempFunction - > HasAnyFunctionFlags ( FUNC_Delegate ) )
{
FunctionName = FunctionName . LeftChop ( FString ( HEADER_GENERATED_DELEGATE_SIGNATURE_SUFFIX ) . Len ( ) ) ;
}
StructureSize = FString : : Printf ( TEXT ( " , sizeof(%s) " ) , * GetEventStructParamsName ( TempFunction - > GetOuter ( ) , * FunctionName ) ) ;
}
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
const TCHAR * UFunctionType = bIsDelegate ? TEXT ( " UDelegateFunction " ) : TEXT ( " UFunction " ) ;
const TCHAR * UFunctionObjectFlags = FClass : : IsOwnedByDynamicType ( Function ) ? TEXT ( " RF_Public|RF_Transient " ) : TEXT ( " RF_Public|RF_Transient|RF_MarkAsNative " ) ;
CurrentFunctionText . Logf ( TEXT ( " \t \t \t ReturnFunction = new(EC_InternalUseOnlyConstructor, Outer, TEXT( \" %s \" ), %s) %s(FObjectInitializer(), %s, 0x%08X, %d%s); \r \n " ) ,
2015-09-09 14:07:28 -04:00
* FNativeClassHeaderGenerator : : GetOverriddenName ( Function ) ,
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
UFunctionObjectFlags ,
UFunctionType ,
2015-01-20 09:33:54 -05:00
* SuperFunctionString ,
Function - > FunctionFlags ,
( uint32 ) Function - > RepOffset ,
* StructureSize
) ;
TheFlagAudit . Add ( Function , TEXT ( " FunctionFlags " ) , Function - > FunctionFlags ) ;
FString OuterString = FString ( TEXT ( " ReturnFunction " ) ) ;
2015-09-21 07:53:49 -04:00
FString Meta = GetMetaDataCodeForObject ( Function , * OuterString , TEXT ( " \t \t \t " ) ) ;
2015-01-20 09:33:54 -05:00
for ( int32 Index = Props . Num ( ) - 1 ; Index > = 0 ; Index - - )
{
2015-09-21 07:53:49 -04:00
OutputProperty ( Meta , CurrentFunctionText , OuterString , Props [ Index ] , TEXT ( " \t \t \t " ) ) ;
2015-01-20 09:33:54 -05:00
}
if ( FunctionData . FunctionFlags & ( FUNC_NetRequest | FUNC_NetResponse ) )
{
2015-09-21 07:53:49 -04:00
CurrentFunctionText . Logf ( TEXT ( " \t \t \t ReturnFunction->RPCId=%d; \r \n " ) , FunctionData . RPCId ) ;
CurrentFunctionText . Logf ( TEXT ( " \t \t \t ReturnFunction->RPCResponseId=%d; \r \n " ) , FunctionData . RPCResponseId ) ;
2015-01-20 09:33:54 -05:00
}
2015-09-21 07:53:49 -04:00
CurrentFunctionText . Logf ( TEXT ( " \t \t \t ReturnFunction->Bind(); \r \n " ) ) ;
CurrentFunctionText . Logf ( TEXT ( " \t \t \t ReturnFunction->StaticLink(); \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
if ( Meta . Len ( ) )
{
CurrentFunctionText . Logf ( TEXT ( " #if WITH_METADATA \r \n " ) ) ;
2015-09-21 07:53:49 -04:00
CurrentFunctionText . Logf ( TEXT ( " \t \t \t UMetaData* MetaData = ReturnFunction->GetOutermost()->GetMetaData(); \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
CurrentFunctionText . Log ( * Meta ) ;
CurrentFunctionText . Logf ( TEXT ( " #endif \r \n " ) ) ;
}
2015-09-21 07:53:49 -04:00
CurrentFunctionText . Logf ( TEXT ( " \t \t } \r \n " ) ) ;
CurrentFunctionText . Logf ( TEXT ( " \t \t return ReturnFunction; \r \n " ) ) ;
CurrentFunctionText . Logf ( TEXT ( " \t } \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
uint32 FunctionCrc = GenerateTextCRC ( * CurrentFunctionText ) ;
GGeneratedCodeCRCs . Add ( Function , FunctionCrc ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
UHTMakefile . AddGeneratedCodeCRC ( & SourceFile , Function , FunctionCrc ) ;
2015-01-20 09:33:54 -05:00
GetGeneratedFunctionTextDevice ( ) + = CurrentFunctionText ;
}
2014-06-02 07:02:29 -04:00
void FNativeClassHeaderGenerator : : ExportNatives ( FClass * Class )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
// Skip no export classes.
if ( Class - > HasAnyClassFlags ( CLASS_NoExport ) )
{
2014-03-14 14:13:41 -04:00
return ;
2015-01-20 09:33:54 -05:00
}
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t void %s::StaticRegisterNatives%s() \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t { \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
{
TArray < UFunction * > FunctionsToExport ;
for ( auto * Function : TFieldRange < UFunction > ( Class , EFieldIteratorFlags : : ExcludeSuper ) )
{
if ( ( Function - > FunctionFlags & ( FUNC_Native | FUNC_NetRequest ) ) = = FUNC_Native )
{
FunctionsToExport . Add ( Function ) ;
}
}
FunctionsToExport . Sort ( ) ;
for ( auto Func : FunctionsToExport )
{
2015-09-28 14:27:23 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t FNativeFunctionRegistrar::RegisterFunction(%s::StaticClass(), %s,(Native)&%s::exec%s); \r \n " ) ,
2014-06-02 07:02:29 -04:00
NameLookupCPP . GetNameCPP ( Class ) ,
2015-09-28 14:27:23 -04:00
* FNativeClassHeaderGenerator : : GetOverriddenNameForLiteral ( Func ) ,
2014-06-02 07:02:29 -04:00
Class - > HasAnyClassFlags ( CLASS_Interface ) ? * FString : : Printf ( TEXT ( " I%s " ) , * Class - > GetName ( ) ) : NameLookupCPP . GetNameCPP ( Class ) ,
2014-03-14 14:13:41 -04:00
* Func - > GetName ( )
) ;
}
}
for ( auto * Struct : TFieldRange < UScriptStruct > ( Class , EFieldIteratorFlags : : ExcludeSuper ) )
{
if ( Struct - > StructFlags & STRUCT_Native )
{
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t UScriptStruct::DeferCppStructOps(FName(TEXT( \" %s \" )),new UScriptStruct::TCppStructOps<%s%s>); \r \n " ) , * Struct - > GetName ( ) , Struct - > GetPrefixCPP ( ) , * Struct - > GetName ( ) ) ;
2014-03-14 14:13:41 -04:00
}
}
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t } \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-11-18 16:20:49 -05:00
void FNativeClassHeaderGenerator : : ExportInterfaceCallFunctions ( const TArray < UFunction * > & InCallbackFunctions , UClass * Class , FUHTStringBuilder & HeaderOutput )
2014-03-14 14:13:41 -04:00
{
TArray < UFunction * > CallbackFunctions = InCallbackFunctions ;
CallbackFunctions . Sort ( ) ;
for ( auto FuncIt = CallbackFunctions . CreateConstIterator ( ) ; FuncIt ; + + FuncIt )
{
UFunction * Function = * FuncIt ;
FString FunctionName = Function - > GetName ( ) ;
2015-01-20 09:33:54 -05:00
FString ClassName = Class - > GetName ( ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
auto * CompilerInfo = FFunctionData : : FindForFunction ( Function ) ;
2014-03-14 14:13:41 -04:00
const FFuncInfo & FunctionData = CompilerInfo - > GetFunctionData ( ) ;
const TCHAR * ConstQualifier = FunctionData . FunctionReference - > HasAllFunctionFlags ( FUNC_Const ) ? TEXT ( " const " ) : TEXT ( " " ) ;
FString ExtraParam = FString : : Printf ( TEXT ( " %sUObject* O " ) , ConstQualifier ) ;
ExportNativeFunctionHeader ( FunctionData , HeaderOutput , EExportFunctionType : : Interface , EExportFunctionHeaderStyle : : Declaration , * ExtraParam ) ;
2015-03-27 18:10:52 -04:00
HeaderOutput . Logf ( TEXT ( " ; " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
ExportNativeFunctionHeader ( FunctionData , GeneratedPackageCPP , EExportFunctionType : : Interface , EExportFunctionHeaderStyle : : Definition , * ExtraParam ) ;
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( LINE_TERMINATOR TEXT ( " \t { " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t check(O != NULL); " ) LINE_TERMINATOR ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t \t check(O->GetClass()->ImplementsInterface(U%s::StaticClass())); " ) LINE_TERMINATOR , * ClassName ) ;
2014-03-14 14:13:41 -04:00
auto Parameters = GetFunctionParmsAndReturn ( FunctionData . FunctionReference ) ;
// See if we need to create Parms struct
2015-03-27 18:10:52 -04:00
const bool bHasParms = Parameters . HasParms ( ) ;
2014-03-14 14:13:41 -04:00
if ( bHasParms )
{
2015-01-20 09:33:54 -05:00
FString EventParmStructName = GetEventStructParamsName ( Function - > GetOuter ( ) , * FunctionName ) ;
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t %s Parms; " ) LINE_TERMINATOR , * EventParmStructName ) ;
2014-03-14 14:13:41 -04:00
}
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t UFunction* const Func = O->FindFunction(%s_%s); " ) LINE_TERMINATOR , * API , * FunctionName ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t \t if (Func) " ) LINE_TERMINATOR ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t \t { " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
// code to populate Parms struct
for ( auto It = Parameters . Parms . CreateConstIterator ( ) ; It ; + + It )
{
UProperty * Param = * It ;
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t \t Parms.%s=%s; " ) LINE_TERMINATOR , * Param - > GetName ( ) , * Param - > GetName ( ) ) ;
2014-03-14 14:13:41 -04:00
}
[UE-2345] BP - enforce const-correctness in native const class method overrides
this change introduces enforcement of 'const-correctness' into implemented function graphs.
summary:
if you have a function declared in C++ like this:
UFUNCTION(BlueprintImplementableEvent)
int32 MyFunctionThatReturnsSomeValue() const;
if you implement that (BPIE) function in a Blueprint that's parented to that native class, it will now be flagged as 'const'. this makes any properties of 'self' read-only within the context of that graph, which means the compiler will emit an error if you try to set a property or otherwise call a non-const, non-static function with 'self' as the target.
if there happens to already be an implemented const function in a Blueprint that was in place prior to this change, the compiler will emit a warning instead of an error, in order to allow existing Blueprints that may currently be "violating" const within the context of a const BPIE function to still compile, while still alerting to issues that should probably be addressed.
notes:
1) this also applies to BlueprintNativeEvent (BPNE) implementations, and also when implementing BPIE/BPNE interface methods that are also declared as const
2) a const BPIE/BPNE function with no return value and no output parameters will be implemented as a "normal" impure function, and not as an event as in the non-const case
3) a const BPIE/BPNE function with a return value and/or output parameters will currently be implemented as a pure function, regardless of whether or not BlueprintCallable is specified
4) this CL also retains some consolidation of static function validation code that i had previously done, mostly to allow static functions to more easily be whitelisted for const function graphs
#codereview Nick.Whiting, Michael.Noland
[CL 2368059 by Phillip Kavan in Main branch]
2014-11-21 17:47:17 -05:00
const FString ObjectRef = FunctionData . FunctionReference - > HasAllFunctionFlags ( FUNC_Const ) ? FString : : Printf ( TEXT ( " const_cast<UObject*>(O) " ) , * ClassName ) : TEXT ( " O " ) ;
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t \t %s->ProcessEvent(Func, %s); " ) LINE_TERMINATOR , * ObjectRef , bHasParms ? TEXT ( " &Parms " ) : TEXT ( " NULL " ) ) ;
2014-03-14 14:13:41 -04:00
for ( auto It = Parameters . Parms . CreateConstIterator ( ) ; It ; + + It )
{
UProperty * Param = * It ;
if ( Param - > HasAllPropertyFlags ( CPF_OutParm ) & & ! Param - > HasAnyPropertyFlags ( CPF_ConstParm | CPF_ReturnParm ) )
{
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t \t %s=Parms.%s; " ) LINE_TERMINATOR , * Param - > GetName ( ) , * Param - > GetName ( ) ) ;
2014-03-14 14:13:41 -04:00
}
}
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP + = TEXT ( " \t \t } " ) LINE_TERMINATOR ;
2014-03-14 14:13:41 -04:00
// else clause to call back into native if it's a BlueprintNativeEvent
if ( Function - > FunctionFlags & FUNC_Native )
{
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t else if (auto I = (%sI%s*)(O->GetNativeInterfaceAddress(U%s::StaticClass()))) " ) LINE_TERMINATOR , ConstQualifier , * ClassName , * ClassName ) ;
GeneratedPackageCPP + = TEXT ( " \t \t { " ) LINE_TERMINATOR ;
2014-03-14 14:13:41 -04:00
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP + = TEXT ( " \t \t \t " ) ;
2014-03-14 14:13:41 -04:00
if ( Parameters . Return )
{
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP + = TEXT ( " Parms.ReturnValue = " ) ;
2014-03-14 14:13:41 -04:00
}
GeneratedPackageCPP . Logf ( TEXT ( " I->%s_Implementation( " ) , * FunctionName ) ;
bool First = true ;
for ( auto It = Parameters . Parms . CreateConstIterator ( ) ; It ; + + It )
{
UProperty * Param = * It ;
if ( ! First )
{
GeneratedPackageCPP . Logf ( TEXT ( " , " ) ) ;
}
First = false ;
GeneratedPackageCPP . Logf ( TEXT ( " %s " ) , * Param - > GetName ( ) ) ;
}
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " ); " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t } " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
}
if ( Parameters . Return )
{
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t return Parms.ReturnValue; " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
}
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t } " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
}
}
2014-10-10 04:34:56 -04:00
/**
* Gets preprocessor string to emit GENERATED_U * _BODY ( ) macro is deprecated .
*
* @ param MacroName Name of the macro to be deprecated .
*
* @ returns Preprocessor string to emit the message .
*/
FString GetGeneratedMacroDeprecationWarning ( const TCHAR * MacroName )
{
// Deprecation warning is disabled right now. After people get familiar with the new macro it should be re-enabled.
//return FString() + TEXT("EMIT_DEPRECATED_WARNING_MESSAGE(\"") + MacroName + TEXT("() macro is deprecated. Please use GENERATED_BODY() macro instead.\")") LINE_TERMINATOR;
return TEXT ( " " ) ;
}
2014-10-13 10:31:50 -04:00
/**
* Returns a string with access specifier that was met before parsing GENERATED_BODY ( ) macro to preserve it .
*
* @ param Class Class for which to return the access specifier .
*
* @ returns Access specifier string .
*/
FString GetPreservedAccessSpecifierString ( FClass * Class )
{
2014-11-07 13:17:32 -05:00
FString PreservedAccessSpecifier ( FString : : Printf ( TEXT ( " static_assert(false, \" Unknown access specifier for GENERATED_BODY() macro in class % s . \ " ) ; " ), *GetNameSafe(Class)));
2015-04-30 10:25:31 -04:00
FClassMetaData * Data = GScriptHelper . FindClassData ( Class ) ;
2014-11-07 13:17:32 -05:00
if ( Data )
2014-10-13 10:31:50 -04:00
{
2014-11-07 13:17:32 -05:00
switch ( Data - > GeneratedBodyMacroAccessSpecifier )
{
case EAccessSpecifier : : ACCESS_Private :
PreservedAccessSpecifier = " private: " ;
break ;
case EAccessSpecifier : : ACCESS_Protected :
PreservedAccessSpecifier = " protected: " ;
break ;
case EAccessSpecifier : : ACCESS_Public :
PreservedAccessSpecifier = " public: " ;
break ;
2015-04-02 16:31:18 -04:00
case EAccessSpecifier : : ACCESS_NotAnAccessSpecifier :
break ;
2014-11-07 13:17:32 -05:00
}
2014-10-13 10:31:50 -04:00
}
return PreservedAccessSpecifier + LINE_TERMINATOR ;
}
2014-03-14 14:13:41 -04:00
/**
2015-01-20 09:33:54 -05:00
* Exports interface body macros .
2014-03-14 14:13:41 -04:00
*/
2015-03-27 18:10:52 -04:00
void ExportInterfaceBodyMacros ( FUHTStringBuilder & Out , FUnrealSourceFile & SourceFile , int32 ClassGeneratedBodyLine , FClass * Class , const FString & StdCtorCall , const FString & EnhCtorCall , const FString & UInterfaceBoilerplate )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
Out . Log ( TEXT ( " #undef GENERATED_UINTERFACE_BODY_COMMON \r \n " ) ) ;
Out . Log ( Macroize ( TEXT ( " GENERATED_UINTERFACE_BODY_COMMON() " ) , * UInterfaceBoilerplate ) ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
auto DeprecationWarning = GetGeneratedMacroDeprecationWarning ( TEXT ( " GENERATED_UINTERFACE_BODY " ) ) ;
auto DeprecationPushString = TEXT ( " PRAGMA_DISABLE_DEPRECATION_WARNINGS " ) LINE_TERMINATOR ;
2015-05-12 17:44:46 -04:00
auto DeprecationPopString = TEXT ( " PRAGMA_ENABLE_DEPRECATION_WARNINGS " ) LINE_TERMINATOR ;
2015-03-27 18:10:52 -04:00
auto Offset = TEXT ( " \t " ) ;
2015-01-20 09:33:54 -05:00
Out . Log ( Macroize ( * SourceFile . GetGeneratedBodyMacroName ( ClassGeneratedBodyLine , true ) , * ( FString ( ) +
Offset + DeprecationWarning +
Offset + DeprecationPushString +
Offset + TEXT ( " GENERATED_UINTERFACE_BODY_COMMON() " ) LINE_TERMINATOR +
StdCtorCall +
Offset + DeprecationPopString ) ) ) ;
Out . Log ( Macroize ( * SourceFile . GetGeneratedBodyMacroName ( ClassGeneratedBodyLine ) , * ( FString ( ) +
Offset + DeprecationPushString +
Offset + TEXT ( " GENERATED_UINTERFACE_BODY_COMMON() " ) LINE_TERMINATOR +
EnhCtorCall +
GetPreservedAccessSpecifierString ( Class ) +
Offset + DeprecationPopString ) ) ) ;
}
void FNativeClassHeaderGenerator : : ExportSourceFileHeader ( FClasses & AllClasses , FUnrealSourceFile * SourceFile )
{
TSet < const FUnrealSourceFile * > VisitedSet ;
ExportSourceFileHeaderRecursive ( AllClasses , SourceFile , VisitedSet , false ) ;
}
2015-03-27 18:10:52 -04:00
void WriteMacro ( FUHTStringBuilder & Output , const FString & MacroName , const FString & MacroContent )
2015-01-20 09:33:54 -05:00
{
Output . Log ( * Macroize ( * MacroName , * MacroContent ) ) ;
}
2015-03-17 09:34:18 -04:00
/**
* Writes to output device auto - includes for the given source file .
*
* @ param Out Output device .
* @ param SourceFile Source file .
*/
void ExportAutoIncludes ( FStringOutputDevice & Out , const FUnrealSourceFile & SourceFile )
{
for ( const auto & Include : SourceFile . GetIncludes ( ) )
{
if ( ! Include . IsAutoInclude ( ) )
{
continue ;
}
const auto * AutoIncludedSourceFile = Include . GetResolved ( ) ;
if ( AutoIncludedSourceFile = = nullptr )
{
continue ;
}
Out . Logf (
TEXT ( " #ifndef %s " ) LINE_TERMINATOR
TEXT ( " #include \" %s \" " ) LINE_TERMINATOR
TEXT ( " #endif " ) LINE_TERMINATOR
LINE_TERMINATOR ,
* AutoIncludedSourceFile - > GetFileDefineName ( ) , * AutoIncludedSourceFile - > GetIncludePath ( ) ) ;
}
}
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
static FString PrivatePropertiesOffsetGetters ( const UStruct * Struct , const FString & StructCppName )
{
check ( Struct ) ;
FUHTStringBuilder Result ;
for ( const UProperty * Property : TFieldRange < UProperty > ( Struct , EFieldIteratorFlags : : ExcludeSuper ) )
{
if ( Property & & Property - > HasAnyPropertyFlags ( CPF_NativeAccessSpecifierPrivate | CPF_NativeAccessSpecifierProtected ) & & ! Property - > HasAnyPropertyFlags ( CPF_EditorOnly ) )
{
const UBoolProperty * BoolProperty = Cast < const UBoolProperty > ( Property ) ;
if ( BoolProperty & & ! BoolProperty - > IsNativeBool ( ) ) // if it's a bitfield
{
continue ;
}
FString PropertyName = Property - > GetName ( ) ;
if ( Property - > HasAllPropertyFlags ( CPF_Deprecated ) )
{
PropertyName + = TEXT ( " _DEPRECATED " ) ;
}
Result . Logf ( TEXT ( " \t FORCEINLINE static uint32 __PPO__%s() { return STRUCT_OFFSET(%s, %s); } " ) LINE_TERMINATOR ,
* PropertyName , * StructCppName , * PropertyName ) ;
}
}
return Result ;
}
2015-01-20 09:33:54 -05:00
void FNativeClassHeaderGenerator : : ExportClassesFromSourceFileInner ( FUnrealSourceFile & SourceFile )
{
2015-11-18 16:20:49 -05:00
NameLookupCPP . SetCurrentSourceFile ( & SourceFile ) ;
UHTMakefile . AddToHeaderOrder ( & SourceFile ) ;
2015-01-20 09:33:54 -05:00
TArray < UEnum * > Enums ;
TArray < UScriptStruct * > Structs ;
TArray < UDelegateFunction * > DelegateFunctions ;
GeneratedHeaderText . Logf (
2015-03-17 09:34:18 -04:00
TEXT ( " #ifdef %s " ) LINE_TERMINATOR
2015-01-20 09:33:54 -05:00
TEXT ( " #error \" %s.generated.h already included, missing '#pragma once' in %s.h \" " ) LINE_TERMINATOR
TEXT ( " #endif " ) LINE_TERMINATOR
2015-03-17 09:34:18 -04:00
TEXT ( " #define %s " ) LINE_TERMINATOR
2015-01-20 09:33:54 -05:00
LINE_TERMINATOR ,
2015-03-17 09:34:18 -04:00
* SourceFile . GetFileDefineName ( ) , * SourceFile . GetStrippedFilename ( ) , * SourceFile . GetStrippedFilename ( ) , * SourceFile . GetFileDefineName ( ) ) ;
ExportAutoIncludes ( GeneratedHeaderText , SourceFile ) ;
2014-03-14 14:13:41 -04:00
// get the lists of fields that belong to this class that should be exported
2015-01-20 09:33:54 -05:00
SourceFile . GetScope ( ) - > SplitTypesIntoArrays ( Enums , Structs , DelegateFunctions ) ;
2014-03-14 14:13:41 -04:00
// export enum declarations
ExportEnums ( Enums ) ;
// export delegate definitions
2015-01-20 09:33:54 -05:00
ExportDelegateDefinitions ( SourceFile , DelegateFunctions , false ) ;
2014-03-14 14:13:41 -04:00
// Export enums declared in non-UClass headers.
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
ExportGeneratedEnumsInitCode ( SourceFile , Enums ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
// export boilerplate macros for structs
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
ExportGeneratedStructBodyMacros ( SourceFile , Structs ) ;
2014-03-14 14:13:41 -04:00
// export delegate wrapper function implementations
2015-01-20 09:33:54 -05:00
ExportDelegateDefinitions ( SourceFile , DelegateFunctions , true ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
for ( auto * RawUClass : SourceFile . GetDefinedClasses ( ) )
2014-03-14 14:13:41 -04:00
{
2015-03-27 18:10:52 -04:00
PrologMacroCalls . Reset ( ) ;
InClassMacroCalls . Reset ( ) ;
InClassNoPureDeclsMacroCalls . Reset ( ) ;
StandardUObjectConstructorsMacroCall . Reset ( ) ;
EnhancedUObjectConstructorsMacroCall . Reset ( ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
auto * Class = ( FClass * ) RawUClass ;
if ( Class - > ClassFlags & CLASS_Intrinsic )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
continue ;
2014-03-14 14:13:41 -04:00
}
2015-04-30 10:25:31 -04:00
auto * ClassData = GScriptHelper . FindClassData ( Class ) ;
check ( ClassData ) ;
2015-01-20 09:33:54 -05:00
// C++ -> VM stubs (native function execs)
ExportNativeFunctions ( SourceFile , Class , ClassData ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
// VM -> C++ proxies (events and delegates).
TArray < UFunction * > CallbackFunctions = ExportCallbackFunctions ( SourceFile , Class , ClassData ) ;
// Class definition.
ExportNatives ( Class ) ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder FriendText ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
ExportNativeGeneratedInitCode ( SourceFile , Class , FriendText ) ;
2015-01-20 09:33:54 -05:00
FClass * SuperClass = Class - > GetSuperClass ( ) ;
// the name for the C++ version of the UClass
const TCHAR * ClassCPPName = NameLookupCPP . GetNameCPP ( Class ) ;
const TCHAR * SuperClassCPPName = ( SuperClass ! = nullptr ) ? NameLookupCPP . GetNameCPP ( SuperClass ) : nullptr ;
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
FString PPOMacroName ;
2015-01-20 09:33:54 -05:00
if ( Class - > HasAnyClassFlags ( CLASS_Interface ) )
2014-03-14 14:13:41 -04:00
{
{
2015-03-27 18:10:52 -04:00
FUHTStringBuilder UInterfaceBoilerplate ;
2015-01-20 09:33:54 -05:00
// Export the class's native function registration.
2015-09-21 07:53:49 -04:00
UInterfaceBoilerplate . Logf ( TEXT ( " \t private: \r \n " ) ) ;
UInterfaceBoilerplate . Logf ( TEXT ( " \t static void StaticRegisterNatives%s(); \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
2015-01-20 09:33:54 -05:00
UInterfaceBoilerplate . Log ( * FriendText ) ;
2015-03-27 18:10:52 -04:00
FriendText . Reset ( ) ;
2015-01-20 09:33:54 -05:00
UInterfaceBoilerplate . Logf ( TEXT ( " public: \r \n " ) ) ;
// Build the DECLARE_CLASS line
FString APIArg ( API ) ;
if ( ! Class - > HasAnyClassFlags ( CLASS_MinimalAPI ) )
{
APIArg = TEXT ( " NO " ) ;
}
const bool bCastedClass = Class - > HasAnyCastFlag ( CASTCLASS_AllFlags ) & & SuperClass & & Class - > ClassCastFlags ! = SuperClass - > ClassCastFlags ;
2015-11-18 16:20:49 -05:00
UInterfaceBoilerplate . Logf ( TEXT ( " \t DECLARE_CLASS(%s, %s, COMPILED_IN_FLAGS(CLASS_Abstract%s), %s, TEXT( \" %s \" ), %s_API) \r \n " ) ,
2015-01-20 09:33:54 -05:00
ClassCPPName ,
SuperClassCPPName ,
* GetClassFlagExportText ( Class ) ,
bCastedClass ? * FString : : Printf ( TEXT ( " CASTCLASS_%s " ) , ClassCPPName ) : TEXT ( " 0 " ) ,
2015-11-18 16:20:49 -05:00
* FClass : : GetTypePackageName ( Class ) ,
2015-01-20 09:33:54 -05:00
* APIArg ) ;
2015-09-21 07:53:49 -04:00
UInterfaceBoilerplate . Logf ( TEXT ( " \t DECLARE_SERIALIZER(%s) \r \n " ) , ClassCPPName ) ;
UInterfaceBoilerplate . Log ( TEXT ( " \t enum {IsIntrinsic=COMPILED_IN_INTRINSIC}; \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
if ( Class - > ClassWithin ! = Class - > GetSuperClass ( ) - > ClassWithin )
{
2015-09-21 07:53:49 -04:00
UInterfaceBoilerplate . Logf ( TEXT ( " \t DECLARE_WITHIN(%s) \r \n " ) , NameLookupCPP . GetNameCPP ( Class - > GetClassWithin ( ) ) ) ;
2015-01-20 09:33:54 -05:00
}
ExportConstructorsMacros ( SourceFile . GetGeneratedMacroName ( ClassData ) , Class ) ;
ExportInterfaceBodyMacros ( GeneratedHeaderText , SourceFile , ClassData - > GetGeneratedBodyLine ( ) , Class , StandardUObjectConstructorsMacroCall , EnhancedUObjectConstructorsMacroCall , UInterfaceBoilerplate ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
// =============================================
// Export the pure interface version of the class
// the name of the pure interface class
FString InterfaceCPPName = FString : : Printf ( TEXT ( " I%s " ) , * Class - > GetName ( ) ) ;
FString SuperInterfaceCPPName ;
if ( SuperClass ! = NULL )
{
SuperInterfaceCPPName = FString : : Printf ( TEXT ( " I%s " ) , * SuperClass - > GetName ( ) ) ;
}
// Thunk functions
2015-03-27 18:10:52 -04:00
FUHTStringBuilder InterfaceBoilerplate ;
2015-01-20 09:33:54 -05:00
InterfaceBoilerplate . Logf ( TEXT ( " protected: \r \n \t virtual ~%s() {} \r \n public: \r \n " ) , * InterfaceCPPName ) ;
InterfaceBoilerplate . Logf ( TEXT ( " \t typedef %s UClassType; \r \n " ) , ClassCPPName ) ;
2015-11-18 16:20:49 -05:00
ExportInterfaceCallFunctions ( CallbackFunctions , Class , InterfaceBoilerplate ) ;
2015-01-20 09:33:54 -05:00
// we'll need a way to get to the UObject portion of a native interface, so that we can safely pass native interfaces
// to script VM functions
if ( SuperClass - > IsChildOf ( UInterface : : StaticClass ( ) ) )
{
InterfaceBoilerplate . Logf ( TEXT ( " \t virtual UObject* _getUObject() const = 0; \r \n " ) ) ;
}
// Replication, add in the declaration for GetLifetimeReplicatedProps() automatically if there are any net flagged properties
bool bNeedsRep = false ;
auto ClassName = FString ( NameLookupCPP . GetNameCPP ( Class ) ) ;
for ( TFieldIterator < UProperty > It ( Class , EFieldIteratorFlags : : ExcludeSuper ) ; It ; + + It )
{
if ( ( It - > PropertyFlags & CPF_Net ) ! = 0 )
{
bNeedsRep = true ;
break ;
}
}
auto ClassRange = ClassDefinitionRange ( ) ;
if ( ClassDefinitionRanges . Contains ( Class ) )
{
ClassRange = ClassDefinitionRanges [ Class ] ;
2015-07-15 13:24:05 -04:00
ClassRange . Validate ( ) ;
2015-01-20 09:33:54 -05:00
}
auto ClassStart = ClassRange . Start ;
auto ClassEnd = ClassRange . End ;
auto ClassDefinition = FString ( ClassEnd - ClassStart , ClassStart ) ;
2015-04-10 06:02:22 -04:00
bool bHasGetLifetimeReplicatedProps = HasIdentifierExactMatch ( ClassDefinition , TEXT ( " GetLifetimeReplicatedProps " ) ) ;
2015-01-20 09:33:54 -05:00
if ( bNeedsRep & & ! bHasGetLifetimeReplicatedProps )
{
2015-04-10 06:02:22 -04:00
if ( SourceFile . GetGeneratedCodeVersionForStruct ( Class ) = = EGeneratedCodeVersion : : V1 )
{
InterfaceBoilerplate . Logf ( TEXT ( " \v oid GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const; \r \n " ) ) ;
}
else
{
FError : : Throwf ( TEXT ( " Class %s has Net flagged properties and should declare member function: void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override " ) , ClassCPPName ) ;
}
2015-01-20 09:33:54 -05:00
}
auto NoPureDeclsMacroName = SourceFile . GetGeneratedMacroName ( ClassData , TEXT ( " _INCLASS_IINTERFACE_NO_PURE_DECLS " ) ) ;
WriteMacro ( GeneratedHeaderText , NoPureDeclsMacroName , InterfaceBoilerplate ) ;
2015-03-27 18:10:52 -04:00
InClassNoPureDeclsMacroCalls . Logf ( TEXT ( " \t %s \r \n " ) , * NoPureDeclsMacroName ) ;
2015-01-20 09:33:54 -05:00
auto MacroName = SourceFile . GetGeneratedMacroName ( ClassData , TEXT ( " _INCLASS_IINTERFACE " ) ) ;
2015-04-10 06:02:22 -04:00
WriteMacro ( GeneratedHeaderText , MacroName , InterfaceBoilerplate ) ;
2015-03-27 18:10:52 -04:00
InClassMacroCalls . Logf ( TEXT ( " \t %s \r \n " ) , * MacroName ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
else
2014-12-11 11:49:41 -05:00
{
2015-04-22 14:15:56 -04:00
FUHTStringBuilder ClassBoilerplate ;
2014-03-14 14:13:41 -04:00
2015-04-22 14:15:56 -04:00
// Export the class's native function registration.
2015-09-21 07:53:49 -04:00
ClassBoilerplate . Logf ( TEXT ( " \t private: \r \n " ) ) ;
ClassBoilerplate . Logf ( TEXT ( " \t static void StaticRegisterNatives%s(); \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
2015-04-22 14:15:56 -04:00
ClassBoilerplate . Log ( * FriendText ) ;
2015-09-21 07:53:49 -04:00
ClassBoilerplate . Logf ( TEXT ( " \t public: \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
2015-04-22 14:15:56 -04:00
// Build the DECLARE_CLASS line
FString APIArg ( API ) ;
if ( ! Class - > HasAnyClassFlags ( CLASS_MinimalAPI ) )
2014-03-14 14:13:41 -04:00
{
2015-04-22 14:15:56 -04:00
APIArg = TEXT ( " NO " ) ;
}
const bool bCastedClass = Class - > HasAnyCastFlag ( CASTCLASS_AllFlags ) & & SuperClass & & Class - > ClassCastFlags ! = SuperClass - > ClassCastFlags ;
2015-11-18 16:20:49 -05:00
ClassBoilerplate . Logf ( TEXT ( " \t DECLARE_CLASS(%s, %s, COMPILED_IN_FLAGS(%s%s), %s, TEXT( \" %s \" ), %s_API) \r \n " ) ,
2015-04-22 14:15:56 -04:00
ClassCPPName ,
SuperClassCPPName ? SuperClassCPPName : TEXT ( " None " ) ,
Class - > HasAnyClassFlags ( CLASS_Abstract ) ? TEXT ( " CLASS_Abstract " ) : TEXT ( " 0 " ) ,
* GetClassFlagExportText ( Class ) ,
bCastedClass ? * FString : : Printf ( TEXT ( " CASTCLASS_%s " ) , ClassCPPName ) : TEXT ( " 0 " ) ,
2015-11-18 16:20:49 -05:00
* FClass : : GetTypePackageName ( Class ) ,
2015-04-22 14:15:56 -04:00
* APIArg ) ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
ClassBoilerplate . Logf ( TEXT ( " \t DECLARE_SERIALIZER(%s) \r \n " ) , ClassCPPName ) ;
ClassBoilerplate . Log ( TEXT ( " \t /** Indicates whether the class is compiled into the engine */ \r \n " ) ) ;
ClassBoilerplate . Log ( TEXT ( " \t enum {IsIntrinsic=COMPILED_IN_INTRINSIC}; \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
2015-04-22 14:15:56 -04:00
if ( SuperClass & & Class - > ClassWithin ! = SuperClass - > ClassWithin )
{
2015-09-21 07:53:49 -04:00
ClassBoilerplate . Logf ( TEXT ( " \t DECLARE_WITHIN(%s) \r \n " ) , NameLookupCPP . GetNameCPP ( Class - > GetClassWithin ( ) ) ) ;
2015-04-22 14:15:56 -04:00
}
// export the class's config name
if ( SuperClass & & Class - > ClassConfigName ! = NAME_None & & Class - > ClassConfigName ! = SuperClass - > ClassConfigName )
{
2015-09-21 07:53:49 -04:00
ClassBoilerplate . Logf ( TEXT ( " \t static const TCHAR* StaticConfigName() {return TEXT( \" %s \" );} \r \n \r \n " ) , * Class - > ClassConfigName . ToString ( ) ) ;
2015-04-22 14:15:56 -04:00
}
2015-08-21 07:27:28 -04:00
// export implementation of _getUObject for classes that implement interfaces
if ( Class - > Interfaces . Num ( ) > 0 )
2015-04-22 14:15:56 -04:00
{
ClassBoilerplate . Logf ( TEXT ( " \t virtual UObject* _getUObject() const override { return const_cast<%s*>(this); } \r \n " ) , ClassCPPName ) ;
}
// Replication, add in the declaration for GetLifetimeReplicatedProps() automatically if there are any net flagged properties
bool bHasNetFlaggedProperties = false ;
for ( TFieldIterator < UProperty > It ( Class , EFieldIteratorFlags : : ExcludeSuper ) ; It ; + + It )
{
if ( ( It - > PropertyFlags & CPF_Net ) ! = 0 )
2014-03-14 14:13:41 -04:00
{
2015-04-22 14:15:56 -04:00
bHasNetFlaggedProperties = true ;
break ;
2014-03-14 14:13:41 -04:00
}
2015-04-22 14:15:56 -04:00
}
2014-10-10 04:34:56 -04:00
2015-04-22 14:15:56 -04:00
auto ClassRange = ClassDefinitionRange ( ) ;
if ( ClassDefinitionRanges . Contains ( Class ) )
{
ClassRange = ClassDefinitionRanges [ Class ] ;
2015-07-15 13:24:05 -04:00
ClassRange . Validate ( ) ;
2015-04-22 14:15:56 -04:00
}
2014-03-14 14:13:41 -04:00
2015-04-22 14:15:56 -04:00
auto ClassStart = ClassRange . Start ;
auto ClassEnd = ClassRange . End ;
auto ClassDefinition = FString ( ClassEnd - ClassStart , ClassStart ) ;
bool bHasGetLifetimeReplicatedProps = HasIdentifierExactMatch ( ClassDefinition , TEXT ( " GetLifetimeReplicatedProps " ) ) ;
if ( bHasNetFlaggedProperties & & ! bHasGetLifetimeReplicatedProps )
{
// Default version autogenerates declarations.
if ( SourceFile . GetGeneratedCodeVersionForStruct ( Class ) = = EGeneratedCodeVersion : : V1 )
2014-03-14 14:13:41 -04:00
{
2015-04-22 14:15:56 -04:00
ClassBoilerplate . Logf ( TEXT ( " \t void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override; \r \n " ) ) ;
2015-03-26 18:31:15 -04:00
}
else
{
2015-04-22 14:15:56 -04:00
FError : : Throwf ( TEXT ( " Class %s has Net flagged properties and should declare member function: void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override " ) , ClassCPPName ) ;
2015-03-26 18:31:15 -04:00
}
2014-03-14 14:13:41 -04:00
}
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
{
auto NoPureDeclsMacroName = SourceFile . GetGeneratedMacroName ( ClassData , TEXT ( " _INCLASS_NO_PURE_DECLS " ) ) ;
WriteMacro ( GeneratedHeaderText , NoPureDeclsMacroName , ClassBoilerplate ) ;
InClassNoPureDeclsMacroCalls . Logf ( TEXT ( " \t %s \r \n " ) , * NoPureDeclsMacroName ) ;
2015-04-22 14:15:56 -04:00
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
FString MacroName = SourceFile . GetGeneratedMacroName ( ClassData , TEXT ( " _INCLASS " ) ) ;
WriteMacro ( GeneratedHeaderText , MacroName , ClassBoilerplate ) ;
InClassMacroCalls . Logf ( TEXT ( " \t %s \r \n " ) , * MacroName ) ;
2015-04-22 14:15:56 -04:00
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
ExportConstructorsMacros ( SourceFile . GetGeneratedMacroName ( ClassData ) , Class ) ;
}
{
const FString PrivatePropertiesOffsets = PrivatePropertiesOffsetGetters ( Class , ClassCPPName ) ;
const FString PPOMacroNameRaw = SourceFile . GetGeneratedMacroName ( ClassData , TEXT ( " _PRIVATE_PROPERTY_OFFSET " ) ) ;
PPOMacroName = FString : : Printf ( TEXT ( " \t %s \r \n " ) , * PPOMacroNameRaw ) ;
WriteMacro ( GeneratedHeaderText , PPOMacroNameRaw , PrivatePropertiesOffsets ) ;
}
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
{
FString MacroName = SourceFile . GetGeneratedMacroName ( ClassData - > GetPrologLine ( ) , TEXT ( " _PROLOG " ) ) ;
WriteMacro ( GeneratedHeaderText , MacroName , PrologMacroCalls ) ;
}
{
bool bIsIInterface = Class - > HasAnyClassFlags ( CLASS_Interface ) ;
2015-03-17 05:19:11 -04:00
auto MacroName = FString : : Printf ( TEXT ( " GENERATED_%s_BODY() " ) , bIsIInterface ? TEXT ( " IINTERFACE " ) : TEXT ( " UCLASS " ) ) ;
2015-01-20 09:33:54 -05:00
auto DeprecationWarning = bIsIInterface ? FString ( TEXT ( " " ) ) : GetGeneratedMacroDeprecationWarning ( * MacroName ) ;
auto DeprecationPushString = TEXT ( " PRAGMA_DISABLE_DEPRECATION_WARNINGS " ) LINE_TERMINATOR ;
2015-05-12 17:44:46 -04:00
auto DeprecationPopString = TEXT ( " PRAGMA_ENABLE_DEPRECATION_WARNINGS " ) LINE_TERMINATOR ;
2015-01-20 09:33:54 -05:00
auto Public = TEXT ( " public: " LINE_TERMINATOR ) ;
2015-03-17 05:19:11 -04:00
auto GeneratedBodyLine = bIsIInterface ? ClassData - > GetInterfaceGeneratedBodyLine ( ) : ClassData - > GetGeneratedBodyLine ( ) ;
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
auto LegacyGeneratedBody = FString ( bIsIInterface ? TEXT ( " " ) : PPOMacroName )
+ InClassMacroCalls
+ ( bIsIInterface ? TEXT ( " " ) : StandardUObjectConstructorsMacroCall ) ;
auto GeneratedBody = FString ( bIsIInterface ? TEXT ( " " ) : PPOMacroName )
+ InClassNoPureDeclsMacroCalls
+ ( bIsIInterface ? TEXT ( " " ) : EnhancedUObjectConstructorsMacroCall ) ;
2015-01-20 09:33:54 -05:00
2015-03-17 05:19:11 -04:00
auto WrappedLegacyGeneratedBody = DeprecationWarning + DeprecationPushString + Public + LegacyGeneratedBody + Public + DeprecationPopString ;
auto WrappedGeneratedBody = FString ( DeprecationPushString ) + Public + GeneratedBody + GetPreservedAccessSpecifierString ( Class ) + DeprecationPopString ;
2015-01-20 09:33:54 -05:00
2015-03-17 05:19:11 -04:00
auto BodyMacros = Macroize ( * SourceFile . GetGeneratedBodyMacroName ( GeneratedBodyLine , true ) , * WrappedLegacyGeneratedBody ) +
Macroize ( * SourceFile . GetGeneratedBodyMacroName ( GeneratedBodyLine , false ) , * WrappedGeneratedBody ) ;
2015-01-20 09:33:54 -05:00
GeneratedHeaderText . Log ( * BodyMacros ) ;
}
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
if ( GPublicSourceFileSet . Contains ( & SourceFile ) & & ! ListOfPublicHeaderGroupIncludes . Contains ( & SourceFile ) )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
ListOfPublicHeaderGroupIncludes . Add ( & SourceFile ) ;
2014-03-14 14:13:41 -04:00
}
}
2014-10-31 04:01:12 -04:00
/**
* Generates private copy - constructor declaration .
*
* @ param Out Output device to generate to .
* @ param Class Class to generate constructor for .
* @ param API API string for this constructor .
*/
2015-03-27 18:10:52 -04:00
void ExportCopyConstructorDefinition ( FUHTStringBuilder & Out , FClass * Class , const FString & API )
2014-10-31 04:01:12 -04:00
{
auto ClassNameCPP = NameLookupCPP . GetNameCPP ( Class ) ;
Out . Logf ( TEXT ( " private: \r \n " ) ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 2996057)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2975196 on 2016/05/12 by Robert.Manuszewski
Garbage Collector will no longer be responsible for generating class token stream, instead the token stream will be generated on startup or when a class has finished loading.
- This way we can avoid very long GC times after new blueprints have been loaded.
- Temporarily enabled CLASS_TokenStreamAssembled check in development builds (for testing purposes)
Change 2993960 on 2016/05/30 by Robert.Manuszewski
Fixing leaked linkers created by blocking load requests during async loading.
Change 2959398 on 2016/04/28 by Steve.Robb
TMap references are strong and cannot be nulled by pending kill. This makes references in values strong too, even though we only really care about keys, which will corrupt the map when nulled.
#jira UE-20828
Change 2960723 on 2016/04/29 by Graeme.Thornton
Fix for texture asset import data being ignored when async loaded
Change 2960938 on 2016/04/29 by Robert.Manuszewski
Nulling out sql db handle after closing it.
Change 2967127 on 2016/05/05 by Steve.Robb
Move constructors explicitly disabled in generated code.
Change 2967143 on 2016/05/05 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 2967164 on 2016/05/05 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer
Change 2968650 on 2016/05/06 by Steve.Robb
Fix for HotReload copying module manager.
Change 2968915 on 2016/05/06 by Robert.Manuszewski
Fixing spelling of SetImageIntegrityStatus function name.
Change 2970406 on 2016/05/09 by Steve.Robb
Static analysis fixes:
Function uses '...' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap.
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2970431 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6299: Explicitly comparing a bit field to a Boolean type will yield unexpected results.
Change 2972032 on 2016/05/10 by Steven.Hutton
Workflow fixes to bugg / crashgroup filtering. Filters should now correctly persist across queries.
Change 2972085 on 2016/05/10 by Steve.Robb
Const-correctness fix for FLogCategoryBase::IsSuppressed.
Change 2972087 on 2016/05/10 by Steve.Robb
ELogVerbosity moved into its own header.
Change 2972090 on 2016/05/10 by Steve.Robb
Redundant ensure removed.
Change 2972103 on 2016/05/10 by Steve.Robb
Removal of redundant use of USING_CODE_ANALYSIS.
Change 2972139 on 2016/05/10 by Steve.Robb
Fix for ensure macros throwing C6326 warnings during static analysis.
Change 2972147 on 2016/05/10 by Steve.Robb
Fix for UE_LOG_ACTIVE macro throwing C6326 warnings during static analysis.
Change 2972162 on 2016/05/10 by Steve.Robb
SCOPE_CYCLE_COUNTER_GUARD removed.
Change 2972168 on 2016/05/10 by Steve.Robb
Compile error fix for logOrEnsureNanError in static analysis builds.
Change 2973084 on 2016/05/10 by Chris.Wood
Crash Report Server performance tweak
Change 2974030 on 2016/05/11 by Steve.Robb
Fix for IPropertyHandle::SetValue - used to take a non-const reference to a const UObject*, now it takes const references to both non-const and const UObject*.
Change 2974053 on 2016/05/11 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 2974191 on 2016/05/11 by Steve.Robb
Fix for template instantiation error in VS2013.
Change 2975298 on 2016/05/12 by Steve.Robb
Static analysis fixes:
warning C6236: (<expression> || <non-zero constant>) is always a non-zero constant.
Change 2975318 on 2016/05/12 by Steve.Robb
Fix for hot reload info being reported as warnings.
#jira UE-30586
Change 2975447 on 2016/05/12 by Steve.Robb
Static analysis fixes:
warning C6235: (<non-zero constant> || <expression>) is always a non-zero constant.
warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>. Did you intend to use the bitwise-and operator?
warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>. Did you intend to use the bitwise-and operator?
warning C6285: (<non-zero constant> || <non-zero constant>) is always a non-zero constant. Did you intend to use the bitwise-and operator?
warning C6286: (<non-zero constant> || <expression>) is always a non-zero constant. <expression> is never evaluated and might have side effects.
warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead?
warning C6316: Incorrect operator: tested expression is constant and non-zero. Use bitwise-and to determine whether bits are set.
Change 2975478 on 2016/05/12 by Steve.Robb
Static analysis fixes for lots of redundant <zero constant> and <non-zero constant> warnings.
Change 2975538 on 2016/05/12 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'StaticResource'
Change 2976640 on 2016/05/13 by Robert.Manuszewski
Fixing crashes caused by token stream generation changes. Making sure the token stream gets re-generated when a class gets re-linked.
#jira UE-30675
Change 2978320 on 2016/05/16 by Steve.Robb
Fix for static analysis warnings in XNA headers.
Change 2978329 on 2016/05/16 by Steve.Robb
Static analysis fixes:
warning C6334: sizeof operator applied to an expression with an operator might yield unexpected results: Parentheses can be used to disambiguate certain usages.
Change 2980222 on 2016/05/17 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'.
warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did.
Change 2980458 on 2016/05/17 by Chris.Wood
Attempt to fix crash report submission problems from CRP to CR website
[UE-30257] - Crashreports are sometimes missing file attachments
Passing crash GUID so that website can easily check for duplicates in future
Increased request timeout for AddCrash to be longer than website database timeout
Logging retries for future visibility
CRP v.1.1.6
Change 2980639 on 2016/05/17 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'.
warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did.
Change 2981750 on 2016/05/18 by Steve.Robb
check()s in ContainerAllocationPolicies.h changed to checkSlow()s, as they only exist to check that the container has been written correctly.
Change 2982106 on 2016/05/18 by John.Mahoney
Fixed a crash caused by loading two stat capture files simultaneously in the profiler.
If the user tries to load a capture file while another load is in progress, the previous load is now cancelled and cleaned up before proceeding with the new load.
Made the delegates in FNewStatsReader explicitly specify which profiler instance they are loading data for, instead of relying on the current value of LoadConnection->InstanceId.
This also fixes a crash that occurs when selecting a different capture file in the "Stats dump browser" pane of the profiler (after using Load Folder) while another file is still loading.
Cleaned up some weak pointer usage in the profiler window.
#jira UE-30741
Change 2983366 on 2016/05/19 by Steven.Hutton
Changes for passing crash type directly from CRP to CRW.
Change 2983394 on 2016/05/19 by Steven.Hutton
Minor changes to add crash with more error reporting
Change 2984685 on 2016/05/20 by Robert.Manuszewski
Merging //UE4/Dev-Main @ 2984626 to Dev-Core (//UE4/Dev-Core)
Change 2985143 on 2016/05/20 by Steve.Robb
Missing semi-colons.
Change 2986463 on 2016/05/23 by Steve.Robb
CopyTemp added to make it clear that you want to make a copy (rather than a move, or an accidental copy) at the call site of a function taking rvalue refs.
Change 2986475 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6313: Incorrect operator: zero-valued flag cannot be tested with bitwise-and.
Change 2986476 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6313: Incorrect operator: zero-valued flag cannot be tested with bitwise-and.
Change 2986480 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant
Change 2986515 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6340: Mismatch on sign: 'X' passed as _Param_(N) when some unsigned type is required in call to 'Func'
Change 2986680 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6386: Buffer overrun while writing to 'Ptr': the writable size is 'X' bytes, but 'Y' bytes might be written.
warning C6387: 'Ptr' could be '0': this does not adhere to the specification for the function 'Func'
warning C6031: Return value ignored: 'snprintf'.
warning C6340: Mismatch on sign: 'const unsigned int' passed as _Param_(4) when some signed type is required in call to 'snprintf'.
Change 2986865 on 2016/05/23 by Robert.Manuszewski
Removing redundand AddReferencedObjects functions
Change 2987968 on 2016/05/24 by Robert.Manuszewski
Removing redundant UPROPERTY macros from intrinsic classes.
Change 2987979 on 2016/05/24 by Steve.Robb
Optimization of some FString and FPaths operations to produce fewer temporaries.
Change 2988297 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6287: Redundant code: the left and right sub-expressions are identical.
Change 2988430 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6385: Reading invalid data from 'var': the readable size is 'X' bytes, but 'Y' bytes may be read.
Change 2988461 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6235: (<non-zero constant> || <expression>) is always a non-zero constant.
warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>.
warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>.
Change 2988464 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6262: Function uses 'X' bytes of stack: exceeds /analyze:stacksize 'Y'. Consider moving some data to heap.
Change 2988494 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6237: (<zero> && <expression>) is always zero. <expression> is never evaluated and might have side effects.
Change 2989411 on 2016/05/25 by Robert.Manuszewski
Splitting GC cluster index and intenral object flags to allow more UObjects in editor builds.
Change 2989429 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6387: '_Param_(X)' could be '0': this does not adhere to the specification for the function 'Func'.
Change 2989982 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6001: Using uninitialized memory 'LODPlanesMin'.
Change 2990018 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6386: Buffer overrun while writing to 'X'
Change 2990077 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>.
warning C6011: Dereferencing NULL pointer 'Ptr'.
Change 2990114 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent.
Change 2990125 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>.
Change 2990162 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed.
Change 2990193 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C28182: Dereferencing NULL pointer. 'type' contains the same NULL value as 'type->base_type' did.
warning C6011: Dereferencing NULL pointer 'Semantic'.
Change 2991006 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C28113: Accessing a local variable dummy via an Interlocked function: This is an unusual usage which could be reconsidered.
Change 2991012 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6031: Return value ignored: 'InitializeCriticalSectionAndSpinCount'.
Change 2991013 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6287: Redundant code: the left and right sub-expressions are identical.
Change 2991016 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6236: (<expression> || <non-zero constant>) is always a non-zero constant.
Change 2991017 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 2991019 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6292: Ill-defined for-loop: counts up from maximum.
Change 2991023 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6322: Empty _except block.
warning C28251: Inconsistent annotation for 'WinMain': this instance has no annotations.
Change 2991070 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C28182: Dereferencing NULL pointer. 'Ptr1' contains the same NULL value as 'Ptr2' did.
Change 2991416 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Ptr'.
Change 2992738 on 2016/05/27 by Steve.Robb
Revert changes to FString::MatchesWildcard.
Change 2992916 on 2016/05/27 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Ptr'.
Change 2992960 on 2016/05/27 by Chris.Wood
Optimized P4 access in Crash Report Process and MinidumpDiagostics.
Change 2992964 on 2016/05/27 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Ptr'.
Change 2993956 on 2016/05/30 by Robert.Manuszewski
Fixing a crash after adding a new C++ class in the editor - made sure new classes have the token stream assembled after hot-reload.
#jira UE-31309
Change 2993977 on 2016/05/30 by Robert.Manuszewski
Don't wait for all packages to finish loading before PostLoading those which already have.
Change 2994206 on 2016/05/31 by Robert.Manuszewski
PR #2429: Three bug fixes required for script support to work properly (Contributed by pluranium)
#lockdown Nick.Penwarden
[CL 2996251 by Robert Manuszewski in Main branch]
2016-06-01 12:08:56 -04:00
Out . Logf ( TEXT ( " \t /** Private move- and copy-constructors, should never be used */ \r \n " ) ) ;
Out . Logf ( TEXT ( " \t %s_API %s(%s&&); \r \n " ) , * API , ClassNameCPP , ClassNameCPP ) ;
Out . Logf ( TEXT ( " \t %s_API %s(const %s&); \r \n " ) , * API , ClassNameCPP , ClassNameCPP ) ;
2014-10-31 04:01:12 -04:00
Out . Logf ( TEXT ( " public: \r \n " ) ) ;
}
2015-03-02 06:44:04 -05:00
# if WITH_HOT_RELOAD_CTORS
/**
* Generates vtable helper constructor declaration .
*
* @ param Out Output device to generate to .
* @ param Class Class to generate constructor for .
* @ param API API string for this constructor .
*/
void ExportVTableHelperConstructorDecl ( FStringOutputDevice & Out , FClass * Class , const FString & API )
{
auto * ClassData = GScriptHelper . FindClassData ( Class ) ;
2015-04-30 10:25:31 -04:00
check ( ClassData ) ;
2015-03-02 06:44:04 -05:00
if ( ! ClassData - > bCustomVTableHelperConstructorDeclared )
{
2015-09-21 07:53:49 -04:00
Out . Logf ( TEXT ( " \t DECLARE_VTABLE_PTR_HELPER_CTOR(%s_API, %s); " LINE_TERMINATOR ) , * API , NameLookupCPP . GetNameCPP ( Class ) ) ;
2015-03-02 06:44:04 -05:00
}
}
/**
* Generates vtable helper ctor caller .
*
* @ param Out Output device to generate to .
* @ param Class Class to generate for .
*/
void ExportVTableHelperCtorCaller ( FStringOutputDevice & Out , FClass * Class )
{
Out . Logf ( TEXT ( " DEFINE_VTABLE_PTR_HELPER_CTOR_CALLER(%s); " LINE_TERMINATOR ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
}
/**
* Generates vtable helper ctor caller dummy .
*
* @ param Out Output device to generate to .
*/
void ExportVTableHelperCtorCallerDummy ( FStringOutputDevice & Out )
{
Out . Logf ( TEXT ( " DEFINE_VTABLE_PTR_HELPER_CTOR_CALLER_DUMMY(); " LINE_TERMINATOR ) ) ;
}
/**
* Generates vtable helper constructor body .
*
* @ param Out Output device to generate to .
* @ param Class Class to generate constructor for .
* @ param API API string for this constructor .
*/
void ExportVTableHelperConstructorBody ( FStringOutputDevice & Out , FClass * Class )
{
auto * ClassData = GScriptHelper . FindClassData ( Class ) ;
2015-04-30 10:25:31 -04:00
check ( ClassData ) ;
2015-03-02 06:44:04 -05:00
if ( ! ClassData - > bCustomVTableHelperConstructorDeclared )
{
2015-09-21 07:53:49 -04:00
Out . Logf ( TEXT ( " \t DEFINE_VTABLE_PTR_HELPER_CTOR(%s); " LINE_TERMINATOR ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
2015-03-02 06:44:04 -05:00
}
}
/**
* Generates vtable helper caller and eventual constructor body .
*
* @ param Out Output device to generate to .
* @ param Class Class to generate for .
* @ param API API string .
* @ param bExportVTableConstructors Tells if we are going to export constructors as well .
*/
void ExportVTableHelperCtorAndCaller ( FStringOutputDevice & Out , FClass * Class , const FString & API , bool bExportVTableConstructors )
{
if ( bExportVTableConstructors )
{
ExportVTableHelperConstructorDecl ( Out , Class , API ) ;
ExportVTableHelperCtorCaller ( Out , Class ) ;
}
else
{
ExportVTableHelperCtorCallerDummy ( Out ) ;
}
}
# endif // WITH_HOT_RELOAD_CTORS
2014-10-10 04:34:56 -04:00
/**
* Generates standard constructor declaration .
*
* @ param Out Output device to generate to .
* @ param Class Class to generate constructor for .
* @ param API API string for this constructor .
2015-03-02 06:44:04 -05:00
* @ param bExportVTableConstructors Export VTable constructors .
2014-10-10 04:34:56 -04:00
*/
2015-03-27 18:10:52 -04:00
void ExportStandardConstructorsMacro ( FUHTStringBuilder & Out , FClass * Class , const FString & API
2015-03-02 06:44:04 -05:00
# if WITH_HOT_RELOAD_CTORS
, bool bExportVTableConstructors
# endif // WITH_HOT_RELOAD_CTORS
)
2014-10-10 04:34:56 -04:00
{
if ( ! Class - > HasAnyClassFlags ( CLASS_CustomConstructor ) )
{
2015-03-27 18:10:52 -04:00
Out . Logf ( TEXT ( " \t /** Standard constructor, called after all reflected properties have been initialized */ \r \n " ) ) ;
2015-04-21 04:37:32 -04:00
auto * ClassData = GScriptHelper . FindClassData ( Class ) ;
2015-04-30 10:25:31 -04:00
check ( ClassData ) ;
2015-04-21 04:37:32 -04:00
Out . Logf ( TEXT ( " \t %s_API %s(const FObjectInitializer& ObjectInitializer%s); \r \n " ) , * API , NameLookupCPP . GetNameCPP ( Class ) ,
ClassData - > bDefaultConstructorDeclared ? TEXT ( " " ) : TEXT ( " = FObjectInitializer::Get() " ) ) ;
2014-10-10 04:34:56 -04:00
}
2015-03-27 18:10:52 -04:00
Out . Logf ( TEXT ( " \t DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(%s) \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
2015-03-02 06:44:04 -05:00
# if WITH_HOT_RELOAD_CTORS
ExportVTableHelperCtorAndCaller ( Out , Class , API , bExportVTableConstructors ) ;
# endif // WITH_HOT_RELOAD_CTORS
2014-10-31 04:01:12 -04:00
ExportCopyConstructorDefinition ( Out , Class , API ) ;
2014-10-10 04:34:56 -04:00
}
/**
* Generates constructor definition .
*
* @ param Out Output device to generate to .
* @ param Class Class to generate constructor for .
* @ param API API string for this constructor .
*/
2015-03-27 18:10:52 -04:00
void ExportConstructorDefinition ( FUHTStringBuilder & Out , FClass * Class , const FString & API )
2014-10-10 04:34:56 -04:00
{
auto * ClassData = GScriptHelper . FindClassData ( Class ) ;
2015-04-30 10:25:31 -04:00
check ( ClassData ) ;
2014-10-10 04:34:56 -04:00
if ( ! ClassData - > bConstructorDeclared )
{
2015-03-27 18:10:52 -04:00
Out . Logf ( TEXT ( " \t /** Standard constructor, called after all reflected properties have been initialized */ \r \n " ) ) ;
2015-02-14 17:40:09 -05:00
// Assume super class has OI constructor, this may not always be true but we should always be able to check this.
// In any case, it will default to old behaviour before we even checked this.
bool bSuperClassObjectInitializerConstructorDeclared = true ;
auto * SuperClass = Class - > GetSuperClass ( ) ;
if ( SuperClass ! = nullptr )
{
auto * SuperClassData = GScriptHelper . FindClassData ( SuperClass ) ;
if ( SuperClassData )
{
bSuperClassObjectInitializerConstructorDeclared = SuperClassData - > bObjectInitializerConstructorDeclared ;
}
}
if ( bSuperClassObjectInitializerConstructorDeclared )
{
2015-04-21 04:37:32 -04:00
Out . Logf ( TEXT ( " \t %s_API %s(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()) : Super(ObjectInitializer) { }; \r \n " ) , * API , NameLookupCPP . GetNameCPP ( Class ) ) ;
2015-02-14 17:40:09 -05:00
ClassData - > bObjectInitializerConstructorDeclared = true ;
}
else
{
2015-03-27 18:10:52 -04:00
Out . Logf ( TEXT ( " \t %s_API %s() { }; \r \n " ) , * API , NameLookupCPP . GetNameCPP ( Class ) ) ;
2015-02-14 17:40:09 -05:00
ClassData - > bDefaultConstructorDeclared = true ;
}
2014-10-10 04:34:56 -04:00
ClassData - > bConstructorDeclared = true ;
}
2014-10-31 04:01:12 -04:00
ExportCopyConstructorDefinition ( Out , Class , API ) ;
2014-10-10 04:34:56 -04:00
}
/**
* Generates constructor call definition .
*
* @ param Out Output device to generate to .
* @ param Class Class to generate constructor call definition for .
*/
2015-03-27 18:10:52 -04:00
void ExportDefaultConstructorCallDefinition ( FUHTStringBuilder & Out , FClass * Class )
2014-10-10 04:34:56 -04:00
{
auto * ClassData = GScriptHelper . FindClassData ( Class ) ;
2015-04-30 10:25:31 -04:00
check ( ClassData ) ;
2014-10-10 04:34:56 -04:00
2014-10-14 10:29:11 -04:00
if ( ClassData - > bObjectInitializerConstructorDeclared )
2014-10-10 04:34:56 -04:00
{
2015-03-27 18:10:52 -04:00
Out . Logf ( TEXT ( " \t DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(%s) \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
2014-10-10 04:34:56 -04:00
}
else if ( ClassData - > bDefaultConstructorDeclared )
{
2015-03-27 18:10:52 -04:00
Out . Logf ( TEXT ( " \t DEFINE_DEFAULT_CONSTRUCTOR_CALL(%s) \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
2014-10-10 04:34:56 -04:00
}
else
{
2015-03-27 18:10:52 -04:00
Out . Logf ( TEXT ( " \t DEFINE_FORBIDDEN_DEFAULT_CONSTRUCTOR_CALL(%s) \r \n " ) , NameLookupCPP . GetNameCPP ( Class ) ) ;
2014-10-10 04:34:56 -04:00
}
}
/**
* Generates enhanced constructor declaration .
*
* @ param Out Output device to generate to .
* @ param Class Class to generate constructor for .
* @ param API API string for this constructor .
2015-03-02 06:44:04 -05:00
* @ param bExportVTableConstructors Export VTable constructors .
2014-10-10 04:34:56 -04:00
*/
2015-03-27 18:10:52 -04:00
void ExportEnhancedConstructorsMacro ( FUHTStringBuilder & Out , FClass * Class , const FString & API
2015-03-02 06:44:04 -05:00
# if WITH_HOT_RELOAD_CTORS
, bool bExportVTableConstructors
# endif // WITH_HOT_RELOAD_CTORS
)
2014-10-10 04:34:56 -04:00
{
ExportConstructorDefinition ( Out , Class , API ) ;
2015-03-02 06:44:04 -05:00
# if WITH_HOT_RELOAD_CTORS
ExportVTableHelperCtorAndCaller ( Out , Class , API , bExportVTableConstructors ) ;
# endif // WITH_HOT_RELOAD_CTORS
2014-10-10 04:34:56 -04:00
ExportDefaultConstructorCallDefinition ( Out , Class ) ;
}
2015-01-21 12:32:28 -05:00
/**
* Gets a package relative inclusion path of the given source file for build .
*
* @ param SourceFile Given source file .
*
* @ returns Inclusion path .
*/
FString GetBuildPath ( FUnrealSourceFile & SourceFile )
{
FString Out = SourceFile . GetFilename ( ) ;
ConvertToBuildIncludePath ( SourceFile . GetPackage ( ) , Out ) ;
return Out ;
}
2015-11-18 16:20:49 -05:00
FString FNativeClassHeaderGenerator : : GetListOfPublicHeaderGroupIncludesString ( const UPackage * InPackage )
2015-01-20 09:33:54 -05:00
{
2015-03-27 18:10:52 -04:00
FUHTStringBuilder Out ;
2015-01-20 09:33:54 -05:00
// Fill with the rest source files from this package.
for ( auto * SourceFile : GPublicSourceFileSet )
{
2015-04-22 14:15:56 -04:00
if ( SourceFile - > GetPackage ( ) = = InPackage & & ! ListOfPublicHeaderGroupIncludes . Contains ( SourceFile ) )
2015-01-20 09:33:54 -05:00
{
ListOfPublicHeaderGroupIncludes . Add ( SourceFile ) ;
}
}
for ( auto * SourceFile : ListOfPublicHeaderGroupIncludes )
{
2015-01-21 12:32:28 -05:00
Out . Logf ( TEXT ( " #include \" %s \" " ) LINE_TERMINATOR , * GetBuildPath ( * SourceFile ) ) ;
2015-01-20 09:33:54 -05:00
}
Out . Log ( LINE_TERMINATOR ) ;
return Out ;
}
void FNativeClassHeaderGenerator : : ExportConstructorsMacros ( const FString & ConstructorsMacroPrefix , FClass * Class )
2014-10-10 04:34:56 -04:00
{
FString APIArg ( API ) ;
if ( ! Class - > HasAnyClassFlags ( CLASS_MinimalAPI ) )
{
APIArg = TEXT ( " NO " ) ;
}
2015-03-27 18:10:52 -04:00
FUHTStringBuilder StdMacro ;
FUHTStringBuilder EnhMacro ;
2015-01-20 09:33:54 -05:00
FString StdMacroName = ConstructorsMacroPrefix + TEXT ( " _STANDARD_CONSTRUCTORS " ) ;
FString EnhMacroName = ConstructorsMacroPrefix + TEXT ( " _ENHANCED_CONSTRUCTORS " ) ;
2014-10-10 04:34:56 -04:00
2015-03-02 06:44:04 -05:00
# if WITH_HOT_RELOAD_CTORS
ExportStandardConstructorsMacro ( StdMacro , Class , APIArg , bExportVTableConstructors ) ;
ExportEnhancedConstructorsMacro ( EnhMacro , Class , APIArg , bExportVTableConstructors ) ;
if ( bExportVTableConstructors )
{
ExportVTableHelperConstructorBody ( GetGeneratedFunctionTextDevice ( ) , Class ) ;
}
# else // WITH_HOT_RELOAD_CTORS
2014-10-10 04:34:56 -04:00
ExportStandardConstructorsMacro ( StdMacro , Class , APIArg ) ;
ExportEnhancedConstructorsMacro ( EnhMacro , Class , APIArg ) ;
2015-03-02 06:44:04 -05:00
# endif // WITH_HOT_RELOAD_CTORS
2014-10-10 04:34:56 -04:00
GeneratedHeaderText . Log ( * Macroize ( * StdMacroName , * StdMacro ) ) ;
GeneratedHeaderText . Log ( * Macroize ( * EnhMacroName , * EnhMacro ) ) ;
2015-03-27 18:10:52 -04:00
StandardUObjectConstructorsMacroCall . Logf ( TEXT ( " \t %s \r \n " ) , * StdMacroName ) ;
EnhancedUObjectConstructorsMacroCall . Logf ( TEXT ( " \t %s \r \n " ) , * EnhMacroName ) ;
2014-10-10 04:34:56 -04:00
}
2015-01-20 09:33:54 -05:00
void FNativeClassHeaderGenerator : : ExportClassesFromSourceFileWrapper ( FUnrealSourceFile & SourceFile )
2014-03-14 14:13:41 -04:00
{
check ( ! GeneratedHeaderText . Len ( ) ) ;
2015-01-20 09:33:54 -05:00
ExportClassesFromSourceFileInner ( SourceFile ) ;
2014-03-14 14:13:41 -04:00
if ( ! GeneratedHeaderText . Len ( ) & & ! EnumForeachText . Len ( ) )
{
// Nothing to export
return ;
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
GeneratedHeaderText . Log ( TEXT ( " #undef CURRENT_FILE_ID \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
GeneratedHeaderText . Logf ( TEXT ( " #define CURRENT_FILE_ID %s \r \n \r \n \r \n " ) , * SourceFile . GetFileId ( ) ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
const FString SourceFilename = SourceFile . GetFilename ( ) ;
const FString PkgName = FPackageName : : GetShortName ( Package ) ;
2014-03-14 14:13:41 -04:00
FString NewFileName = SourceFilename . EndsWith ( TEXT ( " .h " ) ) ? SourceFilename : ( SourceFilename + TEXT ( " .h " ) ) ;
FString PkgDir ;
FString GeneratedIncludeDirectory ;
2014-09-18 04:05:01 -04:00
if ( FindPackageLocation ( * PkgName , PkgDir , GeneratedIncludeDirectory ) = = false )
2014-03-14 14:13:41 -04:00
{
UE_LOG ( LogCompile , Error , TEXT ( " Failed to find path for package %s " ) , * PkgName ) ;
}
2015-01-20 09:33:54 -05:00
const FString ClassHeaderPath ( GeneratedIncludeDirectory / FPaths : : GetBaseFilename ( SourceFile . GetFilename ( ) ) + TEXT ( " .generated.h " ) ) ;
GeneratedHeaderText + = EnumForeachText ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder GeneratedHeaderTextWithCopyright ;
2015-01-20 09:33:54 -05:00
GeneratedHeaderTextWithCopyright . Log (
2016-12-08 08:52:44 -05:00
TEXT ( " // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved. \r \n " )
2015-01-20 09:33:54 -05:00
TEXT ( " /*=========================================================================== \r \n " )
2015-09-21 07:53:49 -04:00
TEXT ( " \t C++ class header boilerplate exported from UnrealHeaderTool. \r \n " )
TEXT ( " \t This is automatically generated by the tools. \r \n " )
TEXT ( " \t DO NOT modify this manually! Edit the corresponding .h files instead! \r \n " )
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
TEXT ( " ===========================================================================*/ \r \n " )
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
LINE_TERMINATOR
TEXT ( " #include \" ObjectMacros.h \" \r \n " )
2015-01-20 09:33:54 -05:00
LINE_TERMINATOR ) ;
2015-03-10 08:24:59 -04:00
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
GeneratedHeaderTextWithCopyright . Log ( TEXT ( " PRAGMA_DISABLE_DEPRECATION_WARNINGS " ) LINE_TERMINATOR ) ;
2015-01-20 09:33:54 -05:00
TSet < FString > ForwardDeclarationStrings ;
for ( auto Property : ForwardDeclarations )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
auto FWDecl = Property - > GetCPPTypeForwardDeclaration ( ) ;
if ( FWDecl . Len ( ) > 0 )
2014-12-11 11:49:41 -05:00
{
2015-01-20 09:33:54 -05:00
ForwardDeclarationStrings . Add ( FWDecl ) ;
2014-03-14 14:13:41 -04:00
}
}
2015-01-20 09:33:54 -05:00
for ( auto FWDeclString : ForwardDeclarationStrings )
{
GeneratedForwardDeclarations . Logf ( TEXT ( " %s \r \n " ) , * FWDeclString ) ;
}
GeneratedHeaderTextWithCopyright . Log ( * GeneratedForwardDeclarations ) ;
GeneratedHeaderTextWithCopyright . Log ( * GeneratedHeaderText ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
GeneratedHeaderTextWithCopyright . Log ( TEXT ( " PRAGMA_ENABLE_DEPRECATION_WARNINGS " ) LINE_TERMINATOR ) ;
2015-01-20 09:33:54 -05:00
SourceFile . SetGeneratedFilename ( ClassHeaderPath ) ;
SourceFile . SetHasChanged ( SaveHeaderIfChanged ( * ClassHeaderPath , * GeneratedHeaderTextWithCopyright ) ) ;
check ( SourceFilename . EndsWith ( TEXT ( " .h " ) ) ) ;
ConvertToBuildIncludePath ( Package , NewFileName ) ;
auto IncludeStr = FString : : Printf (
2015-03-17 09:34:18 -04:00
TEXT ( " #ifndef %s " ) LINE_TERMINATOR
2015-09-21 07:53:49 -04:00
TEXT ( " \t #include \" %s \" " ) LINE_TERMINATOR
2015-03-17 09:34:18 -04:00
TEXT ( " #endif " ) LINE_TERMINATOR ,
* SourceFile . GetFileDefineName ( ) , * NewFileName ) ;
2015-01-20 09:33:54 -05:00
// Keep track of all of the UObject headers for this module, in the same order that we digest them in
// @todo uht: We're wrapping these includes in checks for header guards, ONLY because most existing UObject headers are missing '#pragma once'
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
ListOfAllUObjectHeaderIncludes . Log ( * IncludeStr ) ;
ListOfPublicClassesUObjectHeaderModuleIncludes . Log ( * IncludeStr ) ;
2015-01-20 09:33:54 -05:00
2015-03-27 18:10:52 -04:00
ForwardDeclarations . Reset ( ) ;
GeneratedForwardDeclarations . Reset ( ) ;
GeneratedHeaderText . Reset ( ) ;
EnumForeachText . Reset ( ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
void FNativeClassHeaderGenerator : : ExportSourceFileHeaderRecursive ( FClasses & AllClasses , FUnrealSourceFile * SourceFile , TSet < const FUnrealSourceFile * > & VisitedSet , bool bCheckDependenciesOnly )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
bool bIsCorrectHeader = SourceFile - > GetPackage ( ) = = Package ;
2014-03-14 14:13:41 -04:00
// Check for circular header dependencies between export classes.
2015-01-20 09:33:54 -05:00
if ( ! bIsCorrectHeader )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
if ( VisitedSet . Num ( ) = = 0 )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
// The first export class we found doesn't belong in this header: No need to keep exporting along this dependency path.
return ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
// From now on, we're not going to export anything. Instead, we're going to check that no deeper dependency tries to export to this header file.
bCheckDependenciesOnly = true ;
2014-03-14 14:13:41 -04:00
}
// Check if the Class has already been exported, after we've checked for circular header dependencies.
2015-01-20 09:33:54 -05:00
if ( GExportedSourceFiles . Contains ( SourceFile ) )
2014-03-14 14:13:41 -04:00
{
return ;
}
// Check for circular dependencies.
2015-01-20 09:33:54 -05:00
if ( VisitedSet . Contains ( SourceFile ) )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
UE_LOG ( LogCompile , Error , TEXT ( " Circular dependency detected for filename %s! " ) , * SourceFile - > GetFilename ( ) ) ;
2014-03-14 14:13:41 -04:00
return ;
}
2014-04-23 20:18:55 -04:00
2014-03-14 14:13:41 -04:00
// Temporarily mark the Class as VISITED. Make sure to clear this flag before returning!
2015-01-20 09:33:54 -05:00
VisitedSet . Add ( SourceFile ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
TArray < FUnrealSourceFile * > DependOnList ;
for ( auto & Include : SourceFile - > GetIncludes ( ) )
2014-03-14 14:13:41 -04:00
{
2015-04-22 14:15:56 -04:00
auto * OtherSourceFile = Include . Resolve ( ) ;
if ( OtherSourceFile & & ! DependOnList . Contains ( OtherSourceFile ) )
2014-03-14 14:13:41 -04:00
{
2015-04-22 14:15:56 -04:00
DependOnList . Add ( OtherSourceFile ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
}
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
for ( auto * DependOn : DependOnList )
{
ExportSourceFileHeaderRecursive ( AllClasses , DependOn , VisitedSet , bCheckDependenciesOnly ) ;
2014-03-14 14:13:41 -04:00
}
// Export class header.
2015-01-20 09:33:54 -05:00
if ( bIsCorrectHeader & & ! bCheckDependenciesOnly )
2014-03-14 14:13:41 -04:00
{
// Mark class as exported.
2015-01-20 09:33:54 -05:00
GExportedSourceFiles . Add ( SourceFile ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
ExportClassesFromSourceFileWrapper ( * SourceFile ) ;
2014-03-14 14:13:41 -04:00
}
// We're done visiting this Class.
2015-01-20 09:33:54 -05:00
VisitedSet . Remove ( SourceFile ) ;
2014-03-14 14:13:41 -04:00
}
/**
* Returns a string in the format CLASS_Something | CLASS_Something which represents all class flags that are set for the specified
* class which need to be exported as part of the DECLARE_CLASS macro
*/
FString FNativeClassHeaderGenerator : : GetClassFlagExportText ( UClass * Class )
{
FString StaticClassFlagText ;
check ( Class ) ;
if ( Class - > HasAnyClassFlags ( CLASS_Transient ) )
{
StaticClassFlagText + = TEXT ( " | CLASS_Transient " ) ;
}
if ( Class - > HasAnyClassFlags ( CLASS_DefaultConfig ) )
{
StaticClassFlagText + = TEXT ( " | CLASS_DefaultConfig " ) ;
}
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
if ( Class - > HasAnyClassFlags ( CLASS_GlobalUserConfig ) )
{
StaticClassFlagText + = TEXT ( " | CLASS_GlobalUserConfig " ) ;
}
2014-03-14 14:13:41 -04:00
if ( Class - > HasAnyClassFlags ( CLASS_Config ) )
{
StaticClassFlagText + = TEXT ( " | CLASS_Config " ) ;
}
if ( Class - > HasAnyClassFlags ( CLASS_Interface ) )
{
StaticClassFlagText + = TEXT ( " | CLASS_Interface " ) ;
}
if ( Class - > HasAnyClassFlags ( CLASS_Deprecated ) )
{
StaticClassFlagText + = TEXT ( " | CLASS_Deprecated " ) ;
}
return StaticClassFlagText ;
}
/**
* Exports the header text for the list of enums specified
*
* @ param Enums the enums to export
*/
void FNativeClassHeaderGenerator : : ExportEnums ( const TArray < UEnum * > & Enums )
{
// Enum definitions.
for ( int32 EnumIdx = Enums . Num ( ) - 1 ; EnumIdx > = 0 ; EnumIdx - - )
{
UEnum * Enum = Enums [ EnumIdx ] ;
// Export FOREACH macro
EnumForeachText . Logf ( TEXT ( " #define FOREACH_ENUM_%s(op) " ) , * Enum - > GetName ( ) . ToUpper ( ) ) ;
for ( int32 i = 0 ; i < Enum - > NumEnums ( ) - 1 ; i + + )
{
2015-05-26 03:36:08 -04:00
const FString QualifiedEnumValue = Enum - > GetNameByIndex ( i ) . ToString ( ) ;
2015-09-21 07:53:49 -04:00
EnumForeachText . Logf ( TEXT ( " \\ \r \n \t op(%s) " ) , * QualifiedEnumValue ) ;
2014-03-14 14:13:41 -04:00
}
EnumForeachText . Logf ( TEXT ( " \r \n " ) ) ;
}
}
2015-03-17 05:19:11 -04:00
// Exports the header text for the list of structs specified (GENERATED_BODY impls)
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
void FNativeClassHeaderGenerator : : ExportGeneratedStructBodyMacros ( FUnrealSourceFile & SourceFile , const TArray < UScriptStruct * > & NativeStructs )
2014-03-14 14:13:41 -04:00
{
// reverse the order.
for ( int32 i = NativeStructs . Num ( ) - 1 ; i > = 0 ; - - i )
{
UScriptStruct * Struct = NativeStructs [ i ] ;
2015-09-08 09:23:57 -04:00
const bool bIsDynamic = FClass : : IsDynamic ( Struct ) ;
2016-02-26 16:58:26 -05:00
const FString ActualStructName = FNativeClassHeaderGenerator : : GetOverriddenName ( Struct ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3151653)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2975891 on 2016/05/12 by Gil.Gribb
merged in new async stuff from dev-rendering.
Change 2976695 on 2016/05/13 by Gil.Gribb
updated precache list
Change 2977030 on 2016/05/13 by Gil.Gribb
Added time slicing to CreateAsyncPackagesFromQueue, radically reduced the frequency of "precache trimming" and changed a few things in the test rig and logging
Change 2977090 on 2016/05/13 by Gil.Gribb
Fixed module manager threading and added cmd line param to force async loading thread.
Change 2977292 on 2016/05/13 by Gil.Gribb
check for thread safety in looking at asset registry
Change 2977296 on 2016/05/13 by Gil.Gribb
removed some super-expensive check()s from precacher
Change 2978368 on 2016/05/16 by Gil.Gribb
Move several exposive bools inside of the basic tests inside of FLinkerLoad::Preload, saves a fraction of second.
Change 2978414 on 2016/05/16 by Gil.Gribb
Added support and testing for unmounting pak files to the pak precacher.
Change 2978446 on 2016/05/16 by Gil.Gribb
Allow linker listing in non-shipping builds
Change 2978550 on 2016/05/16 by Gil.Gribb
Allowed some linker spew in non-shipping builds (instead of debug builds). Some tweak to help track down the music.uasset leak.
Change 2979952 on 2016/05/17 by Robert.Manuszewski
Merging //UE4/Dev-Core @ 2979938 to Dev-UE-30519-LoadTimes
Change 2984927 on 2016/05/20 by Gil.Gribb
fix a few bugs with an mcp repro
Change 2984951 on 2016/05/20 by Gil.Gribb
fixed issues with USE_NEW_ASYNC_IO = 0
Change 2985296 on 2016/05/20 by Gil.Gribb
Fixed several bugs with the MCP boot test
Change 2987956 on 2016/05/24 by Robert.Manuszewski
Fixing leaked linkers created by blocking load requests during async loading.
Change 2987959 on 2016/05/24 by Joe.Conley
Enable load timings in block loading also (in addition to async loading).
Change 3017713 on 2016/06/17 by Robert.Manuszewski
Removing GUseSeekFreeLoading.
Change 3017722 on 2016/06/17 by Robert.Manuszewski
Renaming LOAD_SeekFree flag to LOAD_Async to better reflect its current purpose.
Change 3017833 on 2016/06/17 by Robert.Manuszewski
Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes)
Change 3017840 on 2016/06/17 by Robert.Manuszewski
Re-doing Dev-Core changes to Delegates 2/2
Change 3022872 on 2016/06/22 by Gil.Gribb
reorder memory trim and deleting loaders
Change 3059218 on 2016/07/21 by Robert.Manuszewski
Fixing compilation errors - adding missing load time tracker stats.
Change 3064508 on 2016/07/26 by Robert.Manuszewski
Removing blocking loading path in cooked builds. LoadPackage will now use the async path.
Change 3066312 on 2016/07/27 by Gil.Gribb
Event driven loader, first pass
Change 3066785 on 2016/07/27 by Gil.Gribb
Removed check...searching forward for export fusion can release a node
Change 3068118 on 2016/07/28 by Gil.Gribb
critical bug fixes for the event driven loader
Change 3068333 on 2016/07/28 by Gil.Gribb
correctly handle the case where a file is rejected after loading the summary
Change 3069618 on 2016/07/28 by Robert.Manuszewski
Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes)
Change 3069901 on 2016/07/29 by Robert.Manuszewski
Fixing an hang when loading QA-Blueprints level
Change 3070171 on 2016/07/29 by Gil.Gribb
fixed CDO cyclic dependencies
Change 3075288 on 2016/08/03 by Gil.Gribb
misc fixes to the event driven loader
Change 3077332 on 2016/08/04 by Robert.Manuszewski
Fixing checkSlow asserts caused by new loading code not being flagged as IsInAsyncLoadThread() and CreateSynchEvent deprecation warning.
Change 3078113 on 2016/08/04 by Gil.Gribb
implemented "nicks rule" and undid some previous material and world hacks needed without it.
Change 3079480 on 2016/08/05 by Gil.Gribb
fixes and tweaks on event driven loader
Change 3080135 on 2016/08/07 by Gil.Gribb
misc fixes for event driven loader, now with reasonable memory
Change 3083722 on 2016/08/10 by Robert.Manuszewski
Fixing hangs when async loading packages.
Change 3091747 on 2016/08/17 by Gil.Gribb
Fix all hitches in streaming load that were regressions.
Change 3093258 on 2016/08/18 by Gil.Gribb
Fix bug that caused an assert when packages fail to load for certain reasons (like loading an uncooked file).
Change 3095719 on 2016/08/20 by Gil.Gribb
reenable async loading thread and cleanup and bug fixes
Change 3096350 on 2016/08/22 by Gil.Gribb
tweak task priorities a bit to minimize precaching memory
Change 3096355 on 2016/08/22 by Gil.Gribb
add support for precaching for "loose files" in the generic async layer.
Change 3098091 on 2016/08/23 by Gil.Gribb
Split header into a separate file and disabled a bad optimization in the bulk data.
Change 3099783 on 2016/08/24 by Gil.Gribb
rework dependency graph to be much, much faster. About half done.
Change 3100995 on 2016/08/25 by Gil.Gribb
fixed bugs with streaming texture from .uexp and cook time check that should have been runtime only
Change 3101369 on 2016/08/25 by Gil.Gribb
fixed bug with blueprints in the new loader.
Change 3102793 on 2016/08/26 by Gil.Gribb
PS4 - fixed small block memcpy to actually be inline
Change 3103785 on 2016/08/27 by Gil.Gribb
fixed case bug with pak order. devirtualized flinkerload::serialize, made sure -fileopenlog is not heavily skewed
Change 3104884 on 2016/08/29 by Gil.Gribb
fixed a BP bug and tweaked the -fileopenlog behavior to do leaf assets DFS
Change 3105266 on 2016/08/29 by Ben.Zeigler
Editor build compilation fix
Change 3105774 on 2016/08/30 by Gil.Gribb
add checks to locate cases where we try to use something that isn't loaded yet
Change 3107794 on 2016/08/31 by Gil.Gribb
fixed abug with BP's not loading the parent CDO soon enough
Change 3114278 on 2016/09/06 by Gil.Gribb
looping loads for paragon load test
Change 3114311 on 2016/09/06 by Ben.Zeigler
Fix linux compile
Change 3114350 on 2016/09/06 by Ben.Zeigler
Linux supports fast unaligned int reads
Change 3116169 on 2016/09/07 by Ben.Zeigler
Force enable separate bulk data cooking when using split cooked files, end-of-exp-file doesn't make sense with the new cook scheme and will crash at runtime
Change 3116538 on 2016/09/07 by Gil.Gribb
add dependencies for CDO subobjects
Change 3116596 on 2016/09/07 by Ben.Zeigler
Change crash to warning when trying to load an import to a missing native class, can happen with editor only classes.
Change 3116855 on 2016/09/07 by Ben.Zeigler
Move cook dialog down a bit so I can cook without constant dialogs popping up
Change 3117452 on 2016/09/08 by Robert.Manuszewski
Fixing hang when suspending async loading with the async loading thread enabled.
Change 3119255 on 2016/09/09 by Robert.Manuszewski
Removing texture allocations from PackageFileSummary as they were not used by anything.
Change 3119303 on 2016/09/09 by Gil.Gribb
Fixed font issue by making all all bulk data either inline or in a ubulk. Added support for compressed packages.
Change 3120324 on 2016/09/09 by Ben.Zeigler
Fix Cook warnings. Skip transient and client/server only objects when adding dependencies, and mark ShapeComponent BodySetups as properly transient.
Change 3121960 on 2016/09/12 by Ben.Zeigler
Add RandomizeLoadOrder CVar to randomize the package serial number it uses for sorting async loads
Change 3122635 on 2016/09/13 by Gil.Gribb
reworked searching disk warning and minor change to the background tasks used for decompression
Change 3122743 on 2016/09/13 by Gil.Gribb
added some checks around memory accounting
Change 3123395 on 2016/09/13 by Ben.Zeigler
Enable MallocBinned2 by default on cooked windows builds, similar to how PS4 works.
Disabled thread pool cache clearing on windows, the threading function it was using is very slow on windows specifically
Change 3124748 on 2016/09/14 by Gil.Gribb
Store template in import/export table and refer to it for each export to avoid calling GetArchetypeFromRequiredInfo. Minor fix for some NeedLoadForCLient etc stuff on landscape and CDOs. Fix texture streamer minmips stuff.
Change 3125153 on 2016/09/14 by Gil.Gribb
don't put transient objects in the import map
Change 3126668 on 2016/09/15 by Gil.Gribb
Fix critical bug with imports not waiting for the corresponding export to serialize. Fixed paragon test rig to run longer looping by flushing the renderer. Made random mode more random.
Change 3126755 on 2016/09/15 by Gil.Gribb
ooops, test rig fix
Change 3127408 on 2016/09/15 by Ben.Zeigler
Back out changelist 3123395, restoring windows memory to 4.13 setup
Change 3127409 on 2016/09/15 by Ben.Zeigler
Remove Memory trim from FlushAsyncLoading, because it gets called much more often in new flow and is slow on some platforms
Change 3127948 on 2016/09/16 by Gil.Gribb
Added a check() on any attempt to serialize a pointer to something that hasn't been created yet. This will help us find missing dependencies. There is an exception to this related to CDOs.
Change 3128094 on 2016/09/16 by Robert.Manuszewski
Fixing exports referenced by weak object pointers not being added to the preload dependency list of of the exports that depend on them.
+ Moved weak object pointer serialization to FArchive operator << to be able to override its behavior when cooking.
Change 3128148 on 2016/09/16 by Robert.Manuszewski
Gil's mod to how we detect exports with missing dependencies
Change 3129052 on 2016/09/16 by Ben.Zeigler
Add Missing Serialize helpers for WeakObjectPtrs, fixes crash with replicating weak objects
Change 3129053 on 2016/09/16 by Ben.Zeigler
Fake integrate CL #3123581 from Dev-Framework, to correctly handle detecting components as editor only even when they have collision. Fixes crashes with blueprint editor only components that depend on native templates
Change 3129630 on 2016/09/17 by Gil.Gribb
better logging for missing dependencies and properly ifdef'd the CDO primitive comp hack
Change 3130178 on 2016/09/19 by Robert.Manuszewski
Use the correct macro (COOK_FOR_EVENT_DRIVEN_LOAD instead of USE_NEW_ASYNC_IO) for SavePackage changes from CL #3128094
Change 3130224 on 2016/09/19 by Robert.Manuszewski
Compile error fix
Change 3130391 on 2016/09/19 by Gil.Gribb
Add cook time fatal errors, and undid a previous change we don't seem to need relating to editor only CDOs
Change 3130484 on 2016/09/19 by Gil.Gribb
fixed botched GetArchetypeFromRequiredInfo
Change 3131966 on 2016/09/20 by Robert.Manuszewski
Making the new event driven loader disabled by default. It's now also configurable via project settings (under Streaming Settings -> Event Driven Loader Enabled).
Enabled the event driven loader for a few internal projects.
Change 3132035 on 2016/09/20 by Gil.Gribb
fix dynamic switch on new loader
Change 3132041 on 2016/09/20 by Robert.Manuszewski
Fix for packages not being saved to disk when cooking with event driven loader disabled.
Change 3132195 on 2016/09/20 by Robert.Manuszewski
Enabling the event driven loader for Zen
Change 3133870 on 2016/09/21 by Graeme.Thornton
Config files now enable the event driven loader with the correct cvar name
Change 3135812 on 2016/09/22 by Gil.Gribb
fixed some bugs with GC during streaming
Change 3136102 on 2016/09/22 by Robert.Manuszewski
Release GC lock when FlushingAsyncLoading when running GC.
Change 3136633 on 2016/09/22 by Gil.Gribb
fix bug with linkers finsihing before other things linked their imports
Change 3138002 on 2016/09/23 by Robert.Manuszewski
Added an assert that will prevent content cooked for the event driven loader to be loaded by game builds that have the EDL disabled.
Change 3138012 on 2016/09/23 by Gil.Gribb
Improved the fix to prevent packages from finishing before external imports have linked. Async load object libraries.
Change 3138031 on 2016/09/23 by Gil.Gribb
do not preload obj libs in editor
Change 3139176 on 2016/09/24 by Gil.Gribb
fixed another bug with an attempt to call GetArchetypeFromRequiredInfo
Change 3139459 on 2016/09/26 by Robert.Manuszewski
Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes)
Change 3139668 on 2016/09/26 by Gil.Gribb
change some checks to errors on bad bulk data loads
Change 3141127 on 2016/09/27 by Robert.Manuszewski
Preventing linkers from being detached too early when async loading.
Change 3141129 on 2016/09/27 by Robert.Manuszewski
Releasing GC Lock before calling post GC callbacks to allow StaticFindObject use in these callbacks
Change 3142048 on 2016/09/27 by Robert.Manuszewski
Changing async loading code to not close DelayedLinkerClosePackages linkers until the async package that triggered their creation has finished loading.
Change 3143132 on 2016/09/28 by Gil.Gribb
fixed text render comp, which has some editor only issues. Fixes a runtime crash and adds a cooktime warning.
Change 3143198 on 2016/09/28 by Gil.Gribb
fixed it so that bogus loads of bulk data are warned but do not crash
Change 3143287 on 2016/09/28 by Robert.Manuszewski
UBT will now invalidate its makefiles if ini files are newer than the makefile (ini files may contains global build settings).
+ Android toolchain will add hashed command line values to the action reposnse filenames to actually allow it to detect compiler command line changes when detecting actions to execute
Change 3143344 on 2016/09/28 by Robert.Manuszewski
Make UAT pass the project filename to UBT when build non-code projects so that UBT can parse all ini files.
Change 3143865 on 2016/09/28 by Gil.Gribb
iffy fix for the net load assert in paragon, plus a few checks and one bit of code removed that should never be hit in the EDL, but makes no sense
Change 3144683 on 2016/09/29 by Graeme.Thornton
Minor refactor of pak file non-filename stuff
- Don't check for file existing before running through the security delegate
- Default behaviour when using new IO is to reject uasset/umap/ubulk/uexp files immediately. Can be disabled by setting EXCLUDE_NONPAK_UE_EXTENSIONS to 0 in project .build.cs
Change 3144745 on 2016/09/29 by Graeme.Thornton
Orion non-pak file whitelisting is enabled for all cooked game only builds now, rather than just clients
Change 3144780 on 2016/09/29 by Gil.Gribb
use poison proxy on non-test/shipping builds
Change 3144819 on 2016/09/29 by Gil.Gribb
added a few asserts and added an improved fix for the net crash
Change 3145414 on 2016/09/29 by Gil.Gribb
fixed android assert....not sure why I need that block of code.
Change 3146502 on 2016/09/30 by Robert.Manuszewski
Fix for GPU hang from MarcusW
Change 3146774 on 2016/09/30 by Robert.Manuszewski
Fixing a crash when constantly streaming levels in and out caused by keeping references to objects (levels) that were requested to be streamed out.
- Removed FAsyncObjectsReferencer. References will now be owned by FAsyncPackage
- UGCObjectReferencer is now more thread safe
Change 3148008 on 2016/10/01 by Gil.Gribb
add additional error for attempting to create an object from a class that needs to be loaded
Change 3148009 on 2016/10/01 by Gil.Gribb
fix very old threading bug whereby the ASL and GT would attempt to use the same static array
Change 3148222 on 2016/10/02 by Robert.Manuszewski
Fix for an assert when an FGCObject is removed when purging UObjects
Change 3148229 on 2016/10/02 by Gil.Gribb
disable assert that was crashing paragon ps4
Change 3148409 on 2016/10/03 by Robert.Manuszewski
Allow another case for removing FGCObjects while in GC.
Change 3148416 on 2016/10/03 by Robert.Manuszewski
Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes)
Change 3149566 on 2016/10/03 by Ben.Zeigler
#jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point
Change 3149913 on 2016/10/04 by Gil.Gribb
better broadcast
Change 2889560 on 2016/03/02 by Steven.Hutton
Packages for scheduled tasks.
Change 2889566 on 2016/03/02 by Steven.Hutton
Remaining nuget packages for hangfire, unity and scheduled tasks.
Change 2980458 on 2016/05/17 by Chris.Wood
Attempt to fix crash report submission problems from CRP to CR website
[UE-30257] - Crashreports are sometimes missing file attachments
Passing crash GUID so that website can easily check for duplicates in future
Increased request timeout for AddCrash to be longer than website database timeout
Logging retries for future visibility
CRP v.1.1.6
Change 3047870 on 2016/07/13 by Steven.Hutton
Updated CRW to entity framework with repository models. #rb none
Change 3126265 on 2016/09/15 by Steve.Robb
Fix for TCString::Strspn.
Change 3126266 on 2016/09/15 by Steve.Robb
Alternative fix for GitHub 2698: Fix one bug : Parsing command "Enable True" is invalid.
#jira UE-34670
Change 3126268 on 2016/09/15 by Steve.Robb
UWorld can no longer be extended by users.
UHT now handles final class declarations.
#jira UE-35708
Change 3126273 on 2016/09/15 by Steve.Robb
A further attempt to catch uninitialized pointers supplied to the GC.
#jira UE-34361
Change 3130042 on 2016/09/19 by Steve.Robb
Super for USTRUCTs.
Suggested here: https://udn.unrealengine.com/questions/310461/automatically-typedef-super-for-ustructs.html
Change 3131861 on 2016/09/20 by Steven.Hutton
Reconciling work for view engine changes #rb none
Change 3131862 on 2016/09/20 by Steve.Robb
Removal of THasOperatorEquals and THasOperatorNotEquals from Platform.h, which should have happened as part of CL# 3045963.
Change 3131863 on 2016/09/20 by Steven.Hutton
Adding packages #rb none
Change 3131869 on 2016/09/20 by Steve.Robb
Improved error message for enum classes with a missing base:
Error: Missing base specifier for enum class 'EMyEnum' - did you mean ': uint8'?
Change 3132046 on 2016/09/20 by Graeme.Thornton
Fix for cvar thread access assert in FLandscapeComponentGrassData serialization function
- This function can be called from the async thread so access CVarGrassDiscardDataOnLoad with GetValueOnAnyThread() rather than GetValueOnGameThread()
Change 3133201 on 2016/09/20 by Ben.Zeigler
Reorganize WindowsPlatformMemory and MacPlatformMemory to work like LinuxPlatformMemory where there is an enum to select the allocator, and move some of it up to GenericPlatformMemory
Add command line options to select malloc at runtime for Windows and Linux, I don't know how Mac options work
Improve the performance of BroadcastSlow_OnlyUseForSpecialPurposes on windows, but there are cases where it occaisionally stalls for a few seconds waiting for the flush
Add MallocBinned2 as an option for mac, linux, and windows, but default to off due to some threading issues
Change 3133722 on 2016/09/21 by Graeme.Thornton
Cooker forces a shader compilation flush when it detects that it has passed the max memory budget
Change 3133756 on 2016/09/21 by Steve.Robb
Refactor of TrimPrecedingAndTrailing to avoid a call to FString::Mid with a negative count, which is now illegal.
#jira UE-36163
Change 3134182 on 2016/09/21 by Steve.Robb
GitHub #1986: Don't show warnings and erros in console twice with UCommandlet::LogToConsole == true
#jira UE-25915
Change 3134306 on 2016/09/21 by Ben.Zeigler
Fix it so FMallocBinned2::Trim skips task threads on desktop platforms, they are too slow and don't allocate much memory
Enable MallocBinned2 as default binned malloc on Windows
Remove the -Run command line check as it was removed from the old version as well
Change 3135569 on 2016/09/22 by Graeme.Thornton
Don't create material resources if we are in a build that can never render
- Saves a few MB of memory
Change 3135652 on 2016/09/22 by Steve.Robb
New async-loading-thread-safe IsA implementation.
#jira UECORE-298
Change 3135692 on 2016/09/22 by Steven.Hutton
Minor bug fixes to view pages #rb none
Change 3135990 on 2016/09/22 by Robert.Manuszewski
Adding ENGINE_API to FStripDataFlags sp that it can be used outside of the Engine module.
Change 3136020 on 2016/09/22 by Steve.Robb
Display a meaningful error and shutdown if Core modules fail to load.
https://udn.unrealengine.com/questions/312063/mac-unrealheadertool-failing-randomly.html
Change 3136107 on 2016/09/22 by Chris.Wood
Added S3 file upload to output stage of Crash Report Process (v.1.1.26)
[UE-35991] - Crash Report Process to write crash files to S3
Also adds OOM alerts to CRP.
Also disk space alerts changed to 5% free space and repeat once every 30 minutes instead of 10 minutes.
Change 3137562 on 2016/09/23 by Steve.Robb
TUniquePtr<T[]> support.
Change 3138030 on 2016/09/23 by Steve.Robb
Virtual UProperty functions moved out of headers into .cpp files to ease iteration.
Change 3140381 on 2016/09/26 by Chris.Wood
Disabled uploads via CRRs while leaving services switched on to avoid crashes in some clients.
[UETOOL-1005] - Turn off CrashReportReceivers
Change 3141150 on 2016/09/27 by Steve.Robb
Invoke support for TFunction.
Change 3141151 on 2016/09/27 by Steve.Robb
UBoolProperty now supports hashing and is therefore usable as a TSet element or TMap key.
FText is now prevented from being a TSet element or TMap key.
UTextProperty::GetCPPTypeForwardDeclaration implementation moved to the .cpp file.
#jira UE-36051
#jira UE-36053
Change 3141440 on 2016/09/27 by Chris.Wood
Removed legacy queues and unnecessary duplication checks from Crash Report Process (v1.2.0)
[UE-36246] - CRP scalability: Simplify CRP inputs to DataRouter/S3 only
Change 3142999 on 2016/09/28 by Chris.Wood
Added dedicated PS4 crash queue to Crash Report Process (v1.2.1)
Change 3144831 on 2016/09/29 by Steve.Robb
InternalPrecache now flags the archive as in-error so that it can be checked by a caller, rather than popping up a dialog box and asserting.
#jira https://jira.it.epicgames.net/browse/OPP-6036
Change 3145184 on 2016/09/29 by Robert.Manuszewski
FScopedCreateImportCounter will now always store the current linker and restore the previous one when it exits.
Change 3148432 on 2016/10/03 by Robert.Manuszewski
Thread safety fixes for the async log writer + made the async log writer flush its archive more often.
Change 3148661 on 2016/10/03 by Graeme.Thornton
Fixing merge of IsNonPakFilenameAllowed()
- Removed directory search stuff... we pass everything to the delegate now anyway
Change 3149669 on 2016/10/03 by Ben.Zeigler
Lower verbosity of warnings from deleting native properties. These cases do not cause any problems and are not fixable without resaving the content after it has started warning. I checked Jira history and neither of these warnings has ever found a real bug, but has caused a lot of content to be resaved unnecessarily.
Change 3149670 on 2016/10/03 by Ben.Zeigler
Merge CL #3149566 from Dev-LoadTimes
#jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point
Change 3149835 on 2016/10/04 by Graeme.Thornton
Thread safety fix for SkyLightComponent
- Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled)
Change 3149836 on 2016/10/04 by Graeme.Thornton
Thread safety fix for ReflectionCaptureComponent
- Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled)
Change 3149959 on 2016/10/04 by Robert.Manuszewski
Allow import packages to be missing if they're on the KnownMissingPackages list
Change 3150023 on 2016/10/04 by Steven.Hutton
Updating jira strings. #rb none
Change 3150050 on 2016/10/04 by Steve.Robb
MakeShared now returns a TSharedRef (which is implicitly convertible to TSharedPtr) rather than a TSharedPtr (which is not implicitly convertible to TSharedRef), for ease of use and because MakeShared can't return a null pointer anyway.
Change 3150110 on 2016/10/04 by Robert.Manuszewski
Allow UGCObjectReferencer::AddObjects to happen during BeginDestry and FinishDestroy. It's fine as long as we're not adding new objects during reachability analysis.
Change 3150120 on 2016/10/04 by Gil.Gribb
fix task graph/binned2 broadcast for PS4
Change 3150195 on 2016/10/04 by Robert.Manuszewski
Fixing WEX crash
#jira UE-36801
Change 3150212 on 2016/10/04 by Robert.Manuszewski
Increasing compiler memory limit to fix CIS errors
#jira UE-36795
Change 3151583 on 2016/10/05 by Robert.Manuszewski
Temporarily switching to the old IsA path
#jria UE-36803
Change 3151642 on 2016/10/05 by Steve.Robb
Dependency fixes for GameFeedback modules.
Change 3151653 on 2016/10/05 by Robert.Manuszewski
Maybe fix for crash on the Mac
#jira UE-36846
[CL 3152539 by Robert Manuszewski in Main branch]
2016-10-05 16:51:01 -04:00
UStruct * BaseStruct = Struct - > GetSuperStruct ( ) ;
2014-03-14 14:13:41 -04:00
// Export struct.
if ( Struct - > StructFlags & STRUCT_Native )
{
check ( Struct - > StructMacroDeclaredLineNumber ! = INDEX_NONE ) ;
2015-01-20 09:33:54 -05:00
const FString FriendApiString = GetAPIString ( ) ;
2014-03-14 14:13:41 -04:00
const FString StaticConstructionString = GetSingletonName ( Struct ) ;
FString RequiredAPI ;
if ( ! ( Struct - > StructFlags & STRUCT_RequiredAPI ) )
{
RequiredAPI = FriendApiString ;
}
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
const TCHAR * StructNameCPP = NameLookupCPP . GetNameCPP ( Struct ) ;
2015-09-21 07:53:49 -04:00
const FString FriendLine = FString : : Printf ( TEXT ( " \t friend %sclass UScriptStruct* %s; \r \n " ) , * FriendApiString , * StaticConstructionString ) ;
const FString StaticClassLine = FString : : Printf ( TEXT ( " \t %sstatic class UScriptStruct* StaticStruct(); \r \n " ) , * RequiredAPI ) ;
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
const FString PrivatePropertiesOffset = PrivatePropertiesOffsetGetters ( Struct , StructNameCPP ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3151653)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2975891 on 2016/05/12 by Gil.Gribb
merged in new async stuff from dev-rendering.
Change 2976695 on 2016/05/13 by Gil.Gribb
updated precache list
Change 2977030 on 2016/05/13 by Gil.Gribb
Added time slicing to CreateAsyncPackagesFromQueue, radically reduced the frequency of "precache trimming" and changed a few things in the test rig and logging
Change 2977090 on 2016/05/13 by Gil.Gribb
Fixed module manager threading and added cmd line param to force async loading thread.
Change 2977292 on 2016/05/13 by Gil.Gribb
check for thread safety in looking at asset registry
Change 2977296 on 2016/05/13 by Gil.Gribb
removed some super-expensive check()s from precacher
Change 2978368 on 2016/05/16 by Gil.Gribb
Move several exposive bools inside of the basic tests inside of FLinkerLoad::Preload, saves a fraction of second.
Change 2978414 on 2016/05/16 by Gil.Gribb
Added support and testing for unmounting pak files to the pak precacher.
Change 2978446 on 2016/05/16 by Gil.Gribb
Allow linker listing in non-shipping builds
Change 2978550 on 2016/05/16 by Gil.Gribb
Allowed some linker spew in non-shipping builds (instead of debug builds). Some tweak to help track down the music.uasset leak.
Change 2979952 on 2016/05/17 by Robert.Manuszewski
Merging //UE4/Dev-Core @ 2979938 to Dev-UE-30519-LoadTimes
Change 2984927 on 2016/05/20 by Gil.Gribb
fix a few bugs with an mcp repro
Change 2984951 on 2016/05/20 by Gil.Gribb
fixed issues with USE_NEW_ASYNC_IO = 0
Change 2985296 on 2016/05/20 by Gil.Gribb
Fixed several bugs with the MCP boot test
Change 2987956 on 2016/05/24 by Robert.Manuszewski
Fixing leaked linkers created by blocking load requests during async loading.
Change 2987959 on 2016/05/24 by Joe.Conley
Enable load timings in block loading also (in addition to async loading).
Change 3017713 on 2016/06/17 by Robert.Manuszewski
Removing GUseSeekFreeLoading.
Change 3017722 on 2016/06/17 by Robert.Manuszewski
Renaming LOAD_SeekFree flag to LOAD_Async to better reflect its current purpose.
Change 3017833 on 2016/06/17 by Robert.Manuszewski
Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes)
Change 3017840 on 2016/06/17 by Robert.Manuszewski
Re-doing Dev-Core changes to Delegates 2/2
Change 3022872 on 2016/06/22 by Gil.Gribb
reorder memory trim and deleting loaders
Change 3059218 on 2016/07/21 by Robert.Manuszewski
Fixing compilation errors - adding missing load time tracker stats.
Change 3064508 on 2016/07/26 by Robert.Manuszewski
Removing blocking loading path in cooked builds. LoadPackage will now use the async path.
Change 3066312 on 2016/07/27 by Gil.Gribb
Event driven loader, first pass
Change 3066785 on 2016/07/27 by Gil.Gribb
Removed check...searching forward for export fusion can release a node
Change 3068118 on 2016/07/28 by Gil.Gribb
critical bug fixes for the event driven loader
Change 3068333 on 2016/07/28 by Gil.Gribb
correctly handle the case where a file is rejected after loading the summary
Change 3069618 on 2016/07/28 by Robert.Manuszewski
Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes)
Change 3069901 on 2016/07/29 by Robert.Manuszewski
Fixing an hang when loading QA-Blueprints level
Change 3070171 on 2016/07/29 by Gil.Gribb
fixed CDO cyclic dependencies
Change 3075288 on 2016/08/03 by Gil.Gribb
misc fixes to the event driven loader
Change 3077332 on 2016/08/04 by Robert.Manuszewski
Fixing checkSlow asserts caused by new loading code not being flagged as IsInAsyncLoadThread() and CreateSynchEvent deprecation warning.
Change 3078113 on 2016/08/04 by Gil.Gribb
implemented "nicks rule" and undid some previous material and world hacks needed without it.
Change 3079480 on 2016/08/05 by Gil.Gribb
fixes and tweaks on event driven loader
Change 3080135 on 2016/08/07 by Gil.Gribb
misc fixes for event driven loader, now with reasonable memory
Change 3083722 on 2016/08/10 by Robert.Manuszewski
Fixing hangs when async loading packages.
Change 3091747 on 2016/08/17 by Gil.Gribb
Fix all hitches in streaming load that were regressions.
Change 3093258 on 2016/08/18 by Gil.Gribb
Fix bug that caused an assert when packages fail to load for certain reasons (like loading an uncooked file).
Change 3095719 on 2016/08/20 by Gil.Gribb
reenable async loading thread and cleanup and bug fixes
Change 3096350 on 2016/08/22 by Gil.Gribb
tweak task priorities a bit to minimize precaching memory
Change 3096355 on 2016/08/22 by Gil.Gribb
add support for precaching for "loose files" in the generic async layer.
Change 3098091 on 2016/08/23 by Gil.Gribb
Split header into a separate file and disabled a bad optimization in the bulk data.
Change 3099783 on 2016/08/24 by Gil.Gribb
rework dependency graph to be much, much faster. About half done.
Change 3100995 on 2016/08/25 by Gil.Gribb
fixed bugs with streaming texture from .uexp and cook time check that should have been runtime only
Change 3101369 on 2016/08/25 by Gil.Gribb
fixed bug with blueprints in the new loader.
Change 3102793 on 2016/08/26 by Gil.Gribb
PS4 - fixed small block memcpy to actually be inline
Change 3103785 on 2016/08/27 by Gil.Gribb
fixed case bug with pak order. devirtualized flinkerload::serialize, made sure -fileopenlog is not heavily skewed
Change 3104884 on 2016/08/29 by Gil.Gribb
fixed a BP bug and tweaked the -fileopenlog behavior to do leaf assets DFS
Change 3105266 on 2016/08/29 by Ben.Zeigler
Editor build compilation fix
Change 3105774 on 2016/08/30 by Gil.Gribb
add checks to locate cases where we try to use something that isn't loaded yet
Change 3107794 on 2016/08/31 by Gil.Gribb
fixed abug with BP's not loading the parent CDO soon enough
Change 3114278 on 2016/09/06 by Gil.Gribb
looping loads for paragon load test
Change 3114311 on 2016/09/06 by Ben.Zeigler
Fix linux compile
Change 3114350 on 2016/09/06 by Ben.Zeigler
Linux supports fast unaligned int reads
Change 3116169 on 2016/09/07 by Ben.Zeigler
Force enable separate bulk data cooking when using split cooked files, end-of-exp-file doesn't make sense with the new cook scheme and will crash at runtime
Change 3116538 on 2016/09/07 by Gil.Gribb
add dependencies for CDO subobjects
Change 3116596 on 2016/09/07 by Ben.Zeigler
Change crash to warning when trying to load an import to a missing native class, can happen with editor only classes.
Change 3116855 on 2016/09/07 by Ben.Zeigler
Move cook dialog down a bit so I can cook without constant dialogs popping up
Change 3117452 on 2016/09/08 by Robert.Manuszewski
Fixing hang when suspending async loading with the async loading thread enabled.
Change 3119255 on 2016/09/09 by Robert.Manuszewski
Removing texture allocations from PackageFileSummary as they were not used by anything.
Change 3119303 on 2016/09/09 by Gil.Gribb
Fixed font issue by making all all bulk data either inline or in a ubulk. Added support for compressed packages.
Change 3120324 on 2016/09/09 by Ben.Zeigler
Fix Cook warnings. Skip transient and client/server only objects when adding dependencies, and mark ShapeComponent BodySetups as properly transient.
Change 3121960 on 2016/09/12 by Ben.Zeigler
Add RandomizeLoadOrder CVar to randomize the package serial number it uses for sorting async loads
Change 3122635 on 2016/09/13 by Gil.Gribb
reworked searching disk warning and minor change to the background tasks used for decompression
Change 3122743 on 2016/09/13 by Gil.Gribb
added some checks around memory accounting
Change 3123395 on 2016/09/13 by Ben.Zeigler
Enable MallocBinned2 by default on cooked windows builds, similar to how PS4 works.
Disabled thread pool cache clearing on windows, the threading function it was using is very slow on windows specifically
Change 3124748 on 2016/09/14 by Gil.Gribb
Store template in import/export table and refer to it for each export to avoid calling GetArchetypeFromRequiredInfo. Minor fix for some NeedLoadForCLient etc stuff on landscape and CDOs. Fix texture streamer minmips stuff.
Change 3125153 on 2016/09/14 by Gil.Gribb
don't put transient objects in the import map
Change 3126668 on 2016/09/15 by Gil.Gribb
Fix critical bug with imports not waiting for the corresponding export to serialize. Fixed paragon test rig to run longer looping by flushing the renderer. Made random mode more random.
Change 3126755 on 2016/09/15 by Gil.Gribb
ooops, test rig fix
Change 3127408 on 2016/09/15 by Ben.Zeigler
Back out changelist 3123395, restoring windows memory to 4.13 setup
Change 3127409 on 2016/09/15 by Ben.Zeigler
Remove Memory trim from FlushAsyncLoading, because it gets called much more often in new flow and is slow on some platforms
Change 3127948 on 2016/09/16 by Gil.Gribb
Added a check() on any attempt to serialize a pointer to something that hasn't been created yet. This will help us find missing dependencies. There is an exception to this related to CDOs.
Change 3128094 on 2016/09/16 by Robert.Manuszewski
Fixing exports referenced by weak object pointers not being added to the preload dependency list of of the exports that depend on them.
+ Moved weak object pointer serialization to FArchive operator << to be able to override its behavior when cooking.
Change 3128148 on 2016/09/16 by Robert.Manuszewski
Gil's mod to how we detect exports with missing dependencies
Change 3129052 on 2016/09/16 by Ben.Zeigler
Add Missing Serialize helpers for WeakObjectPtrs, fixes crash with replicating weak objects
Change 3129053 on 2016/09/16 by Ben.Zeigler
Fake integrate CL #3123581 from Dev-Framework, to correctly handle detecting components as editor only even when they have collision. Fixes crashes with blueprint editor only components that depend on native templates
Change 3129630 on 2016/09/17 by Gil.Gribb
better logging for missing dependencies and properly ifdef'd the CDO primitive comp hack
Change 3130178 on 2016/09/19 by Robert.Manuszewski
Use the correct macro (COOK_FOR_EVENT_DRIVEN_LOAD instead of USE_NEW_ASYNC_IO) for SavePackage changes from CL #3128094
Change 3130224 on 2016/09/19 by Robert.Manuszewski
Compile error fix
Change 3130391 on 2016/09/19 by Gil.Gribb
Add cook time fatal errors, and undid a previous change we don't seem to need relating to editor only CDOs
Change 3130484 on 2016/09/19 by Gil.Gribb
fixed botched GetArchetypeFromRequiredInfo
Change 3131966 on 2016/09/20 by Robert.Manuszewski
Making the new event driven loader disabled by default. It's now also configurable via project settings (under Streaming Settings -> Event Driven Loader Enabled).
Enabled the event driven loader for a few internal projects.
Change 3132035 on 2016/09/20 by Gil.Gribb
fix dynamic switch on new loader
Change 3132041 on 2016/09/20 by Robert.Manuszewski
Fix for packages not being saved to disk when cooking with event driven loader disabled.
Change 3132195 on 2016/09/20 by Robert.Manuszewski
Enabling the event driven loader for Zen
Change 3133870 on 2016/09/21 by Graeme.Thornton
Config files now enable the event driven loader with the correct cvar name
Change 3135812 on 2016/09/22 by Gil.Gribb
fixed some bugs with GC during streaming
Change 3136102 on 2016/09/22 by Robert.Manuszewski
Release GC lock when FlushingAsyncLoading when running GC.
Change 3136633 on 2016/09/22 by Gil.Gribb
fix bug with linkers finsihing before other things linked their imports
Change 3138002 on 2016/09/23 by Robert.Manuszewski
Added an assert that will prevent content cooked for the event driven loader to be loaded by game builds that have the EDL disabled.
Change 3138012 on 2016/09/23 by Gil.Gribb
Improved the fix to prevent packages from finishing before external imports have linked. Async load object libraries.
Change 3138031 on 2016/09/23 by Gil.Gribb
do not preload obj libs in editor
Change 3139176 on 2016/09/24 by Gil.Gribb
fixed another bug with an attempt to call GetArchetypeFromRequiredInfo
Change 3139459 on 2016/09/26 by Robert.Manuszewski
Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes)
Change 3139668 on 2016/09/26 by Gil.Gribb
change some checks to errors on bad bulk data loads
Change 3141127 on 2016/09/27 by Robert.Manuszewski
Preventing linkers from being detached too early when async loading.
Change 3141129 on 2016/09/27 by Robert.Manuszewski
Releasing GC Lock before calling post GC callbacks to allow StaticFindObject use in these callbacks
Change 3142048 on 2016/09/27 by Robert.Manuszewski
Changing async loading code to not close DelayedLinkerClosePackages linkers until the async package that triggered their creation has finished loading.
Change 3143132 on 2016/09/28 by Gil.Gribb
fixed text render comp, which has some editor only issues. Fixes a runtime crash and adds a cooktime warning.
Change 3143198 on 2016/09/28 by Gil.Gribb
fixed it so that bogus loads of bulk data are warned but do not crash
Change 3143287 on 2016/09/28 by Robert.Manuszewski
UBT will now invalidate its makefiles if ini files are newer than the makefile (ini files may contains global build settings).
+ Android toolchain will add hashed command line values to the action reposnse filenames to actually allow it to detect compiler command line changes when detecting actions to execute
Change 3143344 on 2016/09/28 by Robert.Manuszewski
Make UAT pass the project filename to UBT when build non-code projects so that UBT can parse all ini files.
Change 3143865 on 2016/09/28 by Gil.Gribb
iffy fix for the net load assert in paragon, plus a few checks and one bit of code removed that should never be hit in the EDL, but makes no sense
Change 3144683 on 2016/09/29 by Graeme.Thornton
Minor refactor of pak file non-filename stuff
- Don't check for file existing before running through the security delegate
- Default behaviour when using new IO is to reject uasset/umap/ubulk/uexp files immediately. Can be disabled by setting EXCLUDE_NONPAK_UE_EXTENSIONS to 0 in project .build.cs
Change 3144745 on 2016/09/29 by Graeme.Thornton
Orion non-pak file whitelisting is enabled for all cooked game only builds now, rather than just clients
Change 3144780 on 2016/09/29 by Gil.Gribb
use poison proxy on non-test/shipping builds
Change 3144819 on 2016/09/29 by Gil.Gribb
added a few asserts and added an improved fix for the net crash
Change 3145414 on 2016/09/29 by Gil.Gribb
fixed android assert....not sure why I need that block of code.
Change 3146502 on 2016/09/30 by Robert.Manuszewski
Fix for GPU hang from MarcusW
Change 3146774 on 2016/09/30 by Robert.Manuszewski
Fixing a crash when constantly streaming levels in and out caused by keeping references to objects (levels) that were requested to be streamed out.
- Removed FAsyncObjectsReferencer. References will now be owned by FAsyncPackage
- UGCObjectReferencer is now more thread safe
Change 3148008 on 2016/10/01 by Gil.Gribb
add additional error for attempting to create an object from a class that needs to be loaded
Change 3148009 on 2016/10/01 by Gil.Gribb
fix very old threading bug whereby the ASL and GT would attempt to use the same static array
Change 3148222 on 2016/10/02 by Robert.Manuszewski
Fix for an assert when an FGCObject is removed when purging UObjects
Change 3148229 on 2016/10/02 by Gil.Gribb
disable assert that was crashing paragon ps4
Change 3148409 on 2016/10/03 by Robert.Manuszewski
Allow another case for removing FGCObjects while in GC.
Change 3148416 on 2016/10/03 by Robert.Manuszewski
Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes)
Change 3149566 on 2016/10/03 by Ben.Zeigler
#jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point
Change 3149913 on 2016/10/04 by Gil.Gribb
better broadcast
Change 2889560 on 2016/03/02 by Steven.Hutton
Packages for scheduled tasks.
Change 2889566 on 2016/03/02 by Steven.Hutton
Remaining nuget packages for hangfire, unity and scheduled tasks.
Change 2980458 on 2016/05/17 by Chris.Wood
Attempt to fix crash report submission problems from CRP to CR website
[UE-30257] - Crashreports are sometimes missing file attachments
Passing crash GUID so that website can easily check for duplicates in future
Increased request timeout for AddCrash to be longer than website database timeout
Logging retries for future visibility
CRP v.1.1.6
Change 3047870 on 2016/07/13 by Steven.Hutton
Updated CRW to entity framework with repository models. #rb none
Change 3126265 on 2016/09/15 by Steve.Robb
Fix for TCString::Strspn.
Change 3126266 on 2016/09/15 by Steve.Robb
Alternative fix for GitHub 2698: Fix one bug : Parsing command "Enable True" is invalid.
#jira UE-34670
Change 3126268 on 2016/09/15 by Steve.Robb
UWorld can no longer be extended by users.
UHT now handles final class declarations.
#jira UE-35708
Change 3126273 on 2016/09/15 by Steve.Robb
A further attempt to catch uninitialized pointers supplied to the GC.
#jira UE-34361
Change 3130042 on 2016/09/19 by Steve.Robb
Super for USTRUCTs.
Suggested here: https://udn.unrealengine.com/questions/310461/automatically-typedef-super-for-ustructs.html
Change 3131861 on 2016/09/20 by Steven.Hutton
Reconciling work for view engine changes #rb none
Change 3131862 on 2016/09/20 by Steve.Robb
Removal of THasOperatorEquals and THasOperatorNotEquals from Platform.h, which should have happened as part of CL# 3045963.
Change 3131863 on 2016/09/20 by Steven.Hutton
Adding packages #rb none
Change 3131869 on 2016/09/20 by Steve.Robb
Improved error message for enum classes with a missing base:
Error: Missing base specifier for enum class 'EMyEnum' - did you mean ': uint8'?
Change 3132046 on 2016/09/20 by Graeme.Thornton
Fix for cvar thread access assert in FLandscapeComponentGrassData serialization function
- This function can be called from the async thread so access CVarGrassDiscardDataOnLoad with GetValueOnAnyThread() rather than GetValueOnGameThread()
Change 3133201 on 2016/09/20 by Ben.Zeigler
Reorganize WindowsPlatformMemory and MacPlatformMemory to work like LinuxPlatformMemory where there is an enum to select the allocator, and move some of it up to GenericPlatformMemory
Add command line options to select malloc at runtime for Windows and Linux, I don't know how Mac options work
Improve the performance of BroadcastSlow_OnlyUseForSpecialPurposes on windows, but there are cases where it occaisionally stalls for a few seconds waiting for the flush
Add MallocBinned2 as an option for mac, linux, and windows, but default to off due to some threading issues
Change 3133722 on 2016/09/21 by Graeme.Thornton
Cooker forces a shader compilation flush when it detects that it has passed the max memory budget
Change 3133756 on 2016/09/21 by Steve.Robb
Refactor of TrimPrecedingAndTrailing to avoid a call to FString::Mid with a negative count, which is now illegal.
#jira UE-36163
Change 3134182 on 2016/09/21 by Steve.Robb
GitHub #1986: Don't show warnings and erros in console twice with UCommandlet::LogToConsole == true
#jira UE-25915
Change 3134306 on 2016/09/21 by Ben.Zeigler
Fix it so FMallocBinned2::Trim skips task threads on desktop platforms, they are too slow and don't allocate much memory
Enable MallocBinned2 as default binned malloc on Windows
Remove the -Run command line check as it was removed from the old version as well
Change 3135569 on 2016/09/22 by Graeme.Thornton
Don't create material resources if we are in a build that can never render
- Saves a few MB of memory
Change 3135652 on 2016/09/22 by Steve.Robb
New async-loading-thread-safe IsA implementation.
#jira UECORE-298
Change 3135692 on 2016/09/22 by Steven.Hutton
Minor bug fixes to view pages #rb none
Change 3135990 on 2016/09/22 by Robert.Manuszewski
Adding ENGINE_API to FStripDataFlags sp that it can be used outside of the Engine module.
Change 3136020 on 2016/09/22 by Steve.Robb
Display a meaningful error and shutdown if Core modules fail to load.
https://udn.unrealengine.com/questions/312063/mac-unrealheadertool-failing-randomly.html
Change 3136107 on 2016/09/22 by Chris.Wood
Added S3 file upload to output stage of Crash Report Process (v.1.1.26)
[UE-35991] - Crash Report Process to write crash files to S3
Also adds OOM alerts to CRP.
Also disk space alerts changed to 5% free space and repeat once every 30 minutes instead of 10 minutes.
Change 3137562 on 2016/09/23 by Steve.Robb
TUniquePtr<T[]> support.
Change 3138030 on 2016/09/23 by Steve.Robb
Virtual UProperty functions moved out of headers into .cpp files to ease iteration.
Change 3140381 on 2016/09/26 by Chris.Wood
Disabled uploads via CRRs while leaving services switched on to avoid crashes in some clients.
[UETOOL-1005] - Turn off CrashReportReceivers
Change 3141150 on 2016/09/27 by Steve.Robb
Invoke support for TFunction.
Change 3141151 on 2016/09/27 by Steve.Robb
UBoolProperty now supports hashing and is therefore usable as a TSet element or TMap key.
FText is now prevented from being a TSet element or TMap key.
UTextProperty::GetCPPTypeForwardDeclaration implementation moved to the .cpp file.
#jira UE-36051
#jira UE-36053
Change 3141440 on 2016/09/27 by Chris.Wood
Removed legacy queues and unnecessary duplication checks from Crash Report Process (v1.2.0)
[UE-36246] - CRP scalability: Simplify CRP inputs to DataRouter/S3 only
Change 3142999 on 2016/09/28 by Chris.Wood
Added dedicated PS4 crash queue to Crash Report Process (v1.2.1)
Change 3144831 on 2016/09/29 by Steve.Robb
InternalPrecache now flags the archive as in-error so that it can be checked by a caller, rather than popping up a dialog box and asserting.
#jira https://jira.it.epicgames.net/browse/OPP-6036
Change 3145184 on 2016/09/29 by Robert.Manuszewski
FScopedCreateImportCounter will now always store the current linker and restore the previous one when it exits.
Change 3148432 on 2016/10/03 by Robert.Manuszewski
Thread safety fixes for the async log writer + made the async log writer flush its archive more often.
Change 3148661 on 2016/10/03 by Graeme.Thornton
Fixing merge of IsNonPakFilenameAllowed()
- Removed directory search stuff... we pass everything to the delegate now anyway
Change 3149669 on 2016/10/03 by Ben.Zeigler
Lower verbosity of warnings from deleting native properties. These cases do not cause any problems and are not fixable without resaving the content after it has started warning. I checked Jira history and neither of these warnings has ever found a real bug, but has caused a lot of content to be resaved unnecessarily.
Change 3149670 on 2016/10/03 by Ben.Zeigler
Merge CL #3149566 from Dev-LoadTimes
#jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point
Change 3149835 on 2016/10/04 by Graeme.Thornton
Thread safety fix for SkyLightComponent
- Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled)
Change 3149836 on 2016/10/04 by Graeme.Thornton
Thread safety fix for ReflectionCaptureComponent
- Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled)
Change 3149959 on 2016/10/04 by Robert.Manuszewski
Allow import packages to be missing if they're on the KnownMissingPackages list
Change 3150023 on 2016/10/04 by Steven.Hutton
Updating jira strings. #rb none
Change 3150050 on 2016/10/04 by Steve.Robb
MakeShared now returns a TSharedRef (which is implicitly convertible to TSharedPtr) rather than a TSharedPtr (which is not implicitly convertible to TSharedRef), for ease of use and because MakeShared can't return a null pointer anyway.
Change 3150110 on 2016/10/04 by Robert.Manuszewski
Allow UGCObjectReferencer::AddObjects to happen during BeginDestry and FinishDestroy. It's fine as long as we're not adding new objects during reachability analysis.
Change 3150120 on 2016/10/04 by Gil.Gribb
fix task graph/binned2 broadcast for PS4
Change 3150195 on 2016/10/04 by Robert.Manuszewski
Fixing WEX crash
#jira UE-36801
Change 3150212 on 2016/10/04 by Robert.Manuszewski
Increasing compiler memory limit to fix CIS errors
#jira UE-36795
Change 3151583 on 2016/10/05 by Robert.Manuszewski
Temporarily switching to the old IsA path
#jria UE-36803
Change 3151642 on 2016/10/05 by Steve.Robb
Dependency fixes for GameFeedback modules.
Change 3151653 on 2016/10/05 by Robert.Manuszewski
Maybe fix for crash on the Mac
#jira UE-36846
[CL 3152539 by Robert Manuszewski in Main branch]
2016-10-05 16:51:01 -04:00
const FString SuperTypedef = BaseStruct ? FString : : Printf ( TEXT ( " \t typedef %s Super; \r \n " ) , NameLookupCPP . GetNameCPP ( BaseStruct ) ) : FString ( ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3151653)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2975891 on 2016/05/12 by Gil.Gribb
merged in new async stuff from dev-rendering.
Change 2976695 on 2016/05/13 by Gil.Gribb
updated precache list
Change 2977030 on 2016/05/13 by Gil.Gribb
Added time slicing to CreateAsyncPackagesFromQueue, radically reduced the frequency of "precache trimming" and changed a few things in the test rig and logging
Change 2977090 on 2016/05/13 by Gil.Gribb
Fixed module manager threading and added cmd line param to force async loading thread.
Change 2977292 on 2016/05/13 by Gil.Gribb
check for thread safety in looking at asset registry
Change 2977296 on 2016/05/13 by Gil.Gribb
removed some super-expensive check()s from precacher
Change 2978368 on 2016/05/16 by Gil.Gribb
Move several exposive bools inside of the basic tests inside of FLinkerLoad::Preload, saves a fraction of second.
Change 2978414 on 2016/05/16 by Gil.Gribb
Added support and testing for unmounting pak files to the pak precacher.
Change 2978446 on 2016/05/16 by Gil.Gribb
Allow linker listing in non-shipping builds
Change 2978550 on 2016/05/16 by Gil.Gribb
Allowed some linker spew in non-shipping builds (instead of debug builds). Some tweak to help track down the music.uasset leak.
Change 2979952 on 2016/05/17 by Robert.Manuszewski
Merging //UE4/Dev-Core @ 2979938 to Dev-UE-30519-LoadTimes
Change 2984927 on 2016/05/20 by Gil.Gribb
fix a few bugs with an mcp repro
Change 2984951 on 2016/05/20 by Gil.Gribb
fixed issues with USE_NEW_ASYNC_IO = 0
Change 2985296 on 2016/05/20 by Gil.Gribb
Fixed several bugs with the MCP boot test
Change 2987956 on 2016/05/24 by Robert.Manuszewski
Fixing leaked linkers created by blocking load requests during async loading.
Change 2987959 on 2016/05/24 by Joe.Conley
Enable load timings in block loading also (in addition to async loading).
Change 3017713 on 2016/06/17 by Robert.Manuszewski
Removing GUseSeekFreeLoading.
Change 3017722 on 2016/06/17 by Robert.Manuszewski
Renaming LOAD_SeekFree flag to LOAD_Async to better reflect its current purpose.
Change 3017833 on 2016/06/17 by Robert.Manuszewski
Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes)
Change 3017840 on 2016/06/17 by Robert.Manuszewski
Re-doing Dev-Core changes to Delegates 2/2
Change 3022872 on 2016/06/22 by Gil.Gribb
reorder memory trim and deleting loaders
Change 3059218 on 2016/07/21 by Robert.Manuszewski
Fixing compilation errors - adding missing load time tracker stats.
Change 3064508 on 2016/07/26 by Robert.Manuszewski
Removing blocking loading path in cooked builds. LoadPackage will now use the async path.
Change 3066312 on 2016/07/27 by Gil.Gribb
Event driven loader, first pass
Change 3066785 on 2016/07/27 by Gil.Gribb
Removed check...searching forward for export fusion can release a node
Change 3068118 on 2016/07/28 by Gil.Gribb
critical bug fixes for the event driven loader
Change 3068333 on 2016/07/28 by Gil.Gribb
correctly handle the case where a file is rejected after loading the summary
Change 3069618 on 2016/07/28 by Robert.Manuszewski
Merging //UE4/Dev-Core to Dev-UE-30519-LoadTimes (//Tasks/Dev-Core/Dev-UE-30519-LoadTimes)
Change 3069901 on 2016/07/29 by Robert.Manuszewski
Fixing an hang when loading QA-Blueprints level
Change 3070171 on 2016/07/29 by Gil.Gribb
fixed CDO cyclic dependencies
Change 3075288 on 2016/08/03 by Gil.Gribb
misc fixes to the event driven loader
Change 3077332 on 2016/08/04 by Robert.Manuszewski
Fixing checkSlow asserts caused by new loading code not being flagged as IsInAsyncLoadThread() and CreateSynchEvent deprecation warning.
Change 3078113 on 2016/08/04 by Gil.Gribb
implemented "nicks rule" and undid some previous material and world hacks needed without it.
Change 3079480 on 2016/08/05 by Gil.Gribb
fixes and tweaks on event driven loader
Change 3080135 on 2016/08/07 by Gil.Gribb
misc fixes for event driven loader, now with reasonable memory
Change 3083722 on 2016/08/10 by Robert.Manuszewski
Fixing hangs when async loading packages.
Change 3091747 on 2016/08/17 by Gil.Gribb
Fix all hitches in streaming load that were regressions.
Change 3093258 on 2016/08/18 by Gil.Gribb
Fix bug that caused an assert when packages fail to load for certain reasons (like loading an uncooked file).
Change 3095719 on 2016/08/20 by Gil.Gribb
reenable async loading thread and cleanup and bug fixes
Change 3096350 on 2016/08/22 by Gil.Gribb
tweak task priorities a bit to minimize precaching memory
Change 3096355 on 2016/08/22 by Gil.Gribb
add support for precaching for "loose files" in the generic async layer.
Change 3098091 on 2016/08/23 by Gil.Gribb
Split header into a separate file and disabled a bad optimization in the bulk data.
Change 3099783 on 2016/08/24 by Gil.Gribb
rework dependency graph to be much, much faster. About half done.
Change 3100995 on 2016/08/25 by Gil.Gribb
fixed bugs with streaming texture from .uexp and cook time check that should have been runtime only
Change 3101369 on 2016/08/25 by Gil.Gribb
fixed bug with blueprints in the new loader.
Change 3102793 on 2016/08/26 by Gil.Gribb
PS4 - fixed small block memcpy to actually be inline
Change 3103785 on 2016/08/27 by Gil.Gribb
fixed case bug with pak order. devirtualized flinkerload::serialize, made sure -fileopenlog is not heavily skewed
Change 3104884 on 2016/08/29 by Gil.Gribb
fixed a BP bug and tweaked the -fileopenlog behavior to do leaf assets DFS
Change 3105266 on 2016/08/29 by Ben.Zeigler
Editor build compilation fix
Change 3105774 on 2016/08/30 by Gil.Gribb
add checks to locate cases where we try to use something that isn't loaded yet
Change 3107794 on 2016/08/31 by Gil.Gribb
fixed abug with BP's not loading the parent CDO soon enough
Change 3114278 on 2016/09/06 by Gil.Gribb
looping loads for paragon load test
Change 3114311 on 2016/09/06 by Ben.Zeigler
Fix linux compile
Change 3114350 on 2016/09/06 by Ben.Zeigler
Linux supports fast unaligned int reads
Change 3116169 on 2016/09/07 by Ben.Zeigler
Force enable separate bulk data cooking when using split cooked files, end-of-exp-file doesn't make sense with the new cook scheme and will crash at runtime
Change 3116538 on 2016/09/07 by Gil.Gribb
add dependencies for CDO subobjects
Change 3116596 on 2016/09/07 by Ben.Zeigler
Change crash to warning when trying to load an import to a missing native class, can happen with editor only classes.
Change 3116855 on 2016/09/07 by Ben.Zeigler
Move cook dialog down a bit so I can cook without constant dialogs popping up
Change 3117452 on 2016/09/08 by Robert.Manuszewski
Fixing hang when suspending async loading with the async loading thread enabled.
Change 3119255 on 2016/09/09 by Robert.Manuszewski
Removing texture allocations from PackageFileSummary as they were not used by anything.
Change 3119303 on 2016/09/09 by Gil.Gribb
Fixed font issue by making all all bulk data either inline or in a ubulk. Added support for compressed packages.
Change 3120324 on 2016/09/09 by Ben.Zeigler
Fix Cook warnings. Skip transient and client/server only objects when adding dependencies, and mark ShapeComponent BodySetups as properly transient.
Change 3121960 on 2016/09/12 by Ben.Zeigler
Add RandomizeLoadOrder CVar to randomize the package serial number it uses for sorting async loads
Change 3122635 on 2016/09/13 by Gil.Gribb
reworked searching disk warning and minor change to the background tasks used for decompression
Change 3122743 on 2016/09/13 by Gil.Gribb
added some checks around memory accounting
Change 3123395 on 2016/09/13 by Ben.Zeigler
Enable MallocBinned2 by default on cooked windows builds, similar to how PS4 works.
Disabled thread pool cache clearing on windows, the threading function it was using is very slow on windows specifically
Change 3124748 on 2016/09/14 by Gil.Gribb
Store template in import/export table and refer to it for each export to avoid calling GetArchetypeFromRequiredInfo. Minor fix for some NeedLoadForCLient etc stuff on landscape and CDOs. Fix texture streamer minmips stuff.
Change 3125153 on 2016/09/14 by Gil.Gribb
don't put transient objects in the import map
Change 3126668 on 2016/09/15 by Gil.Gribb
Fix critical bug with imports not waiting for the corresponding export to serialize. Fixed paragon test rig to run longer looping by flushing the renderer. Made random mode more random.
Change 3126755 on 2016/09/15 by Gil.Gribb
ooops, test rig fix
Change 3127408 on 2016/09/15 by Ben.Zeigler
Back out changelist 3123395, restoring windows memory to 4.13 setup
Change 3127409 on 2016/09/15 by Ben.Zeigler
Remove Memory trim from FlushAsyncLoading, because it gets called much more often in new flow and is slow on some platforms
Change 3127948 on 2016/09/16 by Gil.Gribb
Added a check() on any attempt to serialize a pointer to something that hasn't been created yet. This will help us find missing dependencies. There is an exception to this related to CDOs.
Change 3128094 on 2016/09/16 by Robert.Manuszewski
Fixing exports referenced by weak object pointers not being added to the preload dependency list of of the exports that depend on them.
+ Moved weak object pointer serialization to FArchive operator << to be able to override its behavior when cooking.
Change 3128148 on 2016/09/16 by Robert.Manuszewski
Gil's mod to how we detect exports with missing dependencies
Change 3129052 on 2016/09/16 by Ben.Zeigler
Add Missing Serialize helpers for WeakObjectPtrs, fixes crash with replicating weak objects
Change 3129053 on 2016/09/16 by Ben.Zeigler
Fake integrate CL #3123581 from Dev-Framework, to correctly handle detecting components as editor only even when they have collision. Fixes crashes with blueprint editor only components that depend on native templates
Change 3129630 on 2016/09/17 by Gil.Gribb
better logging for missing dependencies and properly ifdef'd the CDO primitive comp hack
Change 3130178 on 2016/09/19 by Robert.Manuszewski
Use the correct macro (COOK_FOR_EVENT_DRIVEN_LOAD instead of USE_NEW_ASYNC_IO) for SavePackage changes from CL #3128094
Change 3130224 on 2016/09/19 by Robert.Manuszewski
Compile error fix
Change 3130391 on 2016/09/19 by Gil.Gribb
Add cook time fatal errors, and undid a previous change we don't seem to need relating to editor only CDOs
Change 3130484 on 2016/09/19 by Gil.Gribb
fixed botched GetArchetypeFromRequiredInfo
Change 3131966 on 2016/09/20 by Robert.Manuszewski
Making the new event driven loader disabled by default. It's now also configurable via project settings (under Streaming Settings -> Event Driven Loader Enabled).
Enabled the event driven loader for a few internal projects.
Change 3132035 on 2016/09/20 by Gil.Gribb
fix dynamic switch on new loader
Change 3132041 on 2016/09/20 by Robert.Manuszewski
Fix for packages not being saved to disk when cooking with event driven loader disabled.
Change 3132195 on 2016/09/20 by Robert.Manuszewski
Enabling the event driven loader for Zen
Change 3133870 on 2016/09/21 by Graeme.Thornton
Config files now enable the event driven loader with the correct cvar name
Change 3135812 on 2016/09/22 by Gil.Gribb
fixed some bugs with GC during streaming
Change 3136102 on 2016/09/22 by Robert.Manuszewski
Release GC lock when FlushingAsyncLoading when running GC.
Change 3136633 on 2016/09/22 by Gil.Gribb
fix bug with linkers finsihing before other things linked their imports
Change 3138002 on 2016/09/23 by Robert.Manuszewski
Added an assert that will prevent content cooked for the event driven loader to be loaded by game builds that have the EDL disabled.
Change 3138012 on 2016/09/23 by Gil.Gribb
Improved the fix to prevent packages from finishing before external imports have linked. Async load object libraries.
Change 3138031 on 2016/09/23 by Gil.Gribb
do not preload obj libs in editor
Change 3139176 on 2016/09/24 by Gil.Gribb
fixed another bug with an attempt to call GetArchetypeFromRequiredInfo
Change 3139459 on 2016/09/26 by Robert.Manuszewski
Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes)
Change 3139668 on 2016/09/26 by Gil.Gribb
change some checks to errors on bad bulk data loads
Change 3141127 on 2016/09/27 by Robert.Manuszewski
Preventing linkers from being detached too early when async loading.
Change 3141129 on 2016/09/27 by Robert.Manuszewski
Releasing GC Lock before calling post GC callbacks to allow StaticFindObject use in these callbacks
Change 3142048 on 2016/09/27 by Robert.Manuszewski
Changing async loading code to not close DelayedLinkerClosePackages linkers until the async package that triggered their creation has finished loading.
Change 3143132 on 2016/09/28 by Gil.Gribb
fixed text render comp, which has some editor only issues. Fixes a runtime crash and adds a cooktime warning.
Change 3143198 on 2016/09/28 by Gil.Gribb
fixed it so that bogus loads of bulk data are warned but do not crash
Change 3143287 on 2016/09/28 by Robert.Manuszewski
UBT will now invalidate its makefiles if ini files are newer than the makefile (ini files may contains global build settings).
+ Android toolchain will add hashed command line values to the action reposnse filenames to actually allow it to detect compiler command line changes when detecting actions to execute
Change 3143344 on 2016/09/28 by Robert.Manuszewski
Make UAT pass the project filename to UBT when build non-code projects so that UBT can parse all ini files.
Change 3143865 on 2016/09/28 by Gil.Gribb
iffy fix for the net load assert in paragon, plus a few checks and one bit of code removed that should never be hit in the EDL, but makes no sense
Change 3144683 on 2016/09/29 by Graeme.Thornton
Minor refactor of pak file non-filename stuff
- Don't check for file existing before running through the security delegate
- Default behaviour when using new IO is to reject uasset/umap/ubulk/uexp files immediately. Can be disabled by setting EXCLUDE_NONPAK_UE_EXTENSIONS to 0 in project .build.cs
Change 3144745 on 2016/09/29 by Graeme.Thornton
Orion non-pak file whitelisting is enabled for all cooked game only builds now, rather than just clients
Change 3144780 on 2016/09/29 by Gil.Gribb
use poison proxy on non-test/shipping builds
Change 3144819 on 2016/09/29 by Gil.Gribb
added a few asserts and added an improved fix for the net crash
Change 3145414 on 2016/09/29 by Gil.Gribb
fixed android assert....not sure why I need that block of code.
Change 3146502 on 2016/09/30 by Robert.Manuszewski
Fix for GPU hang from MarcusW
Change 3146774 on 2016/09/30 by Robert.Manuszewski
Fixing a crash when constantly streaming levels in and out caused by keeping references to objects (levels) that were requested to be streamed out.
- Removed FAsyncObjectsReferencer. References will now be owned by FAsyncPackage
- UGCObjectReferencer is now more thread safe
Change 3148008 on 2016/10/01 by Gil.Gribb
add additional error for attempting to create an object from a class that needs to be loaded
Change 3148009 on 2016/10/01 by Gil.Gribb
fix very old threading bug whereby the ASL and GT would attempt to use the same static array
Change 3148222 on 2016/10/02 by Robert.Manuszewski
Fix for an assert when an FGCObject is removed when purging UObjects
Change 3148229 on 2016/10/02 by Gil.Gribb
disable assert that was crashing paragon ps4
Change 3148409 on 2016/10/03 by Robert.Manuszewski
Allow another case for removing FGCObjects while in GC.
Change 3148416 on 2016/10/03 by Robert.Manuszewski
Merging //UE4/Release-4.13 to Dev-LoadTimes (//Tasks/UE4/Dev-LoadTimes)
Change 3149566 on 2016/10/03 by Ben.Zeigler
#jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point
Change 3149913 on 2016/10/04 by Gil.Gribb
better broadcast
Change 2889560 on 2016/03/02 by Steven.Hutton
Packages for scheduled tasks.
Change 2889566 on 2016/03/02 by Steven.Hutton
Remaining nuget packages for hangfire, unity and scheduled tasks.
Change 2980458 on 2016/05/17 by Chris.Wood
Attempt to fix crash report submission problems from CRP to CR website
[UE-30257] - Crashreports are sometimes missing file attachments
Passing crash GUID so that website can easily check for duplicates in future
Increased request timeout for AddCrash to be longer than website database timeout
Logging retries for future visibility
CRP v.1.1.6
Change 3047870 on 2016/07/13 by Steven.Hutton
Updated CRW to entity framework with repository models. #rb none
Change 3126265 on 2016/09/15 by Steve.Robb
Fix for TCString::Strspn.
Change 3126266 on 2016/09/15 by Steve.Robb
Alternative fix for GitHub 2698: Fix one bug : Parsing command "Enable True" is invalid.
#jira UE-34670
Change 3126268 on 2016/09/15 by Steve.Robb
UWorld can no longer be extended by users.
UHT now handles final class declarations.
#jira UE-35708
Change 3126273 on 2016/09/15 by Steve.Robb
A further attempt to catch uninitialized pointers supplied to the GC.
#jira UE-34361
Change 3130042 on 2016/09/19 by Steve.Robb
Super for USTRUCTs.
Suggested here: https://udn.unrealengine.com/questions/310461/automatically-typedef-super-for-ustructs.html
Change 3131861 on 2016/09/20 by Steven.Hutton
Reconciling work for view engine changes #rb none
Change 3131862 on 2016/09/20 by Steve.Robb
Removal of THasOperatorEquals and THasOperatorNotEquals from Platform.h, which should have happened as part of CL# 3045963.
Change 3131863 on 2016/09/20 by Steven.Hutton
Adding packages #rb none
Change 3131869 on 2016/09/20 by Steve.Robb
Improved error message for enum classes with a missing base:
Error: Missing base specifier for enum class 'EMyEnum' - did you mean ': uint8'?
Change 3132046 on 2016/09/20 by Graeme.Thornton
Fix for cvar thread access assert in FLandscapeComponentGrassData serialization function
- This function can be called from the async thread so access CVarGrassDiscardDataOnLoad with GetValueOnAnyThread() rather than GetValueOnGameThread()
Change 3133201 on 2016/09/20 by Ben.Zeigler
Reorganize WindowsPlatformMemory and MacPlatformMemory to work like LinuxPlatformMemory where there is an enum to select the allocator, and move some of it up to GenericPlatformMemory
Add command line options to select malloc at runtime for Windows and Linux, I don't know how Mac options work
Improve the performance of BroadcastSlow_OnlyUseForSpecialPurposes on windows, but there are cases where it occaisionally stalls for a few seconds waiting for the flush
Add MallocBinned2 as an option for mac, linux, and windows, but default to off due to some threading issues
Change 3133722 on 2016/09/21 by Graeme.Thornton
Cooker forces a shader compilation flush when it detects that it has passed the max memory budget
Change 3133756 on 2016/09/21 by Steve.Robb
Refactor of TrimPrecedingAndTrailing to avoid a call to FString::Mid with a negative count, which is now illegal.
#jira UE-36163
Change 3134182 on 2016/09/21 by Steve.Robb
GitHub #1986: Don't show warnings and erros in console twice with UCommandlet::LogToConsole == true
#jira UE-25915
Change 3134306 on 2016/09/21 by Ben.Zeigler
Fix it so FMallocBinned2::Trim skips task threads on desktop platforms, they are too slow and don't allocate much memory
Enable MallocBinned2 as default binned malloc on Windows
Remove the -Run command line check as it was removed from the old version as well
Change 3135569 on 2016/09/22 by Graeme.Thornton
Don't create material resources if we are in a build that can never render
- Saves a few MB of memory
Change 3135652 on 2016/09/22 by Steve.Robb
New async-loading-thread-safe IsA implementation.
#jira UECORE-298
Change 3135692 on 2016/09/22 by Steven.Hutton
Minor bug fixes to view pages #rb none
Change 3135990 on 2016/09/22 by Robert.Manuszewski
Adding ENGINE_API to FStripDataFlags sp that it can be used outside of the Engine module.
Change 3136020 on 2016/09/22 by Steve.Robb
Display a meaningful error and shutdown if Core modules fail to load.
https://udn.unrealengine.com/questions/312063/mac-unrealheadertool-failing-randomly.html
Change 3136107 on 2016/09/22 by Chris.Wood
Added S3 file upload to output stage of Crash Report Process (v.1.1.26)
[UE-35991] - Crash Report Process to write crash files to S3
Also adds OOM alerts to CRP.
Also disk space alerts changed to 5% free space and repeat once every 30 minutes instead of 10 minutes.
Change 3137562 on 2016/09/23 by Steve.Robb
TUniquePtr<T[]> support.
Change 3138030 on 2016/09/23 by Steve.Robb
Virtual UProperty functions moved out of headers into .cpp files to ease iteration.
Change 3140381 on 2016/09/26 by Chris.Wood
Disabled uploads via CRRs while leaving services switched on to avoid crashes in some clients.
[UETOOL-1005] - Turn off CrashReportReceivers
Change 3141150 on 2016/09/27 by Steve.Robb
Invoke support for TFunction.
Change 3141151 on 2016/09/27 by Steve.Robb
UBoolProperty now supports hashing and is therefore usable as a TSet element or TMap key.
FText is now prevented from being a TSet element or TMap key.
UTextProperty::GetCPPTypeForwardDeclaration implementation moved to the .cpp file.
#jira UE-36051
#jira UE-36053
Change 3141440 on 2016/09/27 by Chris.Wood
Removed legacy queues and unnecessary duplication checks from Crash Report Process (v1.2.0)
[UE-36246] - CRP scalability: Simplify CRP inputs to DataRouter/S3 only
Change 3142999 on 2016/09/28 by Chris.Wood
Added dedicated PS4 crash queue to Crash Report Process (v1.2.1)
Change 3144831 on 2016/09/29 by Steve.Robb
InternalPrecache now flags the archive as in-error so that it can be checked by a caller, rather than popping up a dialog box and asserting.
#jira https://jira.it.epicgames.net/browse/OPP-6036
Change 3145184 on 2016/09/29 by Robert.Manuszewski
FScopedCreateImportCounter will now always store the current linker and restore the previous one when it exits.
Change 3148432 on 2016/10/03 by Robert.Manuszewski
Thread safety fixes for the async log writer + made the async log writer flush its archive more often.
Change 3148661 on 2016/10/03 by Graeme.Thornton
Fixing merge of IsNonPakFilenameAllowed()
- Removed directory search stuff... we pass everything to the delegate now anyway
Change 3149669 on 2016/10/03 by Ben.Zeigler
Lower verbosity of warnings from deleting native properties. These cases do not cause any problems and are not fixable without resaving the content after it has started warning. I checked Jira history and neither of these warnings has ever found a real bug, but has caused a lot of content to be resaved unnecessarily.
Change 3149670 on 2016/10/03 by Ben.Zeigler
Merge CL #3149566 from Dev-LoadTimes
#jira UE-36664 Fix issue where objects loaded during async loading could be added to the wrong package's object list, if a time slice ended at the wrong point
Change 3149835 on 2016/10/04 by Graeme.Thornton
Thread safety fix for SkyLightComponent
- Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled)
Change 3149836 on 2016/10/04 by Graeme.Thornton
Thread safety fix for ReflectionCaptureComponent
- Add to global update list from PostLoad rather than PostInitProperties so that it happens on the game thread, and not the async loading thread (if enabled)
Change 3149959 on 2016/10/04 by Robert.Manuszewski
Allow import packages to be missing if they're on the KnownMissingPackages list
Change 3150023 on 2016/10/04 by Steven.Hutton
Updating jira strings. #rb none
Change 3150050 on 2016/10/04 by Steve.Robb
MakeShared now returns a TSharedRef (which is implicitly convertible to TSharedPtr) rather than a TSharedPtr (which is not implicitly convertible to TSharedRef), for ease of use and because MakeShared can't return a null pointer anyway.
Change 3150110 on 2016/10/04 by Robert.Manuszewski
Allow UGCObjectReferencer::AddObjects to happen during BeginDestry and FinishDestroy. It's fine as long as we're not adding new objects during reachability analysis.
Change 3150120 on 2016/10/04 by Gil.Gribb
fix task graph/binned2 broadcast for PS4
Change 3150195 on 2016/10/04 by Robert.Manuszewski
Fixing WEX crash
#jira UE-36801
Change 3150212 on 2016/10/04 by Robert.Manuszewski
Increasing compiler memory limit to fix CIS errors
#jira UE-36795
Change 3151583 on 2016/10/05 by Robert.Manuszewski
Temporarily switching to the old IsA path
#jria UE-36803
Change 3151642 on 2016/10/05 by Steve.Robb
Dependency fixes for GameFeedback modules.
Change 3151653 on 2016/10/05 by Robert.Manuszewski
Maybe fix for crash on the Mac
#jira UE-36846
[CL 3152539 by Robert Manuszewski in Main branch]
2016-10-05 16:51:01 -04:00
const FString CombinedLine = FriendLine + StaticClassLine + PrivatePropertiesOffset + SuperTypedef ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
const FString MacroName = SourceFile . GetGeneratedBodyMacroName ( Struct - > StructMacroDeclaredLineNumber ) ;
2014-03-14 14:13:41 -04:00
const FString Macroized = Macroize ( * MacroName , * CombinedLine ) ;
GeneratedHeaderText . Log ( * Macroized ) ;
2015-03-27 18:10:52 -04:00
FString SingletonName = StaticConstructionString . Replace ( TEXT ( " () " ) , TEXT ( " " ) , ESearchCase : : CaseSensitive ) ; // function address
2014-07-29 02:43:48 -04:00
FString GetCRCName = FString : : Printf ( TEXT ( " Get_%s_CRC " ) , * SingletonName ) ;
2015-09-08 09:23:57 -04:00
2014-07-29 02:43:48 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " class UScriptStruct* %s::StaticStruct() \r \n " ) , StructNameCPP ) ;
2014-03-14 14:13:41 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " { \r \n " ) ) ;
2015-09-08 09:23:57 -04:00
// UStructs can have UClass or UPackage outer (if declared in non-UClass headers).
FString OuterName ;
if ( Struct - > GetOuter ( ) - > IsA ( UStruct : : StaticClass ( ) ) )
{
OuterName = NameLookupCPP . GetNameCPP ( CastChecked < UStruct > ( Struct - > GetOuter ( ) ) ) ;
OuterName + = TEXT ( " ::StaticClass() " ) ;
}
2015-11-18 16:20:49 -05:00
else if ( ! bIsDynamic )
2015-09-08 09:23:57 -04:00
{
OuterName = GetPackageSingletonName ( CastChecked < UPackage > ( Struct - > GetOuter ( ) ) ) ;
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t extern %sclass UPackage* %s; \r \n " ) , * FriendApiString , * OuterName ) ;
2015-09-08 09:23:57 -04:00
}
2015-11-18 16:20:49 -05:00
else
{
OuterName = TEXT ( " StructPackage " ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t class UPackage* %s = FindOrConstructDynamicTypePackage(TEXT( \" %s \" )); \r \n " ) , * OuterName , * FClass : : GetTypePackageName ( Struct ) ) ;
}
2015-09-08 09:23:57 -04:00
if ( ! bIsDynamic )
{
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t static class UScriptStruct* Singleton = NULL; \r \n " ) ) ;
2015-09-08 09:23:57 -04:00
}
else
{
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t class UScriptStruct* Singleton = Cast<UScriptStruct>(StaticFindObjectFast(UScriptStruct::StaticClass(), %s, TEXT( \" %s \" ))); \r \n " ) ,
2016-02-26 16:58:26 -05:00
* OuterName , * ActualStructName ) ;
2015-09-08 09:23:57 -04:00
}
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t if (!Singleton) \r \n " ) ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t { \r \n " ) ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t \t extern %sclass UScriptStruct* %s; \r \n " ) , * FriendApiString , * StaticConstructionString ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t \t extern %suint32 %s(); \r \n " ) , * FriendApiString , * GetCRCName ) ;
2015-01-20 09:33:54 -05:00
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t Singleton = GetStaticStruct(%s, %s, TEXT( \" %s \" ), sizeof(%s), %s()); \r \n " ) ,
2016-02-26 16:58:26 -05:00
* SingletonName , * OuterName , * ActualStructName , StructNameCPP , * GetCRCName ) ;
2015-01-20 09:33:54 -05:00
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t } \r \n " ) ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t return Singleton; \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " } \r \n " ) ) ;
2015-09-08 09:23:57 -04:00
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
GeneratedPackageCPP . Logf ( TEXT ( " static FCompiledInDeferStruct Z_CompiledInDeferStruct_UScriptStruct_%s(%s::StaticStruct, TEXT( \" %s \" ), TEXT( \" %s \" ), %s, %s, %s); \r \n " ) ,
2016-02-26 16:58:26 -05:00
StructNameCPP , StructNameCPP , * Struct - > GetOutermost ( ) - > GetName ( ) , * ActualStructName ,
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
bIsDynamic ? TEXT ( " true " ) : TEXT ( " false " ) ,
bIsDynamic ? * AsTEXT ( FClass : : GetTypePackageName ( Struct ) ) : TEXT ( " nullptr " ) ,
bIsDynamic ? * AsTEXT ( FNativeClassHeaderGenerator : : GetOverriddenPathName ( Struct ) ) : TEXT ( " nullptr " ) ) ;
2014-03-14 14:13:41 -04:00
// Generate StaticRegisterNatives equivalent for structs without classes.
if ( ! Struct - > GetOuter ( ) - > IsA ( UStruct : : StaticClass ( ) ) )
{
const FString ShortPackageName = FPackageName : : GetShortName ( Struct - > GetOuter ( ) - > GetName ( ) ) ;
2014-07-29 02:43:48 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " static struct FScriptStruct_%s_StaticRegisterNatives%s \r \n " ) , * ShortPackageName , StructNameCPP ) ;
2014-03-14 14:13:41 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " { \r \n " ) ) ;
2014-07-29 02:43:48 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t FScriptStruct_%s_StaticRegisterNatives%s() \r \n " ) , * ShortPackageName , StructNameCPP ) ;
2014-03-14 14:13:41 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t { \r \n " ) ) ;
2016-02-26 16:58:26 -05:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t UScriptStruct::DeferCppStructOps(FName(TEXT( \" %s \" )),new UScriptStruct::TCppStructOps<%s>); \r \n " ) , * ActualStructName , StructNameCPP ) ;
2014-03-14 14:13:41 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t } \r \n " ) ) ;
2014-07-29 02:43:48 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " } ScriptStruct_%s_StaticRegisterNatives%s; \r \n " ) , * ShortPackageName , StructNameCPP ) ;
2014-03-14 14:13:41 -04:00
}
}
2015-01-20 09:33:54 -05:00
{
UScriptStruct * ScriptStruct = Struct ;
const FString SingletonName ( GetSingletonName ( ScriptStruct ) ) ;
2015-05-22 02:54:27 -04:00
GeneratedFunctionDeclarations . Log ( FTypeSingletonCache : : Get ( ScriptStruct ) . GetExternDecl ( ) ) ;
2015-01-20 09:33:54 -05:00
2015-03-27 18:10:52 -04:00
FUHTStringBuilder GeneratedStructRegisterFunctionText ;
2015-01-20 09:33:54 -05:00
2015-09-21 07:53:49 -04:00
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t UScriptStruct* %s \r \n " ) , * SingletonName ) ;
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t { \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
// if this is a no export struct, we will put a local struct here for offset determination
TArray < UScriptStruct * > Structs ;
FindNoExportStructs ( Structs , ScriptStruct ) ;
if ( Structs . Num ( ) )
{
TGuardValue < bool > Guard ( bIsExportingForOffsetDeterminationOnly , true ) ;
2015-03-27 18:10:52 -04:00
ExportMirrorsForNoexportStructs ( Structs , /*Indent=*/ 2 , GeneratedStructRegisterFunctionText ) ;
2015-01-20 09:33:54 -05:00
}
2015-09-30 05:26:51 -04:00
FString CRCFuncName = FString : : Printf ( TEXT ( " Get_%s_CRC " ) , * SingletonName . Replace ( TEXT ( " () " ) , TEXT ( " " ) , ESearchCase : : CaseSensitive ) ) ;
2015-01-20 09:33:54 -05:00
// Structs can either have a UClass or UPackage as outer (if delcared in non-UClass header).
if ( ScriptStruct - > GetOuter ( ) - > IsA ( UStruct : : StaticClass ( ) ) )
{
2015-11-18 16:20:49 -05:00
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t UStruct* Outer = %s; \r \n " ) , * GetSingletonName ( CastChecked < UStruct > ( ScriptStruct - > GetOuter ( ) ) ) ) ;
}
else if ( ! bIsDynamic )
{
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t UPackage* Outer = %s; \r \n " ) , * GetPackageSingletonName ( CastChecked < UPackage > ( ScriptStruct - > GetOuter ( ) ) ) ) ;
2015-01-20 09:33:54 -05:00
}
else
{
2015-11-18 16:20:49 -05:00
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t UPackage* Outer = FindOrConstructDynamicTypePackage(TEXT( \" %s \" )); \r \n " ) , * FClass : : GetTypePackageName ( ScriptStruct ) ) ;
2015-01-20 09:33:54 -05:00
}
2015-11-18 16:20:49 -05:00
2015-09-30 05:26:51 -04:00
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t extern uint32 %s(); \r \n " ) , * CRCFuncName ) ;
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
if ( ! bIsDynamic )
{
2016-02-26 16:58:26 -05:00
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t static UScriptStruct* ReturnStruct = FindExistingStructIfHotReloadOrDynamic(Outer, TEXT( \" %s \" ), sizeof(%s), %s(), false); \r \n " ) , * ActualStructName , NameLookupCPP . GetNameCPP ( Struct ) , * CRCFuncName ) ;
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
}
else
{
2016-02-26 16:58:26 -05:00
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t UScriptStruct* ReturnStruct = FindExistingStructIfHotReloadOrDynamic(Outer, TEXT( \" %s \" ), sizeof(%s), %s(), true); \r \n " ) , * ActualStructName , NameLookupCPP . GetNameCPP ( Struct ) , * CRCFuncName ) ;
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
}
2015-09-21 07:53:49 -04:00
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t if (!ReturnStruct) \r \n " ) ) ;
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t { \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
FString BaseStructString ( TEXT ( " NULL " ) ) ;
if ( BaseStruct )
{
CastChecked < UScriptStruct > ( BaseStruct ) ; // this better actually be a script struct
BaseStructString = GetSingletonName ( BaseStruct ) ;
}
FString CppStructOpsString ( TEXT ( " NULL " ) ) ;
FString ExplicitSizeString ;
FString ExplicitAlignmentString ;
if ( ( ScriptStruct - > StructFlags & STRUCT_Native ) ! = 0 )
{
//@todo .u we don't need the auto register versions of these (except for hotreload, which should be fixed)
CppStructOpsString = FString : : Printf ( TEXT ( " new UScriptStruct::TCppStructOps<%s> " ) , NameLookupCPP . GetNameCPP ( ScriptStruct ) ) ;
}
else
{
ExplicitSizeString = FString : : Printf ( TEXT ( " , sizeof(%s), ALIGNOF(%s) " ) , NameLookupCPP . GetNameCPP ( ScriptStruct ) , NameLookupCPP . GetNameCPP ( ScriptStruct ) ) ;
}
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
const TCHAR * UStructObjectFlags = bIsDynamic ? TEXT ( " RF_Public|RF_Transient " ) : TEXT ( " RF_Public|RF_Transient|RF_MarkAsNative " ) ;
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t \t ReturnStruct = new(EC_InternalUseOnlyConstructor, Outer, TEXT( \" %s \" ), %s) UScriptStruct(FObjectInitializer(), %s, %s, EStructFlags(0x%08X)%s); \r \n " ) ,
2016-02-26 16:58:26 -05:00
* ActualStructName ,
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
UStructObjectFlags ,
2015-01-20 09:33:54 -05:00
* BaseStructString ,
* CppStructOpsString ,
( uint32 ) ( ScriptStruct - > StructFlags & ~ STRUCT_ComputedFlags ) ,
* ExplicitSizeString
) ;
TheFlagAudit . Add ( ScriptStruct , TEXT ( " StructFlags " ) , ( uint64 ) ( ScriptStruct - > StructFlags & ~ STRUCT_ComputedFlags ) ) ;
TArray < UProperty * > Props ;
for ( TFieldIterator < UProperty > ItInner ( ScriptStruct , EFieldIteratorFlags : : ExcludeSuper ) ; ItInner ; + + ItInner )
{
Props . Add ( * ItInner ) ;
}
FString OuterString = FString ( TEXT ( " ReturnStruct " ) ) ;
2015-09-21 07:53:49 -04:00
FString Meta = GetMetaDataCodeForObject ( ScriptStruct , * OuterString , TEXT ( " \t \t \t " ) ) ;
OutputProperties ( Meta , GeneratedStructRegisterFunctionText , OuterString , Props , TEXT ( " \t \t \t " ) ) ;
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t \t ReturnStruct->StaticLink(); \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
if ( Meta . Len ( ) )
{
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " #if WITH_METADATA \r \n " ) ) ;
2015-09-21 07:53:49 -04:00
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t \t UMetaData* MetaData = ReturnStruct->GetOutermost()->GetMetaData(); \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
GeneratedStructRegisterFunctionText . Log ( * Meta ) ;
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " #endif \r \n " ) ) ;
}
2015-09-21 07:53:49 -04:00
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t } \r \n " ) ) ;
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t \t return ReturnStruct; \r \n " ) ) ;
GeneratedStructRegisterFunctionText . Logf ( TEXT ( " \t } \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
uint32 StructCrc = GenerateTextCRC ( * GeneratedStructRegisterFunctionText ) ;
GGeneratedCodeCRCs . Add ( ScriptStruct , StructCrc ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
UHTMakefile . AddGeneratedCodeCRC ( & SourceFile , ScriptStruct , StructCrc ) ;
2015-01-20 09:33:54 -05:00
auto & GeneratedFunctionText = GetGeneratedFunctionTextDevice ( ) ;
GeneratedFunctionText + = GeneratedStructRegisterFunctionText ;
2015-09-30 05:26:51 -04:00
GeneratedFunctionText . Logf ( TEXT ( " \t uint32 %s() { return %uU; } \r \n " ) , * CRCFuncName , StructCrc ) ;
2015-01-20 09:33:54 -05:00
2015-09-21 07:53:49 -04:00
//CallSingletons.Logf(TEXT("\t\t\t\tOuterClass->LinkChild(%s); // %u\r\n"), *SingletonName, StructCrc);
2015-01-20 09:33:54 -05:00
}
2014-03-14 14:13:41 -04:00
}
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
void FNativeClassHeaderGenerator : : ExportGeneratedEnumsInitCode ( FUnrealSourceFile & SourceFile , const TArray < UEnum * > & Enums )
2014-03-14 14:13:41 -04:00
{
// reverse the order.
for ( int32 i = Enums . Num ( ) - 1 ; i > = 0 ; - - i )
{
UEnum * Enum = Enums [ i ] ;
// Export Enum.
2015-01-20 09:33:54 -05:00
if ( ! Enum - > GetOuter ( ) - > IsA ( UPackage : : StaticClass ( ) ) )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
continue ;
}
2014-03-14 14:13:41 -04:00
2015-09-08 09:23:57 -04:00
const bool bIsDynamic = FClass : : IsDynamic ( Enum ) ;
2015-01-20 09:33:54 -05:00
const FString FriendApiString = GetAPIString ( ) ;
const FString StaticConstructionString = GetSingletonName ( Enum ) ;
2014-03-14 14:13:41 -04:00
2015-03-27 18:10:52 -04:00
FString SingletonName = StaticConstructionString . Replace ( TEXT ( " () " ) , TEXT ( " " ) , ESearchCase : : CaseSensitive ) ; // function address
2015-09-08 09:23:57 -04:00
FString PackageSingletonName = GetPackageSingletonName ( CastChecked < UPackage > ( Enum - > GetOuter ( ) ) ) ;
2015-11-18 16:20:49 -05:00
if ( ! bIsDynamic )
{
PackageSingletonName = GetPackageSingletonName ( CastChecked < UPackage > ( Enum - > GetOuter ( ) ) ) ;
}
else
{
PackageSingletonName = FClass : : GetTypePackageName ( Enum ) ;
}
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
GeneratedPackageCPP . Logf ( TEXT ( " static class UEnum* %s_StaticEnum() \r \n " ) , * Enum - > GetName ( ) ) ;
GeneratedPackageCPP . Logf ( TEXT ( " { \r \n " ) ) ;
2015-11-18 16:20:49 -05:00
2015-09-08 09:23:57 -04:00
if ( ! bIsDynamic )
{
2015-11-18 16:20:49 -05:00
GeneratedPackageCPP . Logf ( TEXT ( " \t extern %sclass UPackage* %s; \r \n " ) , * FriendApiString , * PackageSingletonName ) ;
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t static class UEnum* Singleton = NULL; \r \n " ) ) ;
2015-09-08 09:23:57 -04:00
}
else
{
2015-11-18 16:20:49 -05:00
GeneratedPackageCPP . Logf ( TEXT ( " \t class UPackage* EnumPackage = FindOrConstructDynamicTypePackage(TEXT( \" %s \" )); \r \n " ) , * PackageSingletonName ) ;
2016-05-20 16:22:44 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t class UEnum* Singleton = Cast<UEnum>(StaticFindObjectFast(UEnum::StaticClass(), EnumPackage, TEXT( \" %s \" ))); \r \n " ) , * FNativeClassHeaderGenerator : : GetOverriddenName ( Enum ) ) ;
2015-09-08 09:23:57 -04:00
}
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t if (!Singleton) \r \n " ) ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t { \r \n " ) ) ;
2015-11-18 16:20:49 -05:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t extern %sclass UEnum* %s; \r \n " ) , * FriendApiString , * StaticConstructionString ) ;
if ( ! bIsDynamic )
{
GeneratedPackageCPP . Logf ( TEXT ( " \t \t Singleton = GetStaticEnum(%s, %s, TEXT( \" %s \" )); \r \n " ) , * SingletonName , * PackageSingletonName , * Enum - > GetName ( ) ) ;
}
else
{
2016-05-20 16:22:44 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t \t Singleton = GetStaticEnum(%s, EnumPackage, TEXT( \" %s \" )); \r \n " ) , * SingletonName , * FNativeClassHeaderGenerator : : GetOverriddenName ( Enum ) ) ;
2015-11-18 16:20:49 -05:00
}
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
GeneratedPackageCPP . Logf ( TEXT ( " \t } \r \n " ) ) ;
GeneratedPackageCPP . Logf ( TEXT ( " \t return Singleton; \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
GeneratedPackageCPP . Logf ( TEXT ( " } \r \n " ) ) ;
2015-09-08 09:23:57 -04:00
2016-02-26 16:58:26 -05:00
const FString EnumNameCpp = Enum - > GetName ( ) ; //UserDefinedEnum should already have a valid cpp name.
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
GeneratedPackageCPP . Logf ( TEXT ( " static FCompiledInDeferEnum Z_CompiledInDeferEnum_UEnum_%s(%s_StaticEnum, TEXT( \" %s \" ), TEXT( \" %s \" ), %s, %s, %s); \r \n " ) ,
2016-02-26 16:58:26 -05:00
* EnumNameCpp , * EnumNameCpp , * Enum - > GetOutermost ( ) - > GetName ( ) , * FNativeClassHeaderGenerator : : GetOverriddenName ( Enum ) ,
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
bIsDynamic ? TEXT ( " true " ) : TEXT ( " false " ) ,
bIsDynamic ? * AsTEXT ( FClass : : GetTypePackageName ( Enum ) ) : TEXT ( " nullptr " ) ,
bIsDynamic ? * AsTEXT ( FNativeClassHeaderGenerator : : GetOverriddenPathName ( Enum ) ) : TEXT ( " nullptr " ) ) ;
2015-01-20 09:33:54 -05:00
{
2015-04-22 14:15:56 -04:00
const FString EnumSingletonName = GetSingletonName ( Enum ) ;
2015-05-22 02:54:27 -04:00
GeneratedFunctionDeclarations . Log ( FTypeSingletonCache : : Get ( Enum ) . GetExternDecl ( ) ) ;
2015-01-20 09:33:54 -05:00
2015-03-27 18:10:52 -04:00
FUHTStringBuilder GeneratedEnumRegisterFunctionText ;
2015-01-20 09:33:54 -05:00
2015-09-30 05:26:51 -04:00
FString CRCFuncName = FString : : Printf ( TEXT ( " Get_%s_CRC " ) , * SingletonName . Replace ( TEXT ( " () " ) , TEXT ( " " ) , ESearchCase : : CaseSensitive ) ) ;
2015-09-21 07:53:49 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t UEnum* %s \r \n " ) , * EnumSingletonName ) ;
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t { \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
// Enums can either have a UClass or UPackage as outer (if declared in non-UClass header).
if ( Enum - > GetOuter ( ) - > IsA ( UStruct : : StaticClass ( ) ) )
{
2015-09-21 07:53:49 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t UClass* Outer=%s; \r \n " ) , * GetSingletonName ( CastChecked < UStruct > ( Enum - > GetOuter ( ) ) ) ) ;
2015-01-20 09:33:54 -05:00
}
2015-11-18 16:20:49 -05:00
else if ( ! bIsDynamic )
2015-01-20 09:33:54 -05:00
{
2015-09-21 07:53:49 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t UPackage* Outer=%s; \r \n " ) , * GetPackageSingletonName ( CastChecked < UPackage > ( Enum - > GetOuter ( ) ) ) ) ;
2015-01-20 09:33:54 -05:00
}
2015-11-18 16:20:49 -05:00
else
{
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t UPackage* Outer = FindOrConstructDynamicTypePackage(TEXT( \" %s \" )); \r \n " ) , * PackageSingletonName ) ;
}
2015-09-30 05:26:51 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t extern uint32 %s(); \r \n " ) , * CRCFuncName ) ;
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
if ( ! bIsDynamic )
{
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t static UEnum* ReturnEnum = FindExistingEnumIfHotReloadOrDynamic(Outer, TEXT( \" %s \" ), 0, %s(), false); \r \n " ) , * Enum - > GetName ( ) , * CRCFuncName ) ;
}
else
{
2016-05-20 16:22:44 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t UEnum* ReturnEnum = FindExistingEnumIfHotReloadOrDynamic(Outer, TEXT( \" %s \" ), 0, %s(), true); \r \n " ) , * FNativeClassHeaderGenerator : : GetOverriddenName ( Enum ) , * CRCFuncName ) ;
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
}
2015-09-21 07:53:49 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t if (!ReturnEnum) \r \n " ) ) ;
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t { \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
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
const TCHAR * UEnumObjectFlags = bIsDynamic ? TEXT ( " RF_Public|RF_Transient " ) : TEXT ( " RF_Public|RF_Transient|RF_MarkAsNative " ) ;
2016-05-20 16:22:44 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t \t ReturnEnum = new(EC_InternalUseOnlyConstructor, Outer, TEXT( \" %s \" ), %s) UEnum(FObjectInitializer()); \r \n " ) , * FNativeClassHeaderGenerator : : GetOverriddenName ( Enum ) , UEnumObjectFlags ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t \t TArray<TPair<FName, int64>> EnumNames; \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
for ( int32 Index = 0 ; Index < Enum - > NumEnums ( ) ; Index + + )
{
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
const TCHAR * OverridenNameMetaDatakey = TEXT ( " OverrideName " ) ;
const FString KeyName = Enum - > HasMetaData ( OverridenNameMetaDatakey , Index ) ? Enum - > GetMetaData ( OverridenNameMetaDatakey , Index ) : Enum - > GetNameByIndex ( Index ) . ToString ( ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t \t EnumNames.Emplace(TEXT( \" %s \" ), %lld); \r \n " ) , * KeyName , Enum - > GetValueByIndex ( Index ) ) ;
2015-01-20 09:33:54 -05:00
}
FString EnumTypeStr ;
switch ( Enum - > GetCppForm ( ) )
{
case UEnum : : ECppForm : : Regular : EnumTypeStr = TEXT ( " UEnum::ECppForm::Regular " ) ; break ;
case UEnum : : ECppForm : : Namespaced : EnumTypeStr = TEXT ( " UEnum::ECppForm::Namespaced " ) ; break ;
case UEnum : : ECppForm : : EnumClass : EnumTypeStr = TEXT ( " UEnum::ECppForm::EnumClass " ) ; break ;
}
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
const FString ParamAddMaxKeyIfMissing = FClass : : IsDynamic ( Enum ) ? TEXT ( " , false " ) : TEXT ( " " ) ;
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t \t ReturnEnum->SetEnums(EnumNames, %s%s); \r \n " ) , * EnumTypeStr , * ParamAddMaxKeyIfMissing ) ;
2015-09-21 07:53:49 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t \t ReturnEnum->CppType = TEXT( \" %s \" ); \r \n " ) , * Enum - > CppType ) ;
2015-01-20 09:33:54 -05:00
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
const FString & EnumDisplayNameFn = Enum - > GetMetaData ( TEXT ( " EnumDisplayNameFn " ) ) ;
if ( ! EnumDisplayNameFn . IsEmpty ( ) )
{
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t \t ReturnEnum->SetEnumDisplayNameFn(&%s); \r \n " ) , * EnumDisplayNameFn ) ;
}
2015-09-21 07:53:49 -04:00
FString Meta = GetMetaDataCodeForObject ( Enum , TEXT ( " ReturnEnum " ) , TEXT ( " \t \t \t " ) ) ;
2015-01-20 09:33:54 -05:00
if ( Meta . Len ( ) )
{
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " #if WITH_METADATA \r \n " ) ) ;
2015-09-21 07:53:49 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t \t UMetaData* MetaData = ReturnEnum->GetOutermost()->GetMetaData(); \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
GeneratedEnumRegisterFunctionText . Log ( * Meta ) ;
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " #endif \r \n " ) ) ;
}
2015-09-21 07:53:49 -04:00
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t } \r \n " ) ) ;
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t \t return ReturnEnum; \r \n " ) ) ;
GeneratedEnumRegisterFunctionText . Logf ( TEXT ( " \t } \r \n " ) ) ;
2015-01-20 09:33:54 -05:00
auto & GeneratedFunctionText = GetGeneratedFunctionTextDevice ( ) ;
GeneratedFunctionText + = GeneratedEnumRegisterFunctionText ;
uint32 EnumCrc = GenerateTextCRC ( * GeneratedEnumRegisterFunctionText ) ;
GGeneratedCodeCRCs . Add ( Enum , EnumCrc ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
UHTMakefile . AddGeneratedCodeCRC ( & SourceFile , Enum , EnumCrc ) ;
2015-09-30 05:26:51 -04:00
GeneratedFunctionText . Logf ( TEXT ( " \t uint32 %s() { return %uU; } \r \n " ) , * CRCFuncName , EnumCrc ) ;
2015-09-21 07:53:49 -04:00
// CallSingletons.Logf(TEXT("\t\t\t\tOuterClass->LinkChild(%s); // %u\r\n"), *EnumSingletonName, EnumCrc);
2014-03-14 14:13:41 -04:00
}
}
}
2015-03-27 18:10:52 -04:00
void FNativeClassHeaderGenerator : : ExportMirrorsForNoexportStructs ( const TArray < UScriptStruct * > & NativeStructs , int32 TextIndent , FUHTStringBuilder & HeaderOutput )
2014-03-14 14:13:41 -04:00
{
// reverse the order.
for ( int32 i = NativeStructs . Num ( ) - 1 ; i > = 0 ; - - i )
{
UScriptStruct * Struct = NativeStructs [ i ] ;
// Export struct.
2016-02-22 11:17:03 -05:00
const TCHAR * StructName = NameLookupCPP . GetNameCPP ( Struct ) ;
HeaderOutput . Logf ( TEXT ( " %sstruct %s " ) , FCString : : Tab ( TextIndent ) , StructName ) ;
2014-03-14 14:13:41 -04:00
if ( Struct - > GetSuperStruct ( ) ! = NULL )
{
2014-06-02 07:02:29 -04:00
HeaderOutput . Logf ( TEXT ( " : public %s " ) , NameLookupCPP . GetNameCPP ( Struct - > GetSuperStruct ( ) ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-09-21 07:53:49 -04:00
HeaderOutput . Logf ( TEXT ( " \r \n %s{ \r \n " ) , FCString : : Tab ( TextIndent ) ) ;
2014-03-14 14:13:41 -04:00
// Export the struct's CPP properties.
ExportProperties ( Struct , TextIndent , /*bAccessSpecifiers=*/ false , & HeaderOutput ) ;
2015-09-21 07:53:49 -04:00
HeaderOutput . Logf ( TEXT ( " %s}; \r \n \r \n " ) , FCString : : Tab ( TextIndent ) ) ;
2014-03-14 14:13:41 -04:00
}
}
bool FNativeClassHeaderGenerator : : WillExportEventParms ( UFunction * Function )
{
2015-04-02 16:31:18 -04:00
TFieldIterator < UProperty > It ( Function ) ;
return It & & ( It - > PropertyFlags & CPF_Parm ) ;
2014-03-14 14:13:41 -04:00
}
2015-03-27 18:10:52 -04:00
void WriteEventFunctionPrologue ( FUHTStringBuilder & Output , int32 Indent , const FParmsAndReturnProperties & Parameters , UObject * FunctionOuter , const TCHAR * FunctionName )
2014-03-14 14:13:41 -04:00
{
// now the body - first we need to declare a struct which will hold the parameters for the event/delegate call
2015-09-21 07:53:49 -04:00
Output . Logf ( TEXT ( " \r \n %s{ \r \n " ) , FCString : : Tab ( Indent ) ) ;
2014-03-14 14:13:41 -04:00
// declare and zero-initialize the parameters and return value, if applicable
if ( ! Parameters . HasParms ( ) )
return ;
2015-01-20 09:33:54 -05:00
FString EventStructName = GetEventStructParamsName ( FunctionOuter , FunctionName ) ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
Output . Logf ( TEXT ( " %s%s Parms; \r \n " ) , FCString : : Tab ( Indent + 1 ) , * EventStructName ) ;
2014-03-14 14:13:41 -04:00
// Declare a parameter struct for this event/delegate and assign the struct members using the values passed into the event/delegate call.
for ( auto It = Parameters . Parms . CreateConstIterator ( ) ; It ; + + It )
{
UProperty * Prop = * It ;
const FString PropertyName = Prop - > GetName ( ) ;
2015-03-27 18:10:52 -04:00
if ( Prop - > ArrayDim > 1 )
2014-03-14 14:13:41 -04:00
{
2015-09-21 07:53:49 -04:00
Output . Logf ( TEXT ( " %sFMemory::Memcpy(Parms.%s,%s,sizeof(Parms.%s)); \r \n " ) , FCString : : Tab ( Indent + 1 ) , * PropertyName , * PropertyName , * PropertyName ) ;
2014-03-14 14:13:41 -04:00
}
else
{
FString ValueAssignmentText = PropertyName ;
if ( Prop - > IsA < UBoolProperty > ( ) )
{
ValueAssignmentText + = TEXT ( " ? true : false " ) ;
}
2015-09-21 07:53:49 -04:00
Output . Logf ( TEXT ( " %sParms.%s=%s; \r \n " ) , FCString : : Tab ( Indent + 1 ) , * PropertyName , * ValueAssignmentText ) ;
2014-03-14 14:13:41 -04:00
}
}
}
2015-03-27 18:10:52 -04:00
void WriteEventFunctionEpilogue ( FUHTStringBuilder & Output , int32 Indent , const FParmsAndReturnProperties & Parameters , const TCHAR * FunctionName )
2014-03-14 14:13:41 -04:00
{
// Out parm copying.
for ( auto It = Parameters . Parms . CreateConstIterator ( ) ; It ; + + It )
{
UProperty * Prop = * It ;
if ( Prop - > HasAnyPropertyFlags ( CPF_OutParm ) & & ( ! Prop - > HasAnyPropertyFlags ( CPF_ConstParm ) | | Prop - > IsA < UObjectPropertyBase > ( ) ) )
{
const FString PropertyName = Prop - > GetName ( ) ;
if ( Prop - > ArrayDim > 1 )
{
2015-09-21 07:53:49 -04:00
Output . Logf ( TEXT ( " %sFMemory::Memcpy(&%s,&Parms.%s,sizeof(%s)); \r \n " ) , FCString : : Tab ( Indent + 1 ) , * PropertyName , * PropertyName , * PropertyName ) ;
2014-03-14 14:13:41 -04:00
}
else
{
2015-09-21 07:53:49 -04:00
Output . Logf ( TEXT ( " %s%s=Parms.%s; \r \n " ) , FCString : : Tab ( Indent + 1 ) , * PropertyName , * PropertyName ) ;
2014-03-14 14:13:41 -04:00
}
}
}
// Return value.
if ( Parameters . Return )
{
// Make sure uint32 -> bool is supported
bool bBoolProperty = Parameters . Return - > IsA ( UBoolProperty : : StaticClass ( ) ) ;
2015-09-21 07:53:49 -04:00
Output . Logf ( TEXT ( " %sreturn %sParms.%s; \r \n " ) , FCString : : Tab ( Indent + 1 ) , bBoolProperty ? TEXT ( " !! " ) : TEXT ( " " ) , * Parameters . Return - > GetName ( ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-09-21 07:53:49 -04:00
Output . Logf ( TEXT ( " %s} \r \n " ) , FCString : : Tab ( Indent ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
void FNativeClassHeaderGenerator : : ExportDelegateDefinitions ( FUnrealSourceFile & SourceFile , const TArray < UDelegateFunction * > & DelegateFunctions , const bool bWrapperImplementationsOnly )
2014-03-14 14:13:41 -04:00
{
2015-03-27 18:10:52 -04:00
FUHTStringBuilder HeaderOutput ;
2014-03-14 14:13:41 -04:00
for ( int32 i = DelegateFunctions . Num ( ) - 1 ; i > = 0 ; i - - )
{
UFunction * Function = DelegateFunctions [ i ] ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder DelegateOutput ;
2014-03-14 14:13:41 -04:00
check ( Function - > HasAnyFunctionFlags ( FUNC_Delegate ) ) ;
2015-01-20 09:33:54 -05:00
if ( bWrapperImplementationsOnly )
{
// Export parameters structs for all delegates. We'll need these to declare our delegate execution function.
ExportEventParm ( Function , DelegateOutput ) ;
}
2014-03-14 14:13:41 -04:00
const bool bIsMulticastDelegate = Function - > HasAnyFunctionFlags ( FUNC_MulticastDelegate ) ;
// Unmangle the function name
const FString DelegateName = Function - > GetName ( ) . LeftChop ( FString ( HEADER_GENERATED_DELEGATE_SIGNATURE_SUFFIX ) . Len ( ) ) ;
2015-01-20 09:33:54 -05:00
auto * CompilerInfo = FFunctionData : : FindForFunction ( Function ) ;
2014-03-14 14:13:41 -04:00
FFuncInfo FunctionData = CompilerInfo - > GetFunctionData ( ) ;
if ( bWrapperImplementationsOnly )
{
// Always export delegate wrapper functions as inline
FunctionData . FunctionExportFlags | = FUNCEXPORT_Inline ;
}
// Add class name to beginning of function, to avoid collisions with other classes with the same delegate name in this scope
FString Delegate ( TEXT ( " delegate " ) ) ;
check ( FunctionData . MarshallAndCallName . StartsWith ( Delegate ) ) ;
FString ShortName = * FunctionData . MarshallAndCallName + Delegate . Len ( ) ;
FunctionData . MarshallAndCallName = FString : : Printf ( TEXT ( " F%s_DelegateWrapper " ) , * ShortName ) ;
// Setup delegate parameter
const FString ExtraParam ( FString : : Printf ( TEXT ( " const %s& %s " ) ,
bIsMulticastDelegate ? TEXT ( " FMulticastScriptDelegate " ) : TEXT ( " FScriptDelegate " ) ,
* DelegateName ) ) ;
2015-01-20 09:33:54 -05:00
DelegateOutput . Log ( TEXT ( " static " ) ) ;
2014-03-14 14:13:41 -04:00
// export the line that looks like: int32 Main(const FString& Parms)
2015-01-20 09:33:54 -05:00
ExportNativeFunctionHeader ( FunctionData , DelegateOutput , EExportFunctionType : : Event , EExportFunctionHeaderStyle : : Declaration , * ExtraParam ) ;
2014-03-14 14:13:41 -04:00
if ( ! bWrapperImplementationsOnly )
{
// Only exporting function prototype
2015-01-20 09:33:54 -05:00
DelegateOutput . Logf ( TEXT ( " ; \r \n " ) ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
ExportFunction ( SourceFile , Function , & SourceFile . GetScope ( ) . Get ( ) , false ) ;
2014-03-14 14:13:41 -04:00
}
else
{
auto Parameters = GetFunctionParmsAndReturn ( FunctionData . FunctionReference ) ;
2015-01-20 09:33:54 -05:00
WriteEventFunctionPrologue ( DelegateOutput , 0 , Parameters , Function - > GetOuter ( ) , * DelegateName ) ;
2014-03-14 14:13:41 -04:00
{
const TCHAR * DelegateType = bIsMulticastDelegate ? TEXT ( " ProcessMulticastDelegate " ) : TEXT ( " ProcessDelegate " ) ;
const TCHAR * DelegateArg = Parameters . HasParms ( ) ? TEXT ( " &Parms " ) : TEXT ( " NULL " ) ;
2015-03-27 18:10:52 -04:00
DelegateOutput . Logf ( TEXT ( " \t %s.%s<UObject>(%s); \r \n " ) , * DelegateName , DelegateType , DelegateArg ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
WriteEventFunctionEpilogue ( DelegateOutput , 0 , Parameters , * DelegateName ) ;
}
2015-06-15 14:06:46 -04:00
if ( bWrapperImplementationsOnly )
2015-01-20 09:33:54 -05:00
{
2015-03-17 05:19:11 -04:00
FString MacroName = SourceFile . GetGeneratedMacroName ( FunctionData . MacroLine , TEXT ( " _DELEGATE " ) ) ;
2015-01-20 09:33:54 -05:00
WriteMacro ( HeaderOutput , MacroName , DelegateOutput ) ;
2014-03-14 14:13:41 -04:00
}
}
if ( HeaderOutput . Len ( ) )
{
2015-01-20 09:33:54 -05:00
GeneratedHeaderText . Log ( * HeaderOutput ) ;
GeneratedHeaderText . Log ( TEXT ( " \r \n \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
}
}
/**
* Export a single . proto declaration , recursing as necessary for sub declarations
*
* @ param Out output device
* @ param MessageName name of the message in the declaration
* @ param Properties array of parameters in the function definition
* @ param PropertyFlags flags to filter property array against
* @ param Ident starting indentation level
*/
void ExportProtoDeclaration ( FOutputDevice & Out , const FString & MessageName , TFieldIterator < UProperty > & Properties , uint64 PropertyFlags , int32 Indent )
{
2015-09-21 07:53:49 -04:00
Out . Logf ( TEXT ( " %smessage CMsg%sMessage \r \n " ) , FCString : : Tab ( Indent ) , * MessageName ) ;
Out . Logf ( TEXT ( " %s{ \r \n " ) , FCString : : Tab ( Indent ) ) ;
2014-03-14 14:13:41 -04:00
static TMap < FString , FString > ToProtoTypeMappings ;
static bool bInitMapping = false ;
if ( ! bInitMapping )
{
// Explicit type mappings
ToProtoTypeMappings . Add ( TEXT ( " FString " ) , TEXT ( " string " ) ) ;
ToProtoTypeMappings . Add ( TEXT ( " int32 " ) , TEXT ( " int32 " ) ) ;
ToProtoTypeMappings . Add ( TEXT ( " int64 " ) , TEXT ( " int64 " ) ) ;
ToProtoTypeMappings . Add ( TEXT ( " uint8 " ) , TEXT ( " bytes " ) ) ;
ToProtoTypeMappings . Add ( TEXT ( " bool " ) , TEXT ( " bool " ) ) ;
ToProtoTypeMappings . Add ( TEXT ( " double " ) , TEXT ( " double " ) ) ;
ToProtoTypeMappings . Add ( TEXT ( " float " ) , TEXT ( " float " ) ) ;
bInitMapping = true ;
}
int32 FieldIdx = 1 ;
for ( ; Properties & & ( Properties - > PropertyFlags & PropertyFlags ) ; + + Properties )
{
UProperty * Property = * Properties ;
UClass * PropClass = Property - > GetClass ( ) ;
// Skip out and return paramaters
if ( ( Property - > PropertyFlags & CPF_RepSkip ) | | ( Property - > PropertyFlags & CPF_ReturnParm ) )
{
continue ;
}
// export the property type text (e.g. FString; int32; TArray, etc.)
FString TypeText , ExtendedTypeText ;
TypeText = Property - > GetCPPType ( & ExtendedTypeText , CPPF_None ) ;
if ( PropClass ! = UInterfaceProperty : : StaticClass ( ) & & PropClass ! = UObjectProperty : : StaticClass ( ) )
{
bool bIsRepeated = false ;
2015-04-21 10:25:59 -04:00
if ( UArrayProperty * ArrayProperty = Cast < UArrayProperty > ( Property ) )
2014-03-14 14:13:41 -04:00
{
2014-06-02 14:20:58 -04:00
UClass * InnerPropClass = ArrayProperty - > Inner - > GetClass ( ) ;
2014-03-14 14:13:41 -04:00
if ( InnerPropClass ! = UInterfaceProperty : : StaticClass ( ) & & InnerPropClass ! = UObjectProperty : : StaticClass ( ) )
{
FString InnerExtendedTypeText ;
2014-06-02 14:20:58 -04:00
FString InnerTypeText = ArrayProperty - > Inner - > GetCPPType ( & InnerExtendedTypeText , CPPF_None ) ;
2014-03-14 14:13:41 -04:00
TypeText = InnerTypeText ;
ExtendedTypeText = InnerExtendedTypeText ;
2014-06-02 14:20:58 -04:00
Property = ArrayProperty - > Inner ;
2014-03-14 14:13:41 -04:00
bIsRepeated = true ;
}
else
{
FError : : Throwf ( TEXT ( " ExportProtoDeclaration - Unhandled property type '%s': %s " ) , * PropClass - > GetName ( ) , * Property - > GetPathName ( ) ) ;
}
}
2016-06-16 11:54:44 -04:00
else if ( Property - > IsA < UMapProperty > ( ) )
2015-04-21 10:25:59 -04:00
{
FError : : Throwf ( TEXT ( " ExportProtoDeclaration - Map properties not yet supported '%s': %s " ) , * PropClass - > GetName ( ) , * Property - > GetPathName ( ) ) ;
}
2016-06-16 11:54:44 -04:00
else if ( Property - > IsA < USetProperty > ( ) )
{
FError : : Throwf ( TEXT ( " ExportProtoDeclaration - Set properties not yet supported '%s': %s " ) , * PropClass - > GetName ( ) , * Property - > GetPathName ( ) ) ;
}
2014-03-14 14:13:41 -04:00
else if ( Property - > ArrayDim ! = 1 )
{
bIsRepeated = true ;
}
FString VariableTypeName = FString : : Printf ( TEXT ( " %s%s " ) , * TypeText , * ExtendedTypeText ) ;
FString * ProtoTypeName = NULL ;
UStructProperty * StructProperty = Cast < UStructProperty > ( Property ) ;
if ( StructProperty ! = NULL )
{
TFieldIterator < UProperty > StructIt ( StructProperty - > Struct ) ;
2015-03-27 18:10:52 -04:00
ExportProtoDeclaration ( Out , VariableTypeName , StructIt , CPF_AllFlags , Indent + 1 ) ;
2014-03-14 14:13:41 -04:00
VariableTypeName = FString : : Printf ( TEXT ( " CMsg%sMessage " ) , * VariableTypeName ) ;
ProtoTypeName = & VariableTypeName ;
}
else
{
ProtoTypeName = ToProtoTypeMappings . Find ( VariableTypeName ) ;
}
2015-09-21 07:53:49 -04:00
Out . Log ( FCString : : Tab ( Indent + 1 ) ) ;
2015-03-27 18:10:52 -04:00
Out . Log ( bIsRepeated ? TEXT ( " repeated " ) : TEXT ( " optional " ) ) ;
2014-03-14 14:13:41 -04:00
if ( ProtoTypeName ! = NULL )
{
Out . Logf ( TEXT ( " %s %s = %d; \r \n " ) , * * ProtoTypeName , * Property - > GetNameCPP ( ) , FieldIdx ) ;
FieldIdx + + ;
}
else
{
FError : : Throwf ( TEXT ( " ExportProtoDeclaration - Unhandled property mapping '%s': %s " ) , * PropClass - > GetName ( ) , * Property - > GetPathName ( ) ) ;
}
}
else
{
FError : : Throwf ( TEXT ( " ExportProtoDeclaration - Unhandled property type '%s': %s " ) , * PropClass - > GetName ( ) , * Property - > GetPathName ( ) ) ;
}
}
2015-09-21 07:53:49 -04:00
Out . Logf ( TEXT ( " %s} \r \n " ) , FCString : : Tab ( Indent ) ) ;
2014-03-14 14:13:41 -04:00
}
/**
* Generate a . proto message declaration for any functions marked as requiring one
*
* @ param InCallbackFunctions array of functions for consideration to generate . proto definitions
* @ param Indent starting indentation level
* @ param Output optional output redirect
*/
2015-11-18 16:20:49 -05:00
void FNativeClassHeaderGenerator : : ExportProtoMessage ( const TArray < UFunction * > & InCallbackFunctions , int32 Indent , FUHTStringBuilder * Output )
2014-03-14 14:13:41 -04:00
{
// Parms struct definitions.
2015-03-27 18:10:52 -04:00
FUHTStringBuilder HeaderOutput ;
2014-03-14 14:13:41 -04:00
TArray < UFunction * > CallbackFunctions = InCallbackFunctions ;
CallbackFunctions . Sort ( ) ;
for ( int32 Index = 0 ; Index < CallbackFunctions . Num ( ) ; Index + + )
{
UFunction * Function = CallbackFunctions [ Index ] ;
2015-01-20 09:33:54 -05:00
auto * CompilerInfo = FFunctionData : : FindForFunction ( Function ) ;
2014-03-14 14:13:41 -04:00
const FFuncInfo & FunctionData = CompilerInfo - > GetFunctionData ( ) ;
if ( FunctionData . FunctionExportFlags & FUNCEXPORT_NeedsProto )
{
if ( WillExportEventParms ( Function ) & & ! Function - > HasAnyFunctionFlags ( FUNC_Delegate ) )
{
FString FunctionName = Function - > GetName ( ) ;
TFieldIterator < UProperty > CommentIt ( Function ) ;
FString ParameterList ;
for ( ; CommentIt & & ( CommentIt - > PropertyFlags & CPF_Parm ) ; + + CommentIt )
{
UProperty * Param = * CommentIt ;
2014-12-11 11:49:41 -05:00
ForwardDeclarations . Add ( Param ) ;
2014-03-14 14:13:41 -04:00
FString TypeText , ExtendedTypeText ;
TypeText = Param - > GetCPPType ( & ExtendedTypeText , CPPF_None ) ;
FString ParamName = FString : : Printf ( TEXT ( " %s%s %s " ) , * TypeText , * ExtendedTypeText , * Param - > GetName ( ) ) ;
// add this property to the parameter list string
if ( ParameterList . Len ( ) )
{
ParameterList + = TCHAR ( ' , ' ) ;
}
ParameterList + = ParamName ;
}
2015-09-21 07:53:49 -04:00
HeaderOutput . Logf ( TEXT ( " // %s%s(%s) \r \n " ) , FCString : : Tab ( Indent ) , * FunctionName , * ParameterList ) ;
2014-03-14 14:13:41 -04:00
TFieldIterator < UProperty > ParamIt ( Function ) ;
ExportProtoDeclaration ( HeaderOutput , FunctionName , ParamIt , CPF_Parm , Indent ) ;
}
}
}
if ( ! Output )
{
GeneratedProtoText . Log ( * HeaderOutput ) ;
}
else
{
Output - > Log ( HeaderOutput ) ;
}
}
// Java uses different coding standards for capitalization
static FString FixJavaName ( const FString & StringIn )
{
FString FixedString = StringIn ;
FixedString [ 0 ] = FChar : : ToLower ( FixedString [ 0 ] ) ; // java classes/variable start lower case
FixedString . ReplaceInline ( TEXT ( " ID " ) , TEXT ( " Id " ) , ESearchCase : : CaseSensitive ) ; // Id is standard instead of ID, some of our fnames use ID
return FixedString ;
}
/**
* Export a single . java declaration , recursing as necessary for sub declarations
*
* @ param Out output device
* @ param MessageName name of the message in the declaration
* @ param Properties array of parameters in the function definition
* @ param PropertyFlags flags to filter property array against
* @ param Ident starting indentation level
*/
void ExportMCPDeclaration ( FOutputDevice & Out , const FString & MessageName , TFieldIterator < UProperty > & Properties , uint64 PropertyFlags , int32 Indent )
{
2015-09-21 07:53:49 -04:00
Out . Logf ( TEXT ( " %spublic class %sCommand extends ProfileCommand \r \n " ) , FCString : : Tab ( Indent ) , * MessageName ) ;
Out . Logf ( TEXT ( " %s{ \r \n " ) , FCString : : Tab ( Indent ) ) ;
2014-03-14 14:13:41 -04:00
static TMap < FString , FString > ToMCPTypeMappings ;
static TMap < FString , FString > ToAnnotationMappings ;
static bool bInitMapping = false ;
if ( ! bInitMapping )
{
// Explicit type mappings
ToMCPTypeMappings . Add ( TEXT ( " FString " ) , TEXT ( " String " ) ) ;
ToMCPTypeMappings . Add ( TEXT ( " int32 " ) , TEXT ( " int " ) ) ;
ToMCPTypeMappings . Add ( TEXT ( " int64 " ) , TEXT ( " int " ) ) ;
ToMCPTypeMappings . Add ( TEXT ( " uint8 " ) , TEXT ( " byte " ) ) ;
ToMCPTypeMappings . Add ( TEXT ( " bool " ) , TEXT ( " boolean " ) ) ;
ToMCPTypeMappings . Add ( TEXT ( " double " ) , TEXT ( " double " ) ) ;
ToMCPTypeMappings . Add ( TEXT ( " float " ) , TEXT ( " float " ) ) ;
2014-04-23 19:29:53 -04:00
ToMCPTypeMappings . Add ( TEXT ( " byte " ) , TEXT ( " byte " ) ) ;
2014-03-14 14:13:41 -04:00
ToAnnotationMappings . Add ( TEXT ( " FString " ) , TEXT ( " @NotBlankOrNull " ) ) ;
bInitMapping = true ;
}
FString ConstructorParams ;
FString ConstructorText ;
for ( ; Properties & & ( Properties - > PropertyFlags & PropertyFlags ) ; + + Properties )
{
UProperty * Property = * Properties ;
UClass * PropClass = Property - > GetClass ( ) ;
// Skip out and return paramaters
if ( ( Property - > PropertyFlags & CPF_RepSkip ) | | ( Property - > PropertyFlags & CPF_ReturnParm ) )
{
continue ;
}
// export the property type text (e.g. FString; int32; TArray, etc.)
FString TypeText , ExtendedTypeText ;
TypeText = Property - > GetCPPType ( & ExtendedTypeText , CPPF_None ) ;
if ( PropClass ! = UInterfaceProperty : : StaticClass ( ) & & PropClass ! = UObjectProperty : : StaticClass ( ) )
{
// TODO Implement arrays
UArrayProperty * ArrayProperty = Cast < UArrayProperty > ( Property ) ;
if ( ArrayProperty ! = NULL )
{
// skip array generation for Java, this should result in a List<TYPE> declaration, but we can do this by hand for now.
continue ;
}
2015-04-21 10:25:59 -04:00
// TODO Implement maps
UMapProperty * MapProperty = Cast < UMapProperty > ( Property ) ;
if ( MapProperty ! = NULL )
{
continue ;
}
2016-06-16 11:54:44 -04:00
// TODO Implement sets
USetProperty * SetProperty = Cast < USetProperty > ( Property ) ;
if ( SetProperty ! = NULL )
{
continue ;
}
2014-03-14 14:13:41 -04:00
/*bool bIsRepeated = false;
UArrayProperty * ArrayProperty = Cast < UArrayProperty > ( Property ) ;
if ( ArrayProperty ! = NULL )
{
UClass * InnerPropClass = ArrayProperty - > Inner - > GetClass ( ) ;
if ( InnerPropClass ! = UInterfaceProperty : : StaticClass ( ) & & InnerPropClass ! = UObjectProperty : : StaticClass ( ) )
{
FString InnerExtendedTypeText ;
FString InnerTypeText = ArrayProperty - > Inner - > GetCPPType ( & InnerExtendedTypeText , CPPF_None ) ;
TypeText = InnerTypeText ;
ExtendedTypeText = InnerExtendedTypeText ;
Property = ArrayProperty - > Inner ;
bIsRepeated = true ;
}
else
{
FError : : Throwf ( TEXT ( " ExportMCPDeclaration - Unhandled property type '%s': %s " ) , * PropClass - > GetName ( ) , * Property - > GetPathName ( ) ) ;
}
}
else if ( Property - > ArrayDim ! = 1 )
{
bIsRepeated = true ;
} */
FString VariableTypeName = FString : : Printf ( TEXT ( " %s%s " ) , * TypeText , * ExtendedTypeText ) ;
FString PropertyName = FixJavaName ( Property - > GetNameCPP ( ) ) ;
FString * MCPTypeName = NULL ;
FString * AnnotationName = NULL ;
UStructProperty * StructProperty = Cast < UStructProperty > ( Property ) ;
if ( StructProperty ! = NULL )
{
// TODO Implement structs
/* TFieldIterator<UProperty> StructIt(StructProperty->Struct);
2015-03-27 18:10:52 -04:00
ExportMCPDeclaration ( Out , VariableTypeName , StructIt , CPF_AllFlags , Indent + 1 ) ;
2014-03-14 14:13:41 -04:00
VariableTypeName = FString : : Printf ( TEXT ( " CMsg%sMessage " ) , * VariableTypeName ) ;
MCPTypeName = & VariableTypeName ; */
2014-08-21 20:30:51 -04:00
continue ;
2014-03-14 14:13:41 -04:00
}
else
{
2014-04-23 19:29:53 -04:00
UByteProperty * ByteProperty = Cast < UByteProperty > ( Property ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
if ( ( ByteProperty & & ByteProperty - > Enum ) | | Cast < UEnumProperty > ( Property ) )
2014-04-23 19:29:53 -04:00
{
// treat enums like strings because that's how they'll be exported in JSON
MCPTypeName = ToMCPTypeMappings . Find ( TEXT ( " FString " ) ) ;
AnnotationName = ToAnnotationMappings . Find ( TEXT ( " FString " ) ) ;
}
else
{
MCPTypeName = ToMCPTypeMappings . Find ( VariableTypeName ) ;
AnnotationName = ToAnnotationMappings . Find ( VariableTypeName ) ;
}
2014-03-14 14:13:41 -04:00
}
if ( AnnotationName ! = NULL & & ! AnnotationName - > IsEmpty ( ) )
{
2015-09-21 07:53:49 -04:00
Out . Log ( FCString : : Tab ( Indent + 1 ) ) ;
2014-03-14 14:13:41 -04:00
Out . Logf ( TEXT ( " %s \r \n " ) , * * AnnotationName ) ;
}
if ( MCPTypeName ! = NULL )
{
2015-09-21 07:53:49 -04:00
Out . Log ( FCString : : Tab ( Indent + 1 ) ) ;
2014-03-14 14:13:41 -04:00
Out . Logf ( TEXT ( " private %s %s; \r \n " ) , * * MCPTypeName , * PropertyName ) ;
ConstructorParams + = FString : : Printf ( TEXT ( " , %s %s " ) , * * MCPTypeName , * PropertyName ) ;
2015-09-21 07:53:49 -04:00
ConstructorText + = FString : : Printf ( TEXT ( " %sthis.%s = %s; \r \n " ) , FCString : : Tab ( Indent + 2 ) , * PropertyName , * PropertyName ) ;
2014-03-14 14:13:41 -04:00
}
else
{
2014-04-23 19:29:53 -04:00
FError : : Throwf ( TEXT ( " ExportMCPDeclaration - Unhandled property mapping '%s' (%s): %s " ) , * PropClass - > GetName ( ) , * VariableTypeName , * Property - > GetPathName ( ) ) ;
2014-03-14 14:13:41 -04:00
}
}
else
{
FError : : Throwf ( TEXT ( " ExportMCPDeclaration - Unhandled property type '%s': %s " ) , * PropClass - > GetName ( ) , * Property - > GetPathName ( ) ) ;
}
}
2015-09-21 07:53:49 -04:00
Out . Logf ( TEXT ( " \r \n %spublic %sCommand(String epicId, String profileId%s) \r \n " ) , FCString : : Tab ( Indent + 1 ) , * MessageName , * ConstructorParams ) ;
Out . Logf ( TEXT ( " %s{ \r \n " ) , FCString : : Tab ( Indent + 1 ) ) ;
Out . Logf ( TEXT ( " %ssuper(epicId, profileId); \r \n " ) , FCString : : Tab ( Indent + 2 ) ) ;
2014-03-14 14:13:41 -04:00
Out . Logf ( TEXT ( " %s " ) , * ConstructorText ) ;
2015-09-21 07:53:49 -04:00
Out . Logf ( TEXT ( " %s} \r \n " ) , FCString : : Tab ( Indent + 1 ) ) ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
Out . Logf ( TEXT ( " \r \n %s@Override \r \n " ) , FCString : : Tab ( Indent + 1 ) ) ;
Out . Logf ( TEXT ( " %sprotected void execute(@Name( \" profile \" ) @NotNull ProfileEx profile) \r \n " ) , FCString : : Tab ( Indent + 1 ) ) ;
Out . Logf ( TEXT ( " %s{ \r \n " ) , FCString : : Tab ( Indent + 1 ) ) ;
Out . Logf ( TEXT ( " %s} \r \n " ) , FCString : : Tab ( Indent + 1 ) ) ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
Out . Logf ( TEXT ( " %s} \r \n " ) , FCString : : Tab ( Indent ) ) ;
2014-03-14 14:13:41 -04:00
}
/**
* Generate a . MCP message declaration for any functions marked as requiring one
*
* @ param InCallbackFunctions array of functions for consideration to generate . proto definitions
* @ param Indent starting indentation level
* @ param Output optional output redirect
*/
2015-03-27 18:10:52 -04:00
void FNativeClassHeaderGenerator : : ExportMCPMessage ( const TArray < UFunction * > & InCallbackFunctions , FClassMetaData * ClassData , int32 Indent , FUHTStringBuilder * Output )
2014-03-14 14:13:41 -04:00
{
// Parms struct definitions.
2015-03-27 18:10:52 -04:00
FUHTStringBuilder HeaderOutput ;
2014-03-14 14:13:41 -04:00
TArray < UFunction * > CallbackFunctions = InCallbackFunctions ;
CallbackFunctions . Sort ( ) ;
for ( int32 Index = 0 ; Index < CallbackFunctions . Num ( ) ; Index + + )
{
UFunction * Function = CallbackFunctions [ Index ] ;
2015-01-20 09:33:54 -05:00
auto * CompilerInfo = FFunctionData : : FindForFunction ( Function ) ;
2014-03-14 14:13:41 -04:00
const FFuncInfo & FunctionData = CompilerInfo - > GetFunctionData ( ) ;
if ( FunctionData . FunctionExportFlags & FUNCEXPORT_NeedsMCP )
{
if ( WillExportEventParms ( Function ) & & ! Function - > HasAnyFunctionFlags ( FUNC_Delegate ) )
{
FString FunctionName = Function - > GetName ( ) ;
TFieldIterator < UProperty > CommentIt ( Function ) ;
FString ParameterList ;
for ( ; CommentIt & & ( CommentIt - > PropertyFlags & CPF_Parm ) ; + + CommentIt )
{
UProperty * Param = * CommentIt ;
2014-12-11 11:49:41 -05:00
ForwardDeclarations . Add ( Param ) ;
2014-03-14 14:13:41 -04:00
FString TypeText , ExtendedTypeText ;
TypeText = Param - > GetCPPType ( & ExtendedTypeText , CPPF_None ) ;
FString ParamName = FString : : Printf ( TEXT ( " %s%s %s " ) , * TypeText , * ExtendedTypeText , * Param - > GetName ( ) ) ;
// add this property to the parameter list string
if ( ParameterList . Len ( ) )
{
ParameterList + = TCHAR ( ' , ' ) ;
}
ParameterList + = ParamName ;
}
2015-09-21 07:53:49 -04:00
HeaderOutput . Logf ( TEXT ( " // %s%s(%s) \r \n " ) , FCString : : Tab ( Indent ) , * FunctionName , * ParameterList ) ;
2014-03-14 14:13:41 -04:00
TFieldIterator < UProperty > ParamIt ( Function ) ;
ExportMCPDeclaration ( HeaderOutput , FunctionName , ParamIt , CPF_Parm , Indent ) ;
}
}
}
if ( ! Output )
{
GeneratedMCPText . Log ( * HeaderOutput ) ;
}
else
{
Output - > Log ( HeaderOutput ) ;
}
}
2015-03-27 18:10:52 -04:00
void FNativeClassHeaderGenerator : : ExportEventParm ( UFunction * Function , FUHTStringBuilder & HeaderOutput , int32 Indent , bool bOutputConstructor )
2015-01-20 09:33:54 -05:00
{
if ( ! WillExportEventParms ( Function ) )
{
return ;
}
FString FunctionName = Function - > GetName ( ) ;
if ( Function - > HasAnyFunctionFlags ( FUNC_Delegate ) )
{
FunctionName = FunctionName . LeftChop ( FString ( HEADER_GENERATED_DELEGATE_SIGNATURE_SUFFIX ) . Len ( ) ) ;
}
FString EventParmStructName = GetEventStructParamsName ( Function - > GetOuter ( ) , * FunctionName ) ;
2015-09-21 07:53:49 -04:00
HeaderOutput . Logf ( TEXT ( " %sstruct %s \r \n " ) , FCString : : Tab ( Indent ) , * EventParmStructName ) ;
HeaderOutput . Logf ( TEXT ( " %s{ \r \n " ) , FCString : : Tab ( Indent ) ) ;
2015-01-20 09:33:54 -05:00
for ( TFieldIterator < UProperty > It ( Function ) ; It & & ( It - > PropertyFlags & CPF_Parm ) ; + + It )
{
UProperty * Prop = * It ;
ForwardDeclarations . Add ( Prop ) ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder PropertyText ;
2015-09-21 07:53:49 -04:00
PropertyText . Log ( FCString : : Tab ( Indent + 1 ) ) ;
2015-01-20 09:33:54 -05:00
bool bEmitConst = Prop - > HasAnyPropertyFlags ( CPF_ConstParm ) & & Prop - > IsA < UObjectProperty > ( ) ;
//@TODO: UCREMOVAL: This is awful code duplication to avoid a double-const
{
// export 'const' for parameters
const bool bIsConstParam = ( Prop - > IsA ( UInterfaceProperty : : StaticClass ( ) ) & & ! Prop - > HasAllPropertyFlags ( CPF_OutParm ) ) ; //@TODO: This should be const once that flag exists
const bool bIsOnConstClass = ( Prop - > IsA ( UObjectProperty : : StaticClass ( ) ) & & ( ( UObjectProperty * ) Prop ) - > PropertyClass ! = NULL & & ( ( UObjectProperty * ) Prop ) - > PropertyClass - > HasAnyClassFlags ( CLASS_Const ) ) ;
if ( bIsConstParam | | bIsOnConstClass )
{
bEmitConst = false ; // ExportCppDeclaration will do it for us
}
}
if ( bEmitConst )
{
PropertyText . Logf ( TEXT ( " const " ) ) ;
}
const FString * Dim = GArrayDimensions . Find ( Prop ) ;
Prop - > ExportCppDeclaration ( PropertyText , EExportedDeclaration : : Local , Dim ? * * Dim : NULL ) ;
ApplyAlternatePropertyExportText ( Prop , PropertyText ) ;
PropertyText . Log ( TEXT ( " ; \r \n " ) ) ;
HeaderOutput + = * PropertyText ;
}
// constructor must initialize the return property if it needs it
UProperty * Prop = Function - > GetReturnProperty ( ) ;
if ( Prop & & bOutputConstructor )
{
2015-03-27 18:10:52 -04:00
FUHTStringBuilder InitializationAr ;
2015-01-20 09:33:54 -05:00
UStructProperty * InnerStruct = Cast < UStructProperty > ( Prop ) ;
bool bNeedsOutput = true ;
if ( InnerStruct )
{
bNeedsOutput = InnerStruct - > HasNoOpConstructor ( ) ;
}
else if (
Cast < UNameProperty > ( Prop ) | |
Cast < UDelegateProperty > ( Prop ) | |
Cast < UMulticastDelegateProperty > ( Prop ) | |
Cast < UStrProperty > ( Prop ) | |
Cast < UTextProperty > ( Prop ) | |
Cast < UArrayProperty > ( Prop ) | |
2015-04-21 10:25:59 -04:00
Cast < UMapProperty > ( Prop ) | |
2016-06-16 11:54:44 -04:00
Cast < USetProperty > ( Prop ) | |
2015-01-20 09:33:54 -05:00
Cast < UInterfaceProperty > ( Prop )
)
{
bNeedsOutput = false ;
}
if ( bNeedsOutput )
{
check ( Prop - > ArrayDim = = 1 ) ; // can't return arrays
Copying //UE4/Dev-Framework to Dev-Main (//UE4/Dev-Main) @ 2944217
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2899855 on 2016/03/08 by Marc.Audy
Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 2899785
Change 2926689 on 2016/03/29 by Jeff.Farris
AAIController::SetFocus() will now implicitly clear any location focus at the same priority.
UE-27975
#rb john.abercrombie
Change 2926690 on 2016/03/29 by Jeff.Farris
Using wildcard operator with the "KismetEvent" or "ke" console commands will now only trigger the event on objects in the world in which it was triggered. Prevents badness with running events on things like CDOs and editor actors. (UE-23106)
Change 2926691 on 2016/03/29 by mason.seay
Content for testing collision on scaled components
Change 2926692 on 2016/03/29 by Jeff.Farris
- FixupDeltaSeconds now considers time dilation when clamping.
- Acceptable range for time dilation values is now a config parameter on WorldSettings
- Acceptable range for undilated frame times is now a config parameter on WorldSettings
(UE-27815)
#rb marc.audy
Change 2926711 on 2016/03/29 by Ori.Cohen
Fix constraint rendering when scaling a cosntraint actor
#JIRA UE-28691, UE-28700
#rb Lina.Halper
Change 2926745 on 2016/03/29 by Lukasz.Furman
navigation filters can now be instantiated per querier - usually AI agent
required for FORT-21372
Change 2926789 on 2016/03/29 by Ori.Cohen
Downgrade check to ensure for 2d physics during a hard shutdown
#rb Michael.Noland
Change 2926859 on 2016/03/29 by Ori.Cohen
Fix red herring warnings of not locking physx scenes during hard shutdown.
#JIRA UE-28747
#rb Michael.Noland
Change 2927444 on 2016/03/30 by Thomas.Sarkanen
Fixed Blueprint compiler errors when resetting timer handles
Added basic support for 64-bit int/uint terms to Blueprint. This allows the use of opaque 64-bit integer types inside of BlueprintType structs, it in no way means that 64-bit ints are fully supported in Blueprint.
Corrected a left-over formatting oversight when converting a FTimerHandle to a string.
Added new by-ref "Clear and Invalidate Timer by Handle" function to Blueprint system library & deprecated old version.
#rb Maciej.Mroz (and a few others!)
#jira UE-28833 - Unresolved compiler error for B_Pickups blueprint in Fortnite
Change 2927520 on 2016/03/30 by Jurre.deBaare
Should not allow skeletal mesh components mobility to be set to static, but detach instead
#fix Added CanHaveStaticMobility to SceneComponent class, and check this when trying to propogate Static mobility to parent component
#jira UE-26364
Change 2927533 on 2016/03/30 by Jurre.deBaare
Static Mesh Merge tool: when merging from multiple blueprints, fails to combine same materials
#fix Material index remapping was part of if-clause where it shouldn't be
#jira UE-23827
Static Mesh Merge tool, failed to combine physics data if using complex
#fix Required copying the SectionInfoMap from source static meshes
HLOD/MergeActor - Vertex Colours are not correctly propagated to negatively scaled meshes
#fix had to re-order function calls
#jira UE-28316
#rb James.Golding
Change 2927535 on 2016/03/30 by Ori.Cohen
Make sub-stepping run on game thread
#JIRA UE-24011
#rb Gil.Gribb
Change 2927537 on 2016/03/30 by Jurre.deBaare
Warning message when HLOD mesh > 65536 vertices
#jira UE-22365
#fix added messages when building proxy mesh
Change 2927691 on 2016/03/30 by Jeff.Farris
Fixed potential PlayerState leak (UE-22700)
Change 2927692 on 2016/03/30 by Lina.Halper
Allow it to select any name they want other than just restrict to what we have.
- I think it may not be the best solution but with current widget built, you can't even clear name, which is problem.
- Other solution is to add "Clear" as a name, and when that gets entered, we just clear it, but then the X button is odd and no purpose being there.
- I think we should just allow them to choose if they don't like it but with suggestions.
#rb: Ori.Cohen
#jira UE-27786
#code review: Benn.Gallagher
Change 2927853 on 2016/03/30 by Lina.Halper
[CL 2944273 by Marc Audy in Main branch]
2016-04-14 16:25:11 -04:00
HeaderOutput . Logf ( TEXT ( " \r \n %s/** Constructor, initializes return property only **/ \r \n " ) , FCString : : Tab ( Indent + 1 ) ) ;
2015-09-21 07:53:49 -04:00
HeaderOutput . Logf ( TEXT ( " %s%s() \r \n " ) , FCString : : Tab ( Indent + 1 ) , * EventParmStructName ) ;
HeaderOutput . Logf ( TEXT ( " %s%s %s(%s) \r \n " ) , FCString : : Tab ( Indent + 2 ) , TEXT ( " : " ) , * Prop - > GetName ( ) , * GetNullParameterValue ( Prop , false , true ) ) ;
HeaderOutput . Logf ( TEXT ( " %s{ \r \n " ) , FCString : : Tab ( Indent + 1 ) ) ;
HeaderOutput . Logf ( TEXT ( " %s} \r \n " ) , FCString : : Tab ( Indent + 1 ) ) ;
2015-01-20 09:33:54 -05:00
}
}
2015-09-21 07:53:49 -04:00
HeaderOutput . Logf ( TEXT ( " %s}; \r \n " ) , FCString : : Tab ( Indent ) ) ;
2015-01-20 09:33:54 -05:00
}
2015-03-27 18:10:52 -04:00
void FNativeClassHeaderGenerator : : ExportEventParms ( FScope & Scope , const TArray < UFunction * > & InCallbackFunctions , FUHTStringBuilder & Output , int32 Indent , bool bOutputConstructor )
2014-03-14 14:13:41 -04:00
{
// Parms struct definitions.
2015-03-27 18:10:52 -04:00
FUHTStringBuilder HeaderOutput ;
2014-03-14 14:13:41 -04:00
TArray < UFunction * > CallbackFunctions = InCallbackFunctions ;
CallbackFunctions . Sort ( ) ;
for ( int32 Index = 0 ; Index < CallbackFunctions . Num ( ) ; Index + + )
{
UFunction * Function = CallbackFunctions [ Index ] ;
2015-01-20 09:33:54 -05:00
ExportEventParm ( Function , HeaderOutput , Indent , bOutputConstructor ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
Output . Log ( HeaderOutput ) ;
2014-03-14 14:13:41 -04:00
}
/**
* Get the intrinsic null value for this property
*
* @ param Prop the property to get the null value for
* @ param bMacroContext true when exporting the P_GET * macro , false when exporting the friendly C + + function header
*
* @ return the intrinsic null value for the property ( 0 for ints , TEXT ( " " ) for strings , etc . )
*/
FString FNativeClassHeaderGenerator : : GetNullParameterValue ( UProperty * Prop , bool bMacroContext , bool bInitializer /*=false*/ )
{
UClass * PropClass = Prop - > GetClass ( ) ;
UObjectPropertyBase * ObjectProperty = Cast < UObjectPropertyBase > ( Prop ) ;
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 ( PropClass = = UByteProperty : : StaticClass ( ) )
{
UByteProperty * ByteProp = ( UByteProperty * ) Prop ;
// if it's an enum class then we need an explicit cast
if ( ByteProp - > Enum & & ByteProp - > Enum - > GetCppForm ( ) = = UEnum : : ECppForm : : EnumClass )
{
return FString : : Printf ( TEXT ( " (%s)0 " ) , * ByteProp - > GetCPPType ( ) ) ;
}
return TEXT ( " 0 " ) ;
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
else if ( PropClass = = UEnumProperty : : StaticClass ( ) )
{
UEnumProperty * EnumProp = ( UEnumProperty * ) Prop ;
return FString : : Printf ( TEXT ( " (%s)0 " ) , * EnumProp - > Enum - > 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
else if ( PropClass = = UBoolProperty : : StaticClass ( ) )
{
return TEXT ( " false " ) ;
}
else if ( PropClass = = UIntProperty : : StaticClass ( )
2014-03-14 14:13:41 -04:00
| | PropClass = = UFloatProperty : : StaticClass ( )
| | PropClass = = UDoubleProperty : : StaticClass ( ) )
{
return TEXT ( " 0 " ) ;
}
else if ( PropClass = = UNameProperty : : StaticClass ( ) )
{
return TEXT ( " NAME_None " ) ;
}
else if ( PropClass = = UStrProperty : : StaticClass ( ) )
{
return TEXT ( " TEXT( \" \" ) " ) ;
}
else if ( PropClass = = UTextProperty : : StaticClass ( ) )
{
return TEXT ( " FText::GetEmpty() " ) ;
}
else if ( PropClass = = UArrayProperty : : StaticClass ( )
2015-04-21 10:25:59 -04:00
| | PropClass = = UMapProperty : : StaticClass ( )
2016-06-16 11:54:44 -04:00
| | PropClass = = USetProperty : : StaticClass ( )
2014-03-14 14:13:41 -04:00
| | PropClass = = UDelegateProperty : : StaticClass ( )
2014-06-02 14:20:58 -04:00
| | PropClass = = UMulticastDelegateProperty : : StaticClass ( ) )
2014-03-14 14:13:41 -04:00
{
FString Type , ExtendedType ;
Type = Prop - > GetCPPType ( & ExtendedType , CPPF_OptionalValue ) ;
return Type + ExtendedType + TEXT ( " () " ) ;
}
else if ( PropClass = = UStructProperty : : StaticClass ( ) )
{
bool bHasNoOpConstuctor = CastChecked < UStructProperty > ( Prop ) - > HasNoOpConstructor ( ) ;
if ( bInitializer & & bHasNoOpConstuctor )
{
return TEXT ( " ForceInit " ) ;
}
FString Type , ExtendedType ;
Type = Prop - > GetCPPType ( & ExtendedType , CPPF_OptionalValue ) ;
return Type + ExtendedType + ( bHasNoOpConstuctor ? TEXT ( " (ForceInit) " ) : TEXT ( " () " ) ) ;
}
else if ( ObjectProperty )
{
return TEXT ( " NULL " ) ;
}
else if ( PropClass = = UInterfaceProperty : : StaticClass ( ) )
{
return TEXT ( " NULL " ) ;
}
UE_LOG ( LogCompile , Fatal , TEXT ( " GetNullParameterValue - Unhandled property type '%s': %s " ) , * PropClass - > GetName ( ) , * Prop - > GetPathName ( ) ) ;
return TEXT ( " " ) ;
}
2014-12-08 07:30:42 -05:00
FString FNativeClassHeaderGenerator : : GetFunctionReturnString ( UFunction * Function )
{
if ( auto Return = Function - > GetReturnProperty ( ) )
{
FString ExtendedReturnType ;
2014-12-11 11:49:41 -05:00
ForwardDeclarations . Add ( Return ) ;
2014-12-08 07:30:42 -05:00
FString ReturnType = Return - > GetCPPType ( & ExtendedReturnType , CPPF_ArgumentOrReturnValue ) ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder ReplacementText ;
ReplacementText + = ReturnType ;
2014-12-08 07:30:42 -05:00
ApplyAlternatePropertyExportText ( Return , ReplacementText ) ;
return ReplacementText + ExtendedReturnType ;
}
return TEXT ( " void " ) ;
}
/**
* Gets string with function const modifier type .
*
* @ param Function Function to get const modifier of .
* @ return Empty FString if function is non - const , FString ( " const " ) if function is const .
*/
FString GetFunctionConstModifierString ( UFunction * Function )
{
if ( Function - > HasAllFunctionFlags ( FUNC_Const ) )
{
return TEXT ( " const " ) ;
}
return FString ( ) ;
}
2015-04-20 06:19:21 -04:00
/**
* Converts Position within File to Line and Column .
*
* @ param File File contents .
* @ param Position Position in string to convert .
* @ param OutLine Result line .
* @ param OutColumn Result column .
*/
void GetLineAndColumnFromPositionInFile ( const FString & File , int32 Position , int32 & OutLine , int32 & OutColumn )
2014-12-08 07:30:42 -05:00
{
2015-04-20 06:19:21 -04:00
OutLine = 1 ;
OutColumn = 1 ;
int32 i ;
for ( i = 1 ; i < = Position ; + + i )
{
if ( File [ i ] = = ' \n ' )
{
+ + OutLine ;
OutColumn = 0 ;
}
else
{
+ + OutColumn ;
}
}
}
bool FNativeClassHeaderGenerator : : IsMissingVirtualSpecifier ( const FString & SourceFile , int32 FunctionNamePosition ) const
{
auto IsEndOfSearchChar = [ ] ( TCHAR C ) { return ( C = = TEXT ( ' } ' ) ) | | ( C = = TEXT ( ' { ' ) ) | | ( C = = TEXT ( ' ; ' ) ) ; } ;
// Find first occurrence of "}", ";", "{" going backwards from ImplementationPosition.
int32 EndOfSearchCharIndex = SourceFile . FindLastCharByPredicate ( IsEndOfSearchChar , FunctionNamePosition ) ;
check ( EndOfSearchCharIndex ! = INDEX_NONE ) ;
// Then find if there is "virtual" keyword starting from position of found character to ImplementationPosition
return ! HasIdentifierExactMatch ( & SourceFile [ EndOfSearchCharIndex ] , & SourceFile [ FunctionNamePosition ] , TEXT ( " virtual " ) ) ;
}
FString CreateClickableErrorMessage ( const FString & Filename , int32 Line , int32 Column )
{
return FString : : Printf ( TEXT ( " %s(%d,%d): error: " ) , * Filename , Line , Column ) ;
}
void FNativeClassHeaderGenerator : : CheckRPCFunctions ( const FFuncInfo & FunctionData , const FString & ClassName , int32 ImplementationPosition , int32 ValidatePosition , const FUnrealSourceFile & SourceFile )
{
bool bHasImplementation = ImplementationPosition ! = INDEX_NONE ;
bool bHasValidate = ValidatePosition ! = INDEX_NONE ;
2014-12-08 07:30:42 -05:00
auto Function = FunctionData . FunctionReference ;
auto FunctionReturnType = GetFunctionReturnString ( Function ) ;
2015-04-10 06:02:22 -04:00
auto ConstModifier = GetFunctionConstModifierString ( Function ) + TEXT ( " " ) ;
2014-12-08 07:30:42 -05:00
auto bIsNative = Function - > HasAllFunctionFlags ( FUNC_Native ) ;
auto bIsNet = Function - > HasAllFunctionFlags ( FUNC_Net ) ;
auto bIsNetValidate = Function - > HasAllFunctionFlags ( FUNC_NetValidate ) ;
auto bIsNetResponse = Function - > HasAllFunctionFlags ( FUNC_NetResponse ) ;
auto bIsBlueprintEvent = Function - > HasAllFunctionFlags ( FUNC_BlueprintEvent ) ;
bool bNeedsImplementation = ( bIsNet & & ! bIsNetResponse ) | | bIsBlueprintEvent | | bIsNative ;
bool bNeedsValidate = ( bIsNative | | bIsNet ) & & ! bIsNetResponse & & bIsNetValidate ;
check ( bNeedsImplementation | | bNeedsValidate ) ;
auto ParameterString = GetFunctionParameterString ( Function ) ;
2015-04-20 06:19:21 -04:00
const auto & Filename = SourceFile . GetFilename ( ) ;
const auto & FileContent = SourceFile . GetContent ( ) ;
2014-12-08 07:30:42 -05:00
//
// Get string with function specifiers, listing why we need _Implementation or _Validate functions.
//
TArray < FString > FunctionSpecifiers ;
FunctionSpecifiers . Reserve ( 4 ) ;
if ( bIsNative ) { FunctionSpecifiers . Add ( TEXT ( " Native " ) ) ; }
if ( bIsNet ) { FunctionSpecifiers . Add ( TEXT ( " Net " ) ) ; }
if ( bIsBlueprintEvent ) { FunctionSpecifiers . Add ( TEXT ( " BlueprintEvent " ) ) ; }
if ( bIsNetValidate ) { FunctionSpecifiers . Add ( TEXT ( " NetValidate " ) ) ; }
check ( FunctionSpecifiers . Num ( ) > 0 ) ;
//
// Coin static_assert message
//
2015-03-27 18:10:52 -04:00
FUHTStringBuilder AssertMessage ;
2014-12-08 07:30:42 -05:00
AssertMessage . Logf ( TEXT ( " Function %s was marked as %s " ) , * ( Function - > GetName ( ) ) , * FunctionSpecifiers [ 0 ] ) ;
for ( int32 i = 1 ; i < FunctionSpecifiers . Num ( ) ; + + i )
{
AssertMessage . Logf ( TEXT ( " , %s " ) , * FunctionSpecifiers [ i ] ) ;
}
AssertMessage . Logf ( TEXT ( " . " ) ) ;
//
2015-04-20 06:19:21 -04:00
// Check if functions are missing.
2014-12-08 07:30:42 -05:00
//
2015-04-20 06:19:21 -04:00
int32 Line ;
int32 Column ;
GetLineAndColumnFromPositionInFile ( FileContent , FunctionData . InputPos , Line , Column ) ;
2015-04-10 06:02:22 -04:00
if ( bNeedsImplementation & & ! bHasImplementation )
2014-12-08 07:30:42 -05:00
{
2015-04-20 06:19:21 -04:00
FString ErrorPosition = CreateClickableErrorMessage ( Filename , Line , Column ) ;
FString FunctionDecl = FString : : Printf ( TEXT ( " virtual %s %s::%s(%s) %s " ) , * FunctionReturnType , * ClassName , * FunctionData . CppImplName , * ParameterString , * ConstModifier ) ;
FError : : Throwf ( TEXT ( " %s%s Declare function %s " ) , * ErrorPosition , * AssertMessage , * FunctionDecl ) ;
2014-12-08 07:30:42 -05:00
}
2015-04-10 06:02:22 -04:00
if ( bNeedsValidate & & ! bHasValidate )
2014-12-08 07:30:42 -05:00
{
2015-04-20 06:19:21 -04:00
FString ErrorPosition = CreateClickableErrorMessage ( Filename , Line , Column ) ;
FString FunctionDecl = FString : : Printf ( TEXT ( " virtual bool %s::%s(%s) %s " ) , * ClassName , * FunctionData . CppValidationImplName , * ParameterString , * ConstModifier ) ;
FError : : Throwf ( TEXT ( " %s%s Declare function %s " ) , * ErrorPosition , * AssertMessage , * FunctionDecl ) ;
}
//
// If all needed functions are declared, check if they have virtual specifiers.
//
if ( bNeedsImplementation & & bHasImplementation & & IsMissingVirtualSpecifier ( FileContent , ImplementationPosition ) )
{
GetLineAndColumnFromPositionInFile ( FileContent , ImplementationPosition , Line , Column ) ;
FString ErrorPosition = CreateClickableErrorMessage ( Filename , Line , Column ) ;
FString FunctionDecl = FString : : Printf ( TEXT ( " %s %s::%s(%s) %s " ) , * FunctionReturnType , * ClassName , * FunctionData . CppImplName , * ParameterString , * ConstModifier ) ;
FError : : Throwf ( TEXT ( " %sDeclared function %sis not marked as virtual. " ) , * ErrorPosition , * FunctionDecl ) ;
}
if ( bNeedsValidate & & bHasValidate & & IsMissingVirtualSpecifier ( FileContent , ValidatePosition ) )
{
GetLineAndColumnFromPositionInFile ( FileContent , ValidatePosition , Line , Column ) ;
FString ErrorPosition = CreateClickableErrorMessage ( Filename , Line , Column ) ;
FString FunctionDecl = FString : : Printf ( TEXT ( " bool %s::%s(%s) %s " ) , * ClassName , * FunctionData . CppValidationImplName , * ParameterString , * ConstModifier ) ;
FError : : Throwf ( TEXT ( " %sDeclared function %sis not marked as virtual. " ) , * ErrorPosition , * FunctionDecl ) ;
2014-12-08 07:30:42 -05:00
}
}
2015-03-27 18:10:52 -04:00
void FNativeClassHeaderGenerator : : ExportNativeFunctionHeader ( const FFuncInfo & FunctionData , FUHTStringBuilder & HeaderOutput , EExportFunctionType : : Type FunctionType , EExportFunctionHeaderStyle : : Type FunctionHeaderStyle , const TCHAR * ExtraParam )
2014-03-14 14:13:41 -04:00
{
UFunction * Function = FunctionData . FunctionReference ;
const bool bIsDelegate = Function - > HasAnyFunctionFlags ( FUNC_Delegate ) ;
const bool bIsInterface = ! bIsDelegate & & Function - > GetOwnerClass ( ) - > HasAnyClassFlags ( CLASS_Interface ) ;
const bool bIsK2Override = Function - > HasAnyFunctionFlags ( FUNC_BlueprintEvent ) ;
2015-03-27 18:10:52 -04:00
if ( ! bIsDelegate )
{
HeaderOutput + = TEXT ( " \t " ) ;
}
2014-03-14 14:13:41 -04:00
if ( FunctionHeaderStyle = = EExportFunctionHeaderStyle : : Declaration )
{
// cpp implementation of functions never have these appendages
// If the function was marked as 'RequiredAPI', then add the *_API macro prefix. Note that if the class itself
// was marked 'RequiredAPI', this is not needed as C++ will exports all methods automatically.
2015-01-20 09:33:54 -05:00
if ( FunctionType ! = EExportFunctionType : : Event & &
! Function - > GetOwnerClass ( ) - > HasAnyClassFlags ( CLASS_RequiredAPI ) & &
( FunctionData . FunctionExportFlags & FUNCEXPORT_RequiredAPI ) )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
HeaderOutput . Log ( GetAPIString ( ) ) ;
2014-03-14 14:13:41 -04:00
}
if ( FunctionType = = EExportFunctionType : : Interface )
{
HeaderOutput . Log ( TEXT ( " static " ) ) ;
}
else if ( bIsK2Override )
{
HeaderOutput . Log ( TEXT ( " virtual " ) ) ;
}
// if the owning class is an interface class
else if ( bIsInterface )
{
HeaderOutput . Log ( TEXT ( " virtual " ) ) ;
}
// this is not an event, the function is not a static function and the function is not marked final
else if ( FunctionType ! = EExportFunctionType : : Event & & ! Function - > HasAnyFunctionFlags ( FUNC_Static ) & & ! ( FunctionData . FunctionExportFlags & FUNCEXPORT_Final ) )
{
HeaderOutput . Log ( TEXT ( " virtual " ) ) ;
}
else if ( FunctionData . FunctionExportFlags & FUNCEXPORT_Inline )
{
HeaderOutput . Log ( TEXT ( " inline " ) ) ;
}
}
if ( auto Return = Function - > GetReturnProperty ( ) )
{
FString ExtendedReturnType ;
FString ReturnType = Return - > GetCPPType ( & ExtendedReturnType , ( FunctionHeaderStyle = = EExportFunctionHeaderStyle : : Definition & & ( FunctionType ! = EExportFunctionType : : Interface ) ? CPPF_Implementation : 0 ) | CPPF_ArgumentOrReturnValue ) ;
2014-12-11 11:49:41 -05:00
ForwardDeclarations . Add ( Return ) ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder ReplacementText ;
ReplacementText + = ReturnType ;
2014-03-14 14:13:41 -04:00
ApplyAlternatePropertyExportText ( Return , ReplacementText ) ;
HeaderOutput . Logf ( TEXT ( " %s%s " ) , * ReplacementText , * ExtendedReturnType ) ;
}
else
{
HeaderOutput . Log ( TEXT ( " void " ) ) ;
}
FString FunctionName ;
if ( FunctionHeaderStyle = = EExportFunctionHeaderStyle : : Definition )
{
2014-06-02 07:02:29 -04:00
FunctionName = FString ( NameLookupCPP . GetNameCPP ( CastChecked < UClass > ( Function - > GetOuter ( ) ) , bIsInterface | | FunctionType = = EExportFunctionType : : Interface ) ) + TEXT ( " :: " ) ;
2014-03-14 14:13:41 -04:00
}
if ( FunctionType = = EExportFunctionType : : Interface )
{
FunctionName + = FString : : Printf ( TEXT ( " Execute_%s " ) , * Function - > GetName ( ) ) ;
}
else if ( FunctionType = = EExportFunctionType : : Event )
{
FunctionName + = FunctionData . MarshallAndCallName ;
}
else
{
FunctionName + = FunctionData . CppImplName ;
}
HeaderOutput . Logf ( TEXT ( " %s( " ) , * FunctionName ) ;
int32 ParmCount = 0 ;
// Emit extra parameter if we have one
if ( ExtraParam )
{
HeaderOutput + = ExtraParam ;
+ + ParmCount ;
}
for ( TFieldIterator < UProperty > It ( Function ) ; It & & ( It - > PropertyFlags & ( CPF_Parm | CPF_ReturnParm ) ) = = CPF_Parm ; + + It )
{
UProperty * Property = * It ;
2014-12-11 11:49:41 -05:00
ForwardDeclarations . Add ( Property ) ;
2015-01-20 09:33:54 -05:00
2014-03-14 14:13:41 -04:00
if ( ParmCount + + )
{
HeaderOutput . Log ( TEXT ( " , " ) ) ;
}
2015-03-27 18:10:52 -04:00
FUHTStringBuilder PropertyText ;
2014-03-14 14:13:41 -04:00
const FString * Dim = GArrayDimensions . Find ( Property ) ;
Property - > ExportCppDeclaration ( PropertyText , EExportedDeclaration : : Parameter , Dim ? * * Dim : NULL ) ;
ApplyAlternatePropertyExportText ( Property , PropertyText ) ;
HeaderOutput + = PropertyText ;
}
HeaderOutput . Log ( TEXT ( " ) " ) ) ;
if ( FunctionType ! = EExportFunctionType : : Interface )
{
if ( ! bIsDelegate & & Function - > HasAllFunctionFlags ( FUNC_Const ) )
{
HeaderOutput . Log ( TEXT ( " const " ) ) ;
}
if ( bIsInterface & & FunctionHeaderStyle = = EExportFunctionHeaderStyle : : Declaration )
{
// all methods in interface classes are pure virtuals
HeaderOutput . Log ( TEXT ( " =0 " ) ) ;
}
}
}
/**
* Export the actual internals to a standard thunk function
*
* @ param RPCWrappers output device for writing
* @ param FunctionData function data for the current function
* @ param Parameters list of parameters in the function
* @ param Return return parameter for the function
2015-03-17 05:19:11 -04:00
* @ param DeprecationWarningOutputDevice Device to output deprecation warnings for _Validate and _Implementation functions .
2014-03-14 14:13:41 -04:00
*/
2015-03-27 18:10:52 -04:00
void FNativeClassHeaderGenerator : : ExportFunctionThunk ( FUHTStringBuilder & RPCWrappers , UFunction * Function , const FFuncInfo & FunctionData , const TArray < UProperty * > & Parameters , UProperty * Return , FUHTStringBuilder & DeprecationWarningOutputDevice )
2014-03-14 14:13:41 -04:00
{
// export the GET macro for this parameter
FString ParameterList ;
2014-12-08 07:30:42 -05:00
for ( int32 ParameterIndex = 0 ; ParameterIndex < Parameters . Num ( ) ; ParameterIndex + + )
2014-03-14 14:13:41 -04:00
{
UProperty * Param = Parameters [ ParameterIndex ] ;
2014-12-11 11:49:41 -05:00
ForwardDeclarations . Add ( Param ) ;
2015-01-20 09:33:54 -05:00
2014-03-14 14:13:41 -04:00
FString EvalBaseText = TEXT ( " P_GET_ " ) ; // e.g. P_GET_STR
FString EvalModifierText ; // e.g. _REF
FString EvalParameterText ; // e.g. (UObject*,NULL)
FString TypeText ;
2015-07-10 08:56:36 -04:00
2014-12-08 07:30:42 -05:00
if ( Param - > ArrayDim > 1 )
2014-03-14 14:13:41 -04:00
{
EvalBaseText + = TEXT ( " ARRAY " ) ;
TypeText = Param - > GetCPPType ( ) ;
}
else
{
EvalBaseText + = Param - > GetCPPMacroType ( TypeText ) ;
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
UArrayProperty * ArrayProperty = Cast < UArrayProperty > ( Param ) ;
if ( ArrayProperty )
{
UInterfaceProperty * InterfaceProperty = Cast < UInterfaceProperty > ( ArrayProperty - > Inner ) ;
if ( InterfaceProperty )
{
FString InterfaceTypeText ;
InterfaceProperty - > GetCPPMacroType ( InterfaceTypeText ) ;
TypeText + = FString : : Printf ( TEXT ( " <%s> " ) , * InterfaceTypeText ) ;
}
}
2014-03-14 14:13:41 -04:00
}
2015-07-10 08:56:36 -04:00
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
bool bPassAsNoPtr = Param - > HasAllPropertyFlags ( CPF_UObjectWrapper | CPF_OutParm ) & & Param - > IsA ( UClassProperty : : StaticClass ( ) ) ;
if ( bPassAsNoPtr )
2015-07-10 08:56:36 -04:00
{
TypeText = Param - > GetCPPType ( ) ;
}
2015-03-27 18:10:52 -04:00
FUHTStringBuilder ReplacementText ;
ReplacementText + = TypeText ;
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
2014-03-14 14:13:41 -04:00
ApplyAlternatePropertyExportText ( Param , ReplacementText ) ;
TypeText = ReplacementText ;
FString DefaultValueText ;
2015-04-13 13:43:58 -04:00
FString ParamPrefix = TEXT ( " Z_Param_ " ) ;
2014-03-14 14:13:41 -04:00
// if this property is an out parm, add the REF tag
if ( Param - > PropertyFlags & CPF_OutParm )
{
2015-07-10 08:56:36 -04:00
if ( ! bPassAsNoPtr )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
EvalModifierText + = TEXT ( " _REF " ) ;
2015-07-10 08:56:36 -04:00
}
else
{
// Parameters passed as TSubclassOf<Class>& shouldn't have asterisk added.
EvalModifierText + = TEXT ( " _REF_NO_PTR " ) ;
}
2015-04-13 13:43:58 -04:00
ParamPrefix + = TEXT ( " Out_ " ) ;
2014-03-14 14:13:41 -04:00
}
// if this property requires a specialization, add a comma to the type name so we can print it out easily
2014-12-08 07:30:42 -05:00
if ( TypeText ! = TEXT ( " " ) )
2014-03-14 14:13:41 -04:00
{
TypeText + = TCHAR ( ' , ' ) ;
}
FString ParamName = ParamPrefix + Param - > GetName ( ) ;
EvalParameterText = FString : : Printf ( TEXT ( " (%s%s%s) " ) , * TypeText , * ParamName , * DefaultValueText ) ;
2015-03-27 18:10:52 -04:00
RPCWrappers . Logf ( TEXT ( " \t \t %s%s%s; " ) LINE_TERMINATOR , * EvalBaseText , * EvalModifierText , * EvalParameterText ) ;
2014-03-14 14:13:41 -04:00
// add this property to the parameter list string
2014-12-08 07:30:42 -05:00
if ( ParameterList . Len ( ) )
2014-03-14 14:13:41 -04:00
{
ParameterList + = TCHAR ( ' , ' ) ;
}
{
2014-12-08 07:30:42 -05:00
UDelegateProperty * DelegateProp = Cast < UDelegateProperty > ( Param ) ;
if ( DelegateProp ! = NULL )
2014-03-14 14:13:41 -04:00
{
// For delegates, add an explicit conversion to the specific type of delegate before passing it along
2014-12-08 07:30:42 -05:00
const FString FunctionName = DelegateProp - > SignatureFunction - > GetName ( ) . LeftChop ( FString ( HEADER_GENERATED_DELEGATE_SIGNATURE_SUFFIX ) . Len ( ) ) ;
const FString CPPDelegateName = FString ( TEXT ( " F " ) ) + FunctionName ;
ParamName = FString : : Printf ( TEXT ( " %s(%s) " ) , * CPPDelegateName , * ParamName ) ;
2014-03-14 14:13:41 -04:00
}
}
{
2014-12-08 07:30:42 -05:00
UMulticastDelegateProperty * MulticastDelegateProp = Cast < UMulticastDelegateProperty > ( Param ) ;
if ( MulticastDelegateProp ! = NULL )
2014-03-14 14:13:41 -04:00
{
// For delegates, add an explicit conversion to the specific type of delegate before passing it along
2014-12-08 07:30:42 -05:00
const FString FunctionName = MulticastDelegateProp - > SignatureFunction - > GetName ( ) . LeftChop ( FString ( HEADER_GENERATED_DELEGATE_SIGNATURE_SUFFIX ) . Len ( ) ) ;
const FString CPPDelegateName = FString ( TEXT ( " F " ) ) + FunctionName ;
ParamName = FString : : Printf ( TEXT ( " %s(%s) " ) , * CPPDelegateName , * ParamName ) ;
2014-03-14 14:13:41 -04:00
}
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
UEnum * Enum = nullptr ;
2014-08-12 08:51:25 -04:00
UByteProperty * ByteProp = Cast < UByteProperty > ( Param ) ;
if ( ByteProp & & ByteProp - > Enum )
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
{
Enum = ByteProp - > Enum ;
}
else if ( Param - > IsA < UEnumProperty > ( ) )
{
Enum = ( ( UEnumProperty * ) Param ) - > Enum ;
}
if ( Enum )
2014-03-14 14:13:41 -04:00
{
// For enums, add an explicit conversion
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
if ( ! ( Param - > PropertyFlags & CPF_OutParm ) )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
ParamName = FString : : Printf ( TEXT ( " %s(%s) " ) , * Enum - > CppType , * ParamName ) ;
2014-03-14 14:13:41 -04:00
}
else
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
if ( Enum - > GetCppForm ( ) = = UEnum : : ECppForm : : EnumClass )
2014-12-15 15:29:48 -05:00
{
// If we're an enum class don't require the wrapper
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
ParamName = FString : : Printf ( TEXT ( " (%s&)(%s) " ) , * Enum - > CppType , * ParamName ) ;
2014-12-15 15:29:48 -05:00
}
else
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
ParamName = FString : : Printf ( TEXT ( " (TEnumAsByte<%s>&)(%s) " ) , * Enum - > CppType , * ParamName ) ;
2014-12-15 15:29:48 -05:00
}
2014-03-14 14:13:41 -04:00
}
}
ParameterList + = ParamName ;
}
2015-03-27 18:10:52 -04:00
RPCWrappers + = TEXT ( " \t \t P_FINISH; " ) LINE_TERMINATOR ;
2016-01-25 13:25:51 -05:00
RPCWrappers + = TEXT ( " \t \t P_NATIVE_BEGIN; " ) LINE_TERMINATOR ;
2014-03-14 14:13:41 -04:00
2014-12-11 11:49:41 -05:00
auto ClassRange = ClassDefinitionRange ( ) ;
2015-01-20 09:33:54 -05:00
if ( ClassDefinitionRanges . Contains ( Function - > GetOwnerClass ( ) ) )
2014-12-11 11:49:41 -05:00
{
2015-01-20 09:33:54 -05:00
ClassRange = ClassDefinitionRanges [ Function - > GetOwnerClass ( ) ] ;
2015-07-15 13:24:05 -04:00
ClassRange . Validate ( ) ;
2014-12-11 11:49:41 -05:00
}
auto ClassStart = ClassRange . Start ;
auto ClassEnd = ClassRange . End ;
auto ClassDefinition = FString ( ClassEnd - ClassStart , ClassStart ) ;
2015-01-20 09:33:54 -05:00
auto ClassName = Function - > GetOwnerClass ( ) - > GetName ( ) ;
2014-12-11 11:49:41 -05:00
auto FunctionName = Function - > GetName ( ) ;
2015-04-10 06:02:22 -04:00
bool bHasImplementation = HasIdentifierExactMatch ( ClassDefinition , FunctionData . CppImplName ) ;
bool bHasValidate = HasIdentifierExactMatch ( ClassDefinition , FunctionData . CppValidationImplName ) ;
2014-12-11 11:49:41 -05:00
auto bShouldEnableImplementationDeprecation =
// Enable deprecation warnings only if GENERATED_BODY is used inside class or interface (not GENERATED_UCLASS_BODY etc.)
ClassRange . bHasGeneratedBody
2015-02-06 09:54:41 -05:00
// and implementation function is called, but not the one declared by user
& & ( FunctionData . CppImplName ! = FunctionName & & ! bHasImplementation ) ;
2014-12-11 11:49:41 -05:00
auto bShouldEnableValidateDeprecation =
// Enable deprecation warnings only if GENERATED_BODY is used inside class or interface (not GENERATED_UCLASS_BODY etc.)
ClassRange . bHasGeneratedBody
2015-02-06 09:54:41 -05:00
// and validation function is called
& & ( FunctionData . FunctionFlags & FUNC_NetValidate ) & & ! bHasValidate ;
2014-12-11 11:49:41 -05:00
//Emit warning here if necessary
2015-03-27 18:10:52 -04:00
FUHTStringBuilder FunctionDeclaration ;
2014-12-11 11:49:41 -05:00
ExportNativeFunctionHeader ( FunctionData , FunctionDeclaration , EExportFunctionType : : Function , EExportFunctionHeaderStyle : : Declaration ) ;
FunctionDeclaration . Trim ( ) ;
2014-03-14 14:13:41 -04:00
// Call the validate function if there is one
2014-12-08 07:30:42 -05:00
if ( ! ( FunctionData . FunctionExportFlags & FUNCEXPORT_CppStatic ) & & ( FunctionData . FunctionFlags & FUNC_NetValidate ) )
2014-03-14 14:13:41 -04:00
{
2015-03-27 18:10:52 -04:00
RPCWrappers . Logf ( TEXT ( " \t \t if (!this->%s(%s)) " ) LINE_TERMINATOR , * FunctionData . CppValidationImplName , * ParameterList ) ;
RPCWrappers . Logf ( TEXT ( " \t \t { " ) LINE_TERMINATOR ) ;
RPCWrappers . Logf ( TEXT ( " \t \t \t RPC_ValidateFailed(TEXT( \" %s \" )); " ) LINE_TERMINATOR , * FunctionData . CppValidationImplName ) ;
RPCWrappers . Logf ( TEXT ( " \t \t \t return; " ) LINE_TERMINATOR ) ; // If we got here, the validation function check failed
RPCWrappers . Logf ( TEXT ( " \t \t } " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
}
// write out the return value
2015-03-27 18:10:52 -04:00
RPCWrappers . Log ( TEXT ( " \t \t " ) ) ;
2014-12-08 07:30:42 -05:00
if ( Return ! = NULL )
2014-03-14 14:13:41 -04:00
{
FString ReturnType , ReturnExtendedType ;
2014-12-11 11:49:41 -05:00
ForwardDeclarations . Add ( Return ) ;
2014-03-14 14:13:41 -04:00
ReturnType = Return - > GetCPPType ( & ReturnExtendedType ) ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder ReplacementText ;
ReplacementText + = ReturnType ;
2014-03-14 14:13:41 -04:00
ApplyAlternatePropertyExportText ( Return , ReplacementText ) ;
ReturnType = ReplacementText ;
2015-04-13 13:43:58 -04:00
RPCWrappers . Logf ( TEXT ( " *(%s%s*) " ) TEXT ( PREPROCESSOR_TO_STRING ( RESULT_PARAM ) ) TEXT ( " = " ) , * ReturnType , * ReturnExtendedType ) ;
2014-03-14 14:13:41 -04:00
}
// export the call to the C++ version
if ( FunctionData . FunctionExportFlags & FUNCEXPORT_CppStatic )
{
2015-03-27 18:10:52 -04:00
RPCWrappers . Logf ( TEXT ( " %s::%s(%s); " ) LINE_TERMINATOR , NameLookupCPP . GetNameCPP ( Function - > GetOwnerClass ( ) ) , * FunctionData . CppImplName , * ParameterList ) ;
2014-03-14 14:13:41 -04:00
}
else
{
2015-03-27 18:10:52 -04:00
RPCWrappers . Logf ( TEXT ( " this->%s(%s); " ) LINE_TERMINATOR , * FunctionData . CppImplName , * ParameterList ) ;
2014-03-14 14:13:41 -04:00
}
2016-01-25 13:25:51 -05:00
RPCWrappers + = TEXT ( " \t \t P_NATIVE_END; " ) LINE_TERMINATOR ;
2014-03-14 14:13:41 -04:00
}
2014-12-08 07:30:42 -05:00
FString FNativeClassHeaderGenerator : : GetFunctionParameterString ( UFunction * Function )
{
FString ParameterList ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder PropertyText ;
2014-12-08 07:30:42 -05:00
for ( auto Property : TFieldRange < UProperty > ( Function ) )
{
2014-12-11 11:49:41 -05:00
ForwardDeclarations . Add ( Property ) ;
2014-12-08 07:30:42 -05:00
if ( ( Property - > PropertyFlags & ( CPF_Parm | CPF_ReturnParm ) ) ! = CPF_Parm )
{
break ;
}
if ( ParameterList . Len ( ) )
{
ParameterList + = TEXT ( " , " ) ;
}
auto Dim = GArrayDimensions . Find ( Property ) ;
2014-12-11 16:29:40 -05:00
Property - > ExportCppDeclaration ( PropertyText , EExportedDeclaration : : Parameter , Dim ? * * Dim : NULL , 0 , true ) ;
2014-12-08 07:30:42 -05:00
ApplyAlternatePropertyExportText ( Property , PropertyText ) ;
ParameterList + = PropertyText ;
2015-03-27 18:10:52 -04:00
PropertyText . Reset ( ) ;
2014-12-08 07:30:42 -05:00
}
return ParameterList ;
}
2015-01-20 09:33:54 -05:00
void FNativeClassHeaderGenerator : : ExportNativeFunctions ( FUnrealSourceFile & SourceFile , UClass * Class , FClassMetaData * ClassData )
2014-03-14 14:13:41 -04:00
{
2015-03-27 18:10:52 -04:00
FUHTStringBuilder RPCWrappers ;
2015-04-10 06:02:22 -04:00
FUHTStringBuilder AutogeneratedBlueprintFunctionDeclarations ;
FUHTStringBuilder AutogeneratedBlueprintFunctionDeclarationsOnlyNotDeclared ;
auto ClassName = Class - > GetName ( ) ;
2014-03-14 14:13:41 -04:00
2014-12-11 11:49:41 -05:00
auto ClassRange = ClassDefinitionRange ( ) ;
2015-01-20 09:33:54 -05:00
if ( ClassDefinitionRanges . Contains ( Class ) )
2014-12-11 11:49:41 -05:00
{
2015-01-20 09:33:54 -05:00
ClassRange = ClassDefinitionRanges [ Class ] ;
2015-07-15 13:24:05 -04:00
ClassRange . Validate ( ) ;
2014-12-11 11:49:41 -05:00
}
2014-03-14 14:13:41 -04:00
// export the C++ stubs
2015-01-20 09:33:54 -05:00
2015-09-21 07:53:49 -04:00
for ( UFunction * Function : TFieldRange < UFunction > ( Class , EFieldIteratorFlags : : ExcludeSuper ) )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
if ( ! ( Function - > FunctionFlags & FUNC_Native ) )
{
continue ;
}
auto * CompilerInfo = FFunctionData : : FindForFunction ( Function ) ;
2014-12-08 07:30:42 -05:00
const FFuncInfo & FunctionData = CompilerInfo - > GetFunctionData ( ) ;
// Custom thunks don't get any C++ stub function generated
if ( FunctionData . FunctionExportFlags & FUNCEXPORT_CustomThunk )
2015-01-20 09:33:54 -05:00
{
2014-12-08 07:30:42 -05:00
continue ;
2015-01-20 09:33:54 -05:00
}
2014-12-08 07:30:42 -05:00
2015-03-27 18:10:52 -04:00
FUHTStringBuilder & DestinationForDecl = RPCWrappers ;
2014-12-08 07:30:42 -05:00
// Should we emit these to RPC wrappers or just ignore them?
const bool bWillBeProgrammerTyped = FunctionData . CppImplName = = Function - > GetName ( ) ;
if ( ! bWillBeProgrammerTyped )
2014-03-14 14:13:41 -04:00
{
2014-12-11 11:49:41 -05:00
auto ClassStart = ClassRange . Start ;
auto ClassEnd = ClassRange . End ;
auto ClassDefinition = FString ( ClassEnd - ClassStart , ClassStart ) ;
auto FunctionName = Function - > GetName ( ) ;
2015-04-20 06:19:21 -04:00
int32 ClassDefinitionStartPosition = ClassStart - * SourceFile . GetContent ( ) ;
2014-12-11 11:49:41 -05:00
2015-04-20 06:19:21 -04:00
int32 ImplementationPosition = FindIdentifierExactMatch ( ClassDefinition , FunctionData . CppImplName ) ;
if ( ImplementationPosition ! = INDEX_NONE )
{
ImplementationPosition + = ClassDefinitionStartPosition ;
}
int32 ValidatePosition = FindIdentifierExactMatch ( ClassDefinition , FunctionData . CppValidationImplName ) ;
if ( ValidatePosition ! = INDEX_NONE )
{
ValidatePosition + = ClassDefinitionStartPosition ;
}
bool bHasImplementation = ImplementationPosition ! = INDEX_NONE ;
bool bHasValidate = ValidatePosition ! = INDEX_NONE ;
2014-12-11 11:49:41 -05:00
//Emit warning here if necessary
2015-03-27 18:10:52 -04:00
FUHTStringBuilder FunctionDeclaration ;
2014-12-11 11:49:41 -05:00
ExportNativeFunctionHeader ( FunctionData , FunctionDeclaration , EExportFunctionType : : Function , EExportFunctionHeaderStyle : : Declaration ) ;
FunctionDeclaration . Log ( TEXT ( " ; \r \n " ) ) ;
2014-03-14 14:13:41 -04:00
// Declare validation function if needed
2014-12-08 07:30:42 -05:00
if ( FunctionData . FunctionFlags & FUNC_NetValidate )
2014-03-14 14:13:41 -04:00
{
2014-12-08 07:30:42 -05:00
FString ParameterList = GetFunctionParameterString ( Function ) ;
2014-08-19 09:44:20 -04:00
2014-12-08 07:30:42 -05:00
auto Virtual = ( ! FunctionData . FunctionReference - > HasAnyFunctionFlags ( FUNC_Static ) & & ! ( FunctionData . FunctionExportFlags & FUNCEXPORT_Final ) ) ? TEXT ( " virtual " ) : TEXT ( " " ) ;
2015-03-17 05:19:11 -04:00
FStringOutputDevice ValidDecl ;
ValidDecl . Logf ( TEXT ( " \t %s bool %s(%s); \r \n " ) , Virtual , * FunctionData . CppValidationImplName , * ParameterList ) ;
AutogeneratedBlueprintFunctionDeclarations . Log ( * ValidDecl ) ;
2014-12-11 11:49:41 -05:00
if ( ! bHasValidate )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
AutogeneratedBlueprintFunctionDeclarationsOnlyNotDeclared . Logf ( TEXT ( " %s " ) , * ValidDecl ) ;
2014-12-11 11:49:41 -05:00
}
2014-03-14 14:13:41 -04:00
}
2014-12-11 11:49:41 -05:00
AutogeneratedBlueprintFunctionDeclarations . Log ( * FunctionDeclaration ) ;
2015-02-06 09:54:41 -05:00
if ( ( FunctionData . CppImplName ! = FunctionName & & ! bHasImplementation ) )
2014-03-14 14:13:41 -04:00
{
2014-12-11 11:49:41 -05:00
AutogeneratedBlueprintFunctionDeclarationsOnlyNotDeclared . Log ( * FunctionDeclaration ) ;
2014-03-14 14:13:41 -04:00
}
2014-12-11 11:49:41 -05:00
2015-04-10 06:02:22 -04:00
// Versions that skip function autodeclaration throw an error when a function is missing.
if ( ( SourceFile . GetGeneratedCodeVersionForStruct ( Class ) > EGeneratedCodeVersion : : V1 ) & & ClassRange . bHasGeneratedBody )
{
2015-04-20 06:19:21 -04:00
auto Name = Class - > HasAnyClassFlags ( CLASS_Interface ) ? * ( FString ( TEXT ( " I " ) ) + ClassName ) : NameLookupCPP . GetNameCPP ( Class ) ;
CheckRPCFunctions ( FunctionData , Name , ImplementationPosition , ValidatePosition , SourceFile ) ;
2015-04-10 06:02:22 -04:00
}
2014-03-14 14:13:41 -04:00
}
2014-12-08 07:30:42 -05:00
if ( bMultiLineUFUNCTION )
{
RPCWrappers . Log ( TEXT ( " \r \n " ) ) ;
}
// if this function was originally declared in a base class, and it isn't a static function,
// only the C++ function header will be exported
if ( ! ShouldExportFunction ( Function ) )
{
continue ;
}
// export the script wrappers
2015-03-27 18:10:52 -04:00
RPCWrappers . Logf ( TEXT ( " \t DECLARE_FUNCTION(%s) " ) , * FunctionData . UnMarshallAndCallName ) ;
RPCWrappers + = LINE_TERMINATOR TEXT ( " \t { " ) LINE_TERMINATOR ;
2014-12-08 07:30:42 -05:00
auto Parameters = GetFunctionParmsAndReturn ( FunctionData . FunctionReference ) ;
2015-03-17 05:19:11 -04:00
ExportFunctionThunk ( RPCWrappers , Function , FunctionData , Parameters . Parms , Parameters . Return , AutogeneratedBlueprintFunctionDeclarationsOnlyNotDeclared ) ;
2014-12-08 07:30:42 -05:00
2015-03-27 18:10:52 -04:00
RPCWrappers + = TEXT ( " \t } " ) LINE_TERMINATOR ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
FString MacroName = SourceFile . GetGeneratedMacroName ( ClassData , TEXT ( " _RPC_WRAPPERS " ) ) ;
WriteMacro ( GeneratedHeaderText , MacroName , AutogeneratedBlueprintFunctionDeclarations + RPCWrappers ) ;
2015-03-27 18:10:52 -04:00
InClassMacroCalls . Logf ( TEXT ( " \t %s \r \n " ) , * MacroName ) ;
2014-12-08 07:30:42 -05:00
// Put static checks before RPCWrappers to get proper messages from static asserts before compiler errors.
2015-01-20 09:33:54 -05:00
FString NoPureDeclsMacroName = SourceFile . GetGeneratedMacroName ( ClassData , TEXT ( " _RPC_WRAPPERS_NO_PURE_DECLS " ) ) ;
2015-04-10 06:02:22 -04:00
if ( SourceFile . GetGeneratedCodeVersionForStruct ( Class ) > EGeneratedCodeVersion : : V1 )
{
WriteMacro ( GeneratedHeaderText , NoPureDeclsMacroName , RPCWrappers ) ;
}
else
{
WriteMacro ( GeneratedHeaderText , NoPureDeclsMacroName , AutogeneratedBlueprintFunctionDeclarationsOnlyNotDeclared + RPCWrappers ) ;
}
2015-03-27 18:10:52 -04:00
InClassNoPureDeclsMacroCalls . Logf ( TEXT ( " \t %s \r \n " ) , * NoPureDeclsMacroName ) ;
2014-03-14 14:13:41 -04:00
}
/**
* Exports the methods which trigger UnrealScript events and delegates .
*
* @ param CallbackFunctions the functions to export
*/
2015-01-20 09:33:54 -05:00
TArray < UFunction * > FNativeClassHeaderGenerator : : ExportCallbackFunctions ( FUnrealSourceFile & SourceFile , UClass * Class , FClassMetaData * ClassData )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
TArray < UFunction * > CallbackFunctions ;
2014-03-14 14:13:41 -04:00
2015-09-21 07:53:49 -04:00
for ( UFunction * Function : TFieldRange < UFunction > ( Class , EFieldIteratorFlags : : ExcludeSuper ) )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
if ( ( Function - > FunctionFlags & FUNC_Event ) & & Function - > GetSuperFunction ( ) = = nullptr )
{
CallbackFunctions . Add ( Function ) ;
}
}
2015-03-27 18:10:52 -04:00
FUHTStringBuilder RPCWrappers ;
FUHTStringBuilder RPCWrappersCPP ;
2015-01-20 09:33:54 -05:00
if ( CallbackFunctions . Num ( ) = = 0 )
{
// Early out.
return CallbackFunctions ;
2014-03-14 14:13:41 -04:00
}
CallbackFunctions . Sort ( ) ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder UClassMacroContent ;
2015-01-20 09:33:54 -05:00
// export parameters structs for all events and delegates
2015-03-27 18:10:52 -04:00
ExportEventParms ( SourceFile . GetScope ( ) . Get ( ) , CallbackFunctions , UClassMacroContent , /*Indent=*/ 1 , /*bOutputConstructor=*/ true ) ;
2015-01-20 09:33:54 -05:00
FString MacroName = SourceFile . GetGeneratedMacroName ( ClassData , TEXT ( " _EVENT_PARMS " ) ) ;
WriteMacro ( GeneratedHeaderText , MacroName , UClassMacroContent ) ;
2015-03-27 18:10:52 -04:00
PrologMacroCalls . Logf ( TEXT ( " \t %s \r \n " ) , * MacroName ) ;
2015-01-20 09:33:54 -05:00
// export .proto files for any net service functions
2015-11-18 16:20:49 -05:00
ExportProtoMessage ( CallbackFunctions ) ;
2015-01-20 09:33:54 -05:00
// export .java files for any net service functions
ExportMCPMessage ( CallbackFunctions , ClassData ) ;
for ( int32 CallbackIndex = 0 ; CallbackIndex < CallbackFunctions . Num ( ) ; CallbackIndex + + )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
UFunction * Function = CallbackFunctions [ CallbackIndex ] ;
2014-03-14 14:13:41 -04:00
// Never expecting to export delegate functions this way
2015-01-20 09:33:54 -05:00
check ( ! Function - > HasAnyFunctionFlags ( FUNC_Delegate ) ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
auto * CompilerInfo = FFunctionData : : FindForFunction ( Function ) ;
2014-03-14 14:13:41 -04:00
// cache the TCHAR* for a few strings we'll use a lot here
FString FunctionName = Function - > GetName ( ) ;
2015-01-20 09:33:54 -05:00
GeneratedHeaderText . Logf ( TEXT ( " extern %s FName %s_%s; " ) LINE_TERMINATOR , * GetAPIString ( ) , * API , * FunctionName ) ;
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2781504 on 2015/11/25 by Mike.Beach
Guarding against invalid nodes for deferred graph node actions (add, remove, select), by using TWeakObjectPtr instead of raw UEdGraphNode pointers.
#jira UE-23371
#codereview Dan.OConnor
Change 2781513 on 2015/11/25 by Michael.Schoell
Find-in-Blueprints optimized gathering.
Size of data has shrunk in the Asset Registry by up to one fifth the old size!
Performance moderately improved.
Load and save times of Blueprints increased, less redundant gathering of searchable data.
#jira UE-22928 - Optimize Find-in-Blueprints Gathering of Searchable Data
Change 2781517 on 2015/11/25 by Michael.Schoell
Marked FTimerHandle::Handle as a UPROPERTY(transient) so that Blueprints can check the equality of two instances of the structure.
#jira UE-23136 - Remove Item Node Removes All Objects in an Array
Change 2781804 on 2015/11/26 by Maciej.Mroz
Changed ConformImplementedEvents.
#jira UE-23738 BP_RiftMage_Ultimate fails to convert during cooking
#codereview Phillip.Kavan, Mike.Beach
Change 2781821 on 2015/11/26 by Ben.Cosh
This reinstates the blueprint debugging keymaps and adds additional functionality for step over and step out as key maps in the PIE world controls.
#UEBP-66 - Blueprint debug keymappings
#UE-16817 - Add step-in, step-over, and run until here functions for breakpoints
#UE-12481 - The F10 key doesn't work for stepping blueprint debugging
#Branch UE4
#Proj GraphEditor, Kismet, UnrealEd, CoreUObject, Slate
reviewedby chris.wood
Change 2781861 on 2015/11/26 by Maciej.Mroz
UE-23626 Converted tower defense game - you cannot click to place towers
CodeGenerator generates overriden exported names for events and functions.
#codereview Dan.Oconnor, Steve.Robb
Change 2782798 on 2015/11/30 by Maciej.Mroz
BP C++ conversion: components from SCS calls AttachTo (with ParentSocket parameter).
#jira UE-23862 Pawns in TowerDefenseGame don't move in converted build
#codereview Phillip.Kavan, Mike.Beach, Dan.Oconnor
Change 2782881 on 2015/11/30 by Michael.Schoell
Fixed ensure when promoting function graphs from interfaces during interface removal.
#jira UE-23717 - Ensure removing an implemented interface when transfering functions
Change 2783041 on 2015/11/30 by Maciej.Mroz
BP C++ conversion: All variables from Event Graph are listed as class properties.
#jira UE-23629 Converted tower defense game - Cam scrolls to upper left when mouse leaves window
#codereview Mike.Beach, Dan.Oconnor
Change 2783080 on 2015/11/30 by Michael.Schoell
Removing an interface function's output parameters will no longer cause Blueprints implementing the function to error.
Functions expected as event overrides will accept function graph implementations and give a warning informing that it is unexpected.
All function graphs (interfaces, interface implementations, overrides) can be duplicated. Parent function calls will be removed.
Duplicating graphs will correct names of objects in child Blueprints.
Function overrides of interfaces expected as an event can be deleted.
Duplicating graphs while in PIE is no longer possible.
When removing an interface, the operation can now be canceled.
#jira UE-13335 - Inside a BP Interface, changing a Function output to an input will cause a compile error in the reference bp
Change 2783338 on 2015/11/30 by Michael.Schoell
New output pins on function result nodes will properly fill out with valid default values.
All invalid pins will auto-validate themselves on node reconstruction when opening the Blueprint.
#jira UE-1928 - BLUEPRINTS: Default value not supplied for output parameters of function
Change 2783742 on 2015/11/30 by Phillip.Kavan
[UE-15463] Add special-case handling for failed imports of BPGC-owned component archetype objects on level load.
change summary:
- modified FLinkerLoad::VerifyImport() to customize the load error messaging for missing component archetype objects
Change 2784652 on 2015/12/01 by Ben.Cosh
Fix for crash whilst undoing the creation of a macro and currently displaying the tooltip in the blueprint editor.
#UE-23955 - Adding a macro graph through MyBlueprint and then calling undo causes a crash updating the macro tooltip.
#Branch UE4
#Proj Kismet
#CodeReview Chris.Wood
Change 2784834 on 2015/12/01 by Michael.Schoell
Added functions to convert from string to: Vector, Vector2D, Rotator, Color.
#jira UE-23761 - GitHub 1795 : [KismetStringLibrary] Convert String Back Into Vector, Rotator, Float, Adding Support for 2 way conversion! ? Rama
PR #1795
2015-12-16 17:17:43 -05:00
ReferencedNames . Add ( Function - > GetFName ( ) , GetOverriddenFName ( Function ) ) ;
2015-01-20 09:33:54 -05:00
2014-03-14 14:13:41 -04:00
const FFuncInfo & FunctionData = CompilerInfo - > GetFunctionData ( ) ;
if ( FunctionData . FunctionFlags & FUNC_NetResponse )
{
// Net response functions don't go into the VM
continue ;
}
const bool bWillBeProgrammerTyped = Function - > GetName ( ) = = FunctionData . MarshallAndCallName ;
// Emit the declaration if the programmer isn't responsible for declaring this wrapper
if ( ! bWillBeProgrammerTyped )
{
// export the line that looks like: int32 Main(const FString& Parms)
ExportNativeFunctionHeader ( FunctionData , RPCWrappers , EExportFunctionType : : Event , EExportFunctionHeaderStyle : : Declaration ) ;
RPCWrappers . Log ( TEXT ( " ; \r \n " ) ) ;
if ( bMultiLineUFUNCTION )
{
RPCWrappers . Log ( TEXT ( " \r \n " ) ) ;
}
}
// Emit the thunk implementation
ExportNativeFunctionHeader ( FunctionData , RPCWrappersCPP , EExportFunctionType : : Event , EExportFunctionHeaderStyle : : Definition ) ;
auto Parameters = GetFunctionParmsAndReturn ( FunctionData . FunctionReference ) ;
2015-01-20 09:33:54 -05:00
if ( ! ( Class - > ClassFlags & CLASS_Interface ) )
2014-03-14 14:13:41 -04:00
{
2015-03-27 18:10:52 -04:00
WriteEventFunctionPrologue ( RPCWrappersCPP , /*Indent=*/ 1 , Parameters , Function - > GetOuter ( ) , * FunctionName ) ;
2015-01-20 09:33:54 -05:00
{
// Cast away const just in case, because ProcessEvent isn't const
RPCWrappersCPP . Logf (
2015-03-27 18:10:52 -04:00
TEXT ( " \t \t %sProcessEvent(FindFunctionChecked(%s_%s),%s); \r \n " ) ,
2015-01-20 09:33:54 -05:00
( Function - > HasAllFunctionFlags ( FUNC_Const ) ) ? * FString : : Printf ( TEXT ( " const_cast<%s*>(this)-> " ) , NameLookupCPP . GetNameCPP ( Cast < UClass > ( Function - > GetOuter ( ) ) ) ) : TEXT ( " " ) ,
* API ,
* FunctionName ,
Parameters . HasParms ( ) ? TEXT ( " &Parms " ) : TEXT ( " NULL " )
) ;
}
2015-03-27 18:10:52 -04:00
WriteEventFunctionEpilogue ( RPCWrappersCPP , /*Indent=*/ 1 , Parameters , * FunctionName ) ;
2015-01-20 09:33:54 -05:00
}
else
{
2015-03-27 18:10:52 -04:00
RPCWrappersCPP + = LINE_TERMINATOR ;
RPCWrappersCPP + = TEXT ( " \t { " ) LINE_TERMINATOR ;
2015-01-20 09:33:54 -05:00
// assert if this is ever called directly
2015-03-27 18:10:52 -04:00
RPCWrappersCPP . Logf ( TEXT ( " \t \t check(0 && \" Do not directly call Event functions in Interfaces. Call Execute_%s instead. \" ); " ) LINE_TERMINATOR , * FunctionName ) ;
2015-01-20 09:33:54 -05:00
// satisfy compiler if it's expecting a return value
if ( Parameters . Return )
{
FString EventParmStructName = GetEventStructParamsName ( Function - > GetOuter ( ) , * FunctionName ) ;
2015-03-27 18:10:52 -04:00
RPCWrappersCPP . Logf ( TEXT ( " \t \t %s Parms; " ) LINE_TERMINATOR , * EventParmStructName ) ;
RPCWrappersCPP . Logf ( TEXT ( " \t \t return Parms.ReturnValue; " ) LINE_TERMINATOR ) ;
2015-01-20 09:33:54 -05:00
}
2015-03-27 18:10:52 -04:00
RPCWrappersCPP + = TEXT ( " \t } " ) LINE_TERMINATOR ;
2014-03-14 14:13:41 -04:00
}
}
2015-01-20 09:33:54 -05:00
if ( ! Class - > HasAnyClassFlags ( CLASS_NoExport ) )
2014-03-14 14:13:41 -04:00
{
GeneratedPackageCPP . Log ( * RPCWrappersCPP ) ;
}
// else drop the implementation on the floor
2015-01-20 09:33:54 -05:00
FString CallbackWrappersMacroName = SourceFile . GetGeneratedMacroName ( ClassData , TEXT ( " _CALLBACK_WRAPPERS " ) ) ;
WriteMacro ( GeneratedHeaderText , CallbackWrappersMacroName , RPCWrappers ) ;
2015-03-27 18:10:52 -04:00
InClassMacroCalls . Logf ( TEXT ( " \t %s \r \n " ) , * CallbackWrappersMacroName ) ;
InClassNoPureDeclsMacroCalls . Logf ( TEXT ( " \t %s \r \n " ) , * CallbackWrappersMacroName ) ;
2015-01-20 09:33:54 -05:00
return CallbackFunctions ;
2014-03-14 14:13:41 -04:00
}
/**
* Determines if the property has alternate export text associated with it and if so replaces the text in PropertyText with the
* alternate version . ( for example , structs or properties that specify a native type using export - text ) . Should be called immediately
* after ExportCppDeclaration ( )
*
* @ param Prop the property that is being exported
* @ param PropertyText the string containing the text exported from ExportCppDeclaration
*/
2015-03-27 18:10:52 -04:00
void FNativeClassHeaderGenerator : : ApplyAlternatePropertyExportText ( UProperty * Prop , FUHTStringBuilder & PropertyText )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
UArrayProperty * ArrayProperty = Cast < UArrayProperty > ( Prop ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
UProperty * InnerProperty = ArrayProperty ? ArrayProperty - > Inner : nullptr ;
if ( InnerProperty & & (
2016-11-23 08:33:52 -05:00
( InnerProperty - > IsA < UByteProperty > ( ) & & ( ( UByteProperty * ) InnerProperty ) - > Enum & & FClass : : IsDynamic ( ( ( UByteProperty * ) InnerProperty ) - > Enum ) ) | |
( InnerProperty - > IsA < UEnumProperty > ( ) & & FClass : : IsDynamic ( ( ( UEnumProperty * ) InnerProperty ) - > Enum ) )
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
)
)
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
const FString Original = InnerProperty - > GetCPPType ( ) ;
const FString RawByte = InnerProperty - > GetCPPType ( nullptr , EPropertyExportCPPFlags : : CPPF_BlueprintCppBackend ) ;
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
if ( Original ! = RawByte )
{
PropertyText . ReplaceInline ( * Original , * RawByte , ESearchCase : : CaseSensitive ) ;
}
return ;
}
2015-01-20 09:33:54 -05:00
if ( ! bIsExportingForOffsetDeterminationOnly )
2014-03-14 14:13:41 -04:00
{
return ;
}
2015-01-20 09:33:54 -05:00
UDelegateProperty * DelegateProperty = Cast < UDelegateProperty > ( Prop ) ;
UMulticastDelegateProperty * MulticastDelegateProperty = Cast < UMulticastDelegateProperty > ( Prop ) ;
if ( DelegateProperty | | MulticastDelegateProperty )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
FString Original = Prop - > GetCPPType ( ) ;
FString PlaceholderOfSameSizeAndAlignemnt ;
if ( DelegateProperty )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
PlaceholderOfSameSizeAndAlignemnt = TEXT ( " FScriptDelegate " ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
else
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
PlaceholderOfSameSizeAndAlignemnt = TEXT ( " FMulticastScriptDelegate " ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
PropertyText . ReplaceInline ( * Original , * PlaceholderOfSameSizeAndAlignemnt , ESearchCase : : CaseSensitive ) ;
2014-03-14 14:13:41 -04:00
}
}
2014-04-23 20:18:11 -04:00
/**
* Sorts the list of header files being exported from a package according to their dependency on each other .
*
* @ param HeaderDependencyMap a mapping of header filenames to a list of header filenames that must be processed before that one .
* @ param SortedHeaderFilenames [ out ] receives the sorted list of header filenames .
*/
bool FNativeClassHeaderGenerator : : SortHeaderDependencyMap ( const TMap < const FString * , HeaderDependents > & HeaderDependencyMap , TArray < const FString * > & SortedHeaderFilenames ) const
{
SortedHeaderFilenames . Empty ( HeaderDependencyMap . Num ( ) ) ;
while ( SortedHeaderFilenames . Num ( ) < HeaderDependencyMap . Num ( ) )
{
bool bAddedSomething = false ;
// Find headers with no dependencies and add those to the list.
for ( auto It = HeaderDependencyMap . CreateConstIterator ( ) ; It ; + + It )
{
auto Header = It - > Key ;
if ( SortedHeaderFilenames . Contains ( Header ) )
continue ;
bool bHasRemainingDependencies = false ;
for ( auto It2 = It - > Value . CreateConstIterator ( ) ; It2 ; + + It2 )
{
if ( ! SortedHeaderFilenames . Contains ( * It2 ) )
{
bHasRemainingDependencies = true ;
break ;
}
}
if ( ! bHasRemainingDependencies )
{
// Add it to the list.
SortedHeaderFilenames . AddUnique ( Header ) ;
bAddedSomething = true ;
}
}
// Circular dependency error?
if ( ! bAddedSomething )
return false ;
}
return true ;
}
2014-03-14 14:13:41 -04:00
bool FNativeClassHeaderGenerator : : FindInterDependency ( TMap < const FString * , HeaderDependents > & HeaderDependencyMap , const FString * Header , const FString * & OutHeader1 , const FString * & OutHeader2 )
{
TSet < const FString * > VisitedHeaders ;
return FindInterDependencyRecursive ( HeaderDependencyMap , Header , VisitedHeaders , OutHeader1 , OutHeader2 ) ;
}
/**
* Finds to headers that are dependent on each other .
*
* @ param HeaderDependencyMap A map of headers and their dependencies . Each header is represented as an index into a TArray of the actual filename strings .
* @ param HeaderIndex A header to scan for any inter - dependency .
* @ param VisitedHeaders Must be filled with false values before the first call ( must be large enough to be indexed by all headers ) .
* @ param OutHeader1 [ out ] Receives the first inter - dependent header index .
* @ param OutHeader2 [ out ] Receives the second inter - dependent header index .
* @ return true if an inter - dependency was found .
*/
bool FNativeClassHeaderGenerator : : FindInterDependencyRecursive ( TMap < const FString * , HeaderDependents > & HeaderDependencyMap , const FString * Header , TSet < const FString * > & VisitedHeaders , const FString * & OutHeader1 , const FString * & OutHeader2 )
{
VisitedHeaders . Add ( Header ) ;
for ( auto It = HeaderDependencyMap [ Header ] . CreateConstIterator ( ) ; It ; + + It )
{
auto DependentHeader = * It ;
if ( VisitedHeaders . Contains ( DependentHeader ) )
{
OutHeader1 = Header ;
OutHeader2 = DependentHeader ;
return true ;
}
if ( FindInterDependencyRecursive ( HeaderDependencyMap , DependentHeader , VisitedHeaders , OutHeader1 , OutHeader2 ) )
{
return true ;
}
}
return false ;
}
2015-03-27 18:10:52 -04:00
FUHTStringBuilder & FNativeClassHeaderGenerator : : GetGeneratedFunctionTextDevice ( )
2015-01-16 05:02:48 -05:00
{
2015-09-04 03:35:53 -04:00
static struct FMaxLinesPerCpp
{
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
int32 FirstValue ;
int32 OtherValue ;
2015-09-04 03:35:53 -04:00
FMaxLinesPerCpp ( )
{
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
FirstValue = 5000 ;
check ( GConfig ) ;
GConfig - > GetInt ( TEXT ( " UnrealHeaderTool " ) , TEXT ( " MaxLinesPerInitialCpp " ) , FirstValue , GEngineIni ) ;
Miscellaneous fixes for Clang on windows
These changes allow UE4 to compile and run (in Debug) on Clang 3.7 alpha (r231657 only!)
- Disabled editor source file discovery (crashes with Clang currently)
- Disabled FThreadIdleStats in UnrealHeaderTool with Clang on Windows (causes link errors due to inlining bugs with Clang and DLL imports)
- Use MSVC linker by default, even when compiling with Clang (can be tweaked with bAllowClangLinker)
- Enabled shadow variable warnings on Windows with Clang
- Limited max size of reflection code source files (Clang on Windows crashes with huge source files)
- Fixed UE4 deprecation warnings not showing up when using Clang on Windows
- Make sure initialization list order only triggers a warning on Clang for Windows
Other changes:
- Fixed issues with pushed pragmas not getting popped (PRAGMA_ENABLE_DEPRECATION_WARNINGS)
- Removed EMIT_DEPRECATED_WARNING_MESSAGE, wasn't used
- Fixed various third party library includes not being treated as system headers (prevents compiler warnings)
To test Clang on Windows (beta!!):
- Get latest UE4 main branch (4.9)
- Install LLVM+Clang for Windows version r231657. It's a quick install, you don't need to compile anything yourself.
- Open UEBuildWindows.cs, and change bCompileWithClang to true. Be careful not to check that in. We'll probably make this config-driven later, after the Clang toolchain gets more mature.
- Switch to Debug Editor configuration. (See below for more info.)
- Rebuild the game or engine
Notes:
- You must use Clang r231657 (3.7.0 alpha). There are no other releases that I've found that are able to compile UE4 successfully. Most of the newer releases crash during compiling, and older releases aren't able to digest Windows header files well enough.
- Compiling in Development currently will not work due to bugs with Clangs handling of inlining and DLL exports. Monolithic builds should work, though.
- Occasionally you may see runtime crashes (stack overflows or access violations) when running UE4 compiled with Clang on Windows. These may very well be bugs in Clang (remember, we're using an alpha release of Clang 3.7.0.) Unfortunately without better debugger support, it can be difficult to workaround these
- When debugging, you will only have functions and line numbers, no variables or parameters. Clang only has preliminary support for Microsoft's PDB format currently.
XGE is fully supported with Clang on Windows. Best case rebuild times I've seen are 3.5 minutes in Debug.
- Shared PCHs aren't supported yet (similar to on Mac and Linux), so iterative compile times may be slower compared to Visual C++. However the Clang compiler is actually quite fast for rebuilds, probably because of missing debug info though.
- There may be some compiler warnings that are different between Mac/Linux and Windows. We haven't done a line-by-line comparison yet.
- Build products and executables for Clang and VC++ overlap on disk. So you have to rebuild to switch back and forth. Sorry.
- Clang on Windows has a few bugs that we've had to work around. You might see some strange things from time to time. Every new release of Clang has different behavior on Windows.
- We still use the VC++ Linker, even when compiling using Clang. The new Clang linker (lld.exe) can be enabled with bAllowClangLinker but it will crash when linking some modules. It also doesn't produce usable debug symbols by Visual Studio (yet).
#codereview mikolaj.sieluzycki
[CL 2532260 by Mike Fricker in Main branch]
2015-04-30 14:24:21 -04:00
# if ( PLATFORM_WINDOWS && defined(__clang__) ) // @todo clang: Clang r231657 often crashes with huge Engine.generated.cpp files, so we split using a smaller threshold
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
OtherValue = 15000 ;
Miscellaneous fixes for Clang on windows
These changes allow UE4 to compile and run (in Debug) on Clang 3.7 alpha (r231657 only!)
- Disabled editor source file discovery (crashes with Clang currently)
- Disabled FThreadIdleStats in UnrealHeaderTool with Clang on Windows (causes link errors due to inlining bugs with Clang and DLL imports)
- Use MSVC linker by default, even when compiling with Clang (can be tweaked with bAllowClangLinker)
- Enabled shadow variable warnings on Windows with Clang
- Limited max size of reflection code source files (Clang on Windows crashes with huge source files)
- Fixed UE4 deprecation warnings not showing up when using Clang on Windows
- Make sure initialization list order only triggers a warning on Clang for Windows
Other changes:
- Fixed issues with pushed pragmas not getting popped (PRAGMA_ENABLE_DEPRECATION_WARNINGS)
- Removed EMIT_DEPRECATED_WARNING_MESSAGE, wasn't used
- Fixed various third party library includes not being treated as system headers (prevents compiler warnings)
To test Clang on Windows (beta!!):
- Get latest UE4 main branch (4.9)
- Install LLVM+Clang for Windows version r231657. It's a quick install, you don't need to compile anything yourself.
- Open UEBuildWindows.cs, and change bCompileWithClang to true. Be careful not to check that in. We'll probably make this config-driven later, after the Clang toolchain gets more mature.
- Switch to Debug Editor configuration. (See below for more info.)
- Rebuild the game or engine
Notes:
- You must use Clang r231657 (3.7.0 alpha). There are no other releases that I've found that are able to compile UE4 successfully. Most of the newer releases crash during compiling, and older releases aren't able to digest Windows header files well enough.
- Compiling in Development currently will not work due to bugs with Clangs handling of inlining and DLL exports. Monolithic builds should work, though.
- Occasionally you may see runtime crashes (stack overflows or access violations) when running UE4 compiled with Clang on Windows. These may very well be bugs in Clang (remember, we're using an alpha release of Clang 3.7.0.) Unfortunately without better debugger support, it can be difficult to workaround these
- When debugging, you will only have functions and line numbers, no variables or parameters. Clang only has preliminary support for Microsoft's PDB format currently.
XGE is fully supported with Clang on Windows. Best case rebuild times I've seen are 3.5 minutes in Debug.
- Shared PCHs aren't supported yet (similar to on Mac and Linux), so iterative compile times may be slower compared to Visual C++. However the Clang compiler is actually quite fast for rebuilds, probably because of missing debug info though.
- There may be some compiler warnings that are different between Mac/Linux and Windows. We haven't done a line-by-line comparison yet.
- Build products and executables for Clang and VC++ overlap on disk. So you have to rebuild to switch back and forth. Sorry.
- Clang on Windows has a few bugs that we've had to work around. You might see some strange things from time to time. Every new release of Clang has different behavior on Windows.
- We still use the VC++ Linker, even when compiling using Clang. The new Clang linker (lld.exe) can be enabled with bAllowClangLinker but it will crash when linking some modules. It also doesn't produce usable debug symbols by Visual Studio (yet).
#codereview mikolaj.sieluzycki
[CL 2532260 by Mike Fricker in Main branch]
2015-04-30 14:24:21 -04:00
# else
2015-09-04 03:35:53 -04:00
// We do this only for non-clang builds for now
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
OtherValue = 60000 ;
GConfig - > GetInt ( TEXT ( " UnrealHeaderTool " ) , TEXT ( " MaxLinesPerCpp " ) , OtherValue , GEngineIni ) ;
Miscellaneous fixes for Clang on windows
These changes allow UE4 to compile and run (in Debug) on Clang 3.7 alpha (r231657 only!)
- Disabled editor source file discovery (crashes with Clang currently)
- Disabled FThreadIdleStats in UnrealHeaderTool with Clang on Windows (causes link errors due to inlining bugs with Clang and DLL imports)
- Use MSVC linker by default, even when compiling with Clang (can be tweaked with bAllowClangLinker)
- Enabled shadow variable warnings on Windows with Clang
- Limited max size of reflection code source files (Clang on Windows crashes with huge source files)
- Fixed UE4 deprecation warnings not showing up when using Clang on Windows
- Make sure initialization list order only triggers a warning on Clang for Windows
Other changes:
- Fixed issues with pushed pragmas not getting popped (PRAGMA_ENABLE_DEPRECATION_WARNINGS)
- Removed EMIT_DEPRECATED_WARNING_MESSAGE, wasn't used
- Fixed various third party library includes not being treated as system headers (prevents compiler warnings)
To test Clang on Windows (beta!!):
- Get latest UE4 main branch (4.9)
- Install LLVM+Clang for Windows version r231657. It's a quick install, you don't need to compile anything yourself.
- Open UEBuildWindows.cs, and change bCompileWithClang to true. Be careful not to check that in. We'll probably make this config-driven later, after the Clang toolchain gets more mature.
- Switch to Debug Editor configuration. (See below for more info.)
- Rebuild the game or engine
Notes:
- You must use Clang r231657 (3.7.0 alpha). There are no other releases that I've found that are able to compile UE4 successfully. Most of the newer releases crash during compiling, and older releases aren't able to digest Windows header files well enough.
- Compiling in Development currently will not work due to bugs with Clangs handling of inlining and DLL exports. Monolithic builds should work, though.
- Occasionally you may see runtime crashes (stack overflows or access violations) when running UE4 compiled with Clang on Windows. These may very well be bugs in Clang (remember, we're using an alpha release of Clang 3.7.0.) Unfortunately without better debugger support, it can be difficult to workaround these
- When debugging, you will only have functions and line numbers, no variables or parameters. Clang only has preliminary support for Microsoft's PDB format currently.
XGE is fully supported with Clang on Windows. Best case rebuild times I've seen are 3.5 minutes in Debug.
- Shared PCHs aren't supported yet (similar to on Mac and Linux), so iterative compile times may be slower compared to Visual C++. However the Clang compiler is actually quite fast for rebuilds, probably because of missing debug info though.
- There may be some compiler warnings that are different between Mac/Linux and Windows. We haven't done a line-by-line comparison yet.
- Build products and executables for Clang and VC++ overlap on disk. So you have to rebuild to switch back and forth. Sorry.
- Clang on Windows has a few bugs that we've had to work around. You might see some strange things from time to time. Every new release of Clang has different behavior on Windows.
- We still use the VC++ Linker, even when compiling using Clang. The new Clang linker (lld.exe) can be enabled with bAllowClangLinker but it will crash when linking some modules. It also doesn't produce usable debug symbols by Visual Studio (yet).
#codereview mikolaj.sieluzycki
[CL 2532260 by Mike Fricker in Main branch]
2015-04-30 14:24:21 -04:00
# endif
2015-09-04 03:35:53 -04:00
}
} MaxLinesPerCpp ;
2015-01-16 05:02:48 -05:00
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
if ( ( GeneratedFunctionBodyTextSplit . Num ( ) = = 0 ) | | ( GeneratedFunctionBodyTextSplit . Num ( ) = = 1 & & GeneratedFunctionBodyTextSplit [ 0 ] - > GetLineCount ( ) > MaxLinesPerCpp . FirstValue ) | | ( GeneratedFunctionBodyTextSplit [ GeneratedFunctionBodyTextSplit . Num ( ) - 1 ] - > GetLineCount ( ) > MaxLinesPerCpp . OtherValue ) )
2015-01-16 05:02:48 -05:00
{
2015-04-14 08:03:34 -04:00
GeneratedFunctionBodyTextSplit . Add ( TUniqueObj < FUHTStringBuilderLineCounter > ( ) ) ;
2015-01-16 05:02:48 -05:00
}
2015-04-14 08:03:34 -04:00
return GeneratedFunctionBodyTextSplit [ GeneratedFunctionBodyTextSplit . Num ( ) - 1 ] . Get ( ) ;
2015-01-16 05:02:48 -05:00
}
2014-03-14 14:13:41 -04:00
// Constructor.
2015-03-02 06:44:04 -05:00
FNativeClassHeaderGenerator : : FNativeClassHeaderGenerator (
2015-11-18 16:20:49 -05:00
const UPackage * InPackage ,
2015-03-02 06:44:04 -05:00
const TArray < FUnrealSourceFile * > & SourceFiles ,
FClasses & AllClasses ,
bool InAllowSaveExportedHeaders
# if WITH_HOT_RELOAD_CTORS
2015-04-22 14:15:56 -04:00
, bool bInExportVTableConstructors
2015-03-02 06:44:04 -05:00
# endif // WITH_HOT_RELOAD_CTORS
2015-11-18 16:20:49 -05:00
, FUHTMakefile & InUHTMakefile
2015-03-02 06:44:04 -05:00
)
2015-01-20 09:33:54 -05:00
: API ( FPackageName : : GetShortName ( InPackage ) . ToUpper ( ) )
2014-03-14 14:13:41 -04:00
, Package ( InPackage )
, bIsExportingForOffsetDeterminationOnly ( false )
, bAllowSaveExportedHeaders ( InAllowSaveExportedHeaders )
, bFailIfGeneratedCodeChanges ( false )
2015-03-02 06:44:04 -05:00
# if WITH_HOT_RELOAD_CTORS
2015-04-22 14:15:56 -04:00
, bExportVTableConstructors ( bInExportVTableConstructors )
2015-03-02 06:44:04 -05:00
# endif // WITH_HOT_RELOAD_CTORS
2015-11-18 16:20:49 -05:00
, UHTMakefile ( InUHTMakefile )
2014-03-14 14:13:41 -04:00
{
const FString PackageName = FPackageName : : GetShortName ( Package ) ;
2014-04-23 20:18:11 -04:00
2014-03-14 14:13:41 -04:00
GeneratedCPPFilenameBase = PackageName + TEXT ( " .generated " ) ;
GeneratedProtoFilenameBase = PackageName + TEXT ( " .generated " ) ;
GeneratedMCPFilenameBase = PackageName + TEXT ( " .generated " ) ;
bFailIfGeneratedCodeChanges = FParse : : Param ( FCommandLine : : Get ( ) , TEXT ( " FailIfGeneratedCodeChanges " ) ) ;
2015-03-27 18:10:52 -04:00
TempHeaderPaths . Reset ( ) ;
PackageHeaderPaths . Reset ( ) ;
2014-04-23 20:18:55 -04:00
2014-03-14 14:13:41 -04:00
// Reset header generation output strings
2015-03-27 18:10:52 -04:00
GeneratedPackageCPP . Reset ( ) ;
GeneratedProtoText . Reset ( ) ;
GeneratedMCPText . Reset ( ) ;
CrossModuleGeneratedFunctionDeclarations . Reset ( ) ;
UniqueCrossModuleReferences . Empty ( UniqueCrossModuleReferences . Num ( ) ) ;
GeneratedFunctionDeclarations . Reset ( ) ;
GeneratedFunctionBodyTextSplit . Reset ( ) ;
ListOfPublicClassesUObjectHeaderModuleIncludes . Reset ( ) ;
2014-04-23 20:18:55 -04:00
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
const bool bPackageHasAnyExportClasses = AllClasses . GetClassesInPackage ( Package ) . ContainsByPredicate ( [ ] ( FClass * Class )
{
return Class - > HasAnyClassFlags ( CLASS_Native ) & & ! Class - > HasAnyClassFlags ( CLASS_NoExport | CLASS_Intrinsic ) ;
} ) ;
2015-01-20 09:33:54 -05:00
if ( bPackageHasAnyExportClasses )
2014-03-14 14:13:41 -04:00
{
FString PkgDir ;
FString GeneratedIncludeDirectory ;
2014-09-18 04:05:01 -04:00
if ( FindPackageLocation ( * PackageName , PkgDir , GeneratedIncludeDirectory ) = = false )
2014-03-14 14:13:41 -04:00
{
UE_LOG ( LogCompile , Error , TEXT ( " Failed to find path for package %s " ) , * PackageName ) ;
}
2014-04-28 05:03:10 -04:00
FString ClassesHeaderName = PackageName + TEXT ( " Classes.h " ) ;
2014-04-23 20:18:55 -04:00
ClassesHeaderPath = GeneratedIncludeDirectory / ClassesHeaderName ;
2014-03-14 14:13:41 -04:00
int32 ClassCount = 0 ;
2015-01-20 09:33:54 -05:00
for ( auto * SourceFile : SourceFiles )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
for ( auto * Class : SourceFile - > GetDefinedClasses ( ) )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
if ( Class - > HasAnyClassFlags ( CLASS_Native ) )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
if ( GTypeDefinitionInfoMap . Contains ( Class ) & & ! Class - > HasAnyClassFlags ( CLASS_NoExport ) )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
ClassCount + + ;
2014-03-14 14:13:41 -04:00
Class - > UnMark ( OBJECTMARK_TagImp ) ;
Class - > Mark ( OBJECTMARK_TagExp ) ;
}
}
2015-01-20 09:33:54 -05:00
else
{
Class - > UnMark ( EObjectMark ( OBJECTMARK_TagImp | OBJECTMARK_TagExp ) ) ;
}
2014-03-14 14:13:41 -04:00
}
}
2014-04-28 05:03:10 -04:00
if ( ClassCount ! = 0 )
2014-03-14 14:13:41 -04:00
{
2014-04-28 05:03:10 -04:00
ClassesHeaders . Add ( ClassesHeaderName ) ;
2014-04-23 20:18:11 -04:00
2015-03-27 18:10:52 -04:00
ListOfPublicHeaderGroupIncludes . Reset ( ) ;
ListOfAllUObjectHeaderIncludes . Reset ( ) ;
OriginalHeader . Reset ( ) ;
PreHeaderText . Reset ( ) ;
2014-04-23 20:18:55 -04:00
2014-04-28 05:03:10 -04:00
// Load the original header file into memory
FFileHelper : : LoadFileToString ( OriginalHeader , * ClassesHeaderPath ) ;
2014-04-23 20:18:11 -04:00
2014-04-28 05:03:10 -04:00
// Write the classes and enums header prefixes.
2014-04-23 20:18:11 -04:00
2014-04-28 05:03:10 -04:00
PreHeaderText . Logf (
2016-12-08 08:52:44 -05:00
TEXT ( " // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved. \r \n " )
2014-04-28 05:03:10 -04:00
TEXT ( " /*=========================================================================== \r \n " )
2015-09-21 07:53:49 -04:00
TEXT ( " \t C++ class boilerplate exported from UnrealHeaderTool. \r \n " )
TEXT ( " \t This is automatically generated by the tools. \r \n " )
TEXT ( " \t DO NOT modify this manually! Edit the corresponding .h files instead! \r \n " )
2014-04-28 05:03:10 -04:00
TEXT ( " ===========================================================================*/ \r \n " )
TEXT ( " #pragma once \r \n " )
TEXT ( " \r \n " )
) ;
2014-04-23 20:18:11 -04:00
2014-04-28 05:03:10 -04:00
// if a global auto-include file exists, generate a line to have that file included
FString GlobalAutoIncludeFilename = PackageName + TEXT ( " GlobalIncludes.h " ) ;
const FString StandardHeaderFileLocation = PkgDir / TEXT ( " Public " ) ;
if ( IFileManager : : Get ( ) . FileSize ( * ( StandardHeaderFileLocation / GlobalAutoIncludeFilename ) ) > 0 )
2014-04-23 20:18:11 -04:00
{
2014-04-28 05:03:10 -04:00
PreHeaderText . Logf ( TEXT ( " #include \" %s \" \r \n \r \n " ) , * GlobalAutoIncludeFilename ) ;
2014-04-23 20:18:11 -04:00
}
2014-04-28 05:03:10 -04:00
// Export an include line for each header
2015-01-20 09:33:54 -05:00
for ( auto * SourceFile : SourceFiles )
2014-04-28 05:03:10 -04:00
{
2015-01-20 09:33:54 -05:00
ExportSourceFileHeader ( AllClasses , SourceFile ) ;
2014-04-28 05:03:10 -04:00
}
// build the full header file out of its pieces
const FString FullClassesHeader = FString : : Printf (
TEXT ( " %s \r \n %s " ) ,
* PreHeaderText ,
2015-01-20 09:33:54 -05:00
* GetListOfPublicHeaderGroupIncludesString ( InPackage )
2014-04-28 05:03:10 -04:00
) ;
// Save the classes header if it has changed.
SaveHeaderIfChanged ( * ClassesHeaderPath , * FullClassesHeader ) ;
}
2014-03-14 14:13:41 -04:00
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3284872 on 2017/02/03 by Graeme.Thornton
Seperate pak cache granularity from pak signing chunk size
Change 3285765 on 2017/02/03 by Graeme.Thornton
Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread
#jira UE-41478
Change 3286913 on 2017/02/04 by Ben.Marsh
IncludeTool: Merging fixes.
* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.
Change 3287100 on 2017/02/05 by Ben.Marsh
UBT: Move platform settings into platform-specific TargetRules objects.
Change 3287106 on 2017/02/05 by Ben.Marsh
Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.
Change 3287398 on 2017/02/06 by Steve.Robb
Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.
Change 3287399 on 2017/02/06 by Steve.Robb
Log verbosities made more readable in the debugger.
Change 3287410 on 2017/02/06 by Steve.Robb
Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.
#fyi marc.audy
Change 3288020 on 2017/02/06 by Ben.Marsh
Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.
Change 3291817 on 2017/02/08 by Steve.Robb
New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.
Change 3292090 on 2017/02/08 by Graeme.Thornton
Crash fix - don't update font engine services if it was never created
#jira UE-33953
Change 3292993 on 2017/02/08 by Ben.Marsh
Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)
Change 3293231 on 2017/02/08 by Ben.Marsh
BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.
Change 3294213 on 2017/02/09 by Ben.Marsh
EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.
Change 3294753 on 2017/02/09 by Ben.Zeigler
#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated
Change 3296070 on 2017/02/09 by Ben.Zeigler
Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.
Change 3296420 on 2017/02/10 by Graeme.Thornton
Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
Refactored encryption and signing key access in unrealpak to make it easier to use
Change 3296609 on 2017/02/10 by Ben.Marsh
BuildGraph: Fix error running the <Copy> task with an empty "From" argument.
* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.
Change 3297440 on 2017/02/10 by Ben.Marsh
UBT: Move the FileFilter class into UnrealBuildTool.
Change 3297725 on 2017/02/10 by Ben.Zeigler
#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
Clean up a lot of confusingly named and broken functions on UEnum:
#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
Delete some now redundant enum editor code and pipe everything through UEnum
Change 3297979 on 2017/02/10 by Ben.Zeigler
Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior
Change 3298299 on 2017/02/10 by Steve.Robb
TTuple improvements:
- equality comparable
- serializable
- in the correct folder
2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.
#fyi robert.manuszewski,ben.marsh
Change 3298460 on 2017/02/11 by Ben.Marsh
UGS: Set the correct result from running custom tasks.
Change 3298462 on 2017/02/11 by Ben.Marsh
UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.
Change 3299447 on 2017/02/13 by Graeme.Thornton
Fix AES and pak signing key embedding for content only projects
- Force temp target when any keys are specified by project config
Change 3299649 on 2017/02/13 by Steve.Robb
PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
Other obsolete compiler switches removed.
Change 3299787 on 2017/02/13 by Steve.Robb
IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization.
#fyi robert.manuszewski
Change 3300576 on 2017/02/13 by Ben.Marsh
EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.
Change 3300600 on 2017/02/13 by Ben.Marsh
EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.
Change 3300624 on 2017/02/13 by Ben.Marsh
Switch incremental builds for all streams to start up on the incremental agent.
Change 3302134 on 2017/02/14 by Steve.Robb
UnrealCodeAnalyzer removed.
#fyi ben.marsh,robert.manuszewski
Change 3302639 on 2017/02/14 by Ben.Zeigler
Fix crash cooking odin with default command line
#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified
Change 3303002 on 2017/02/14 by Ben.Zeigler
#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate
Change 3303084 on 2017/02/14 by Ben.Zeigler
Attempt to get Nativization and EDL working without warnings
Change 3305153 on 2017/02/15 by Ben.Zeigler
Fix Fortnite and Orion cook, I don't understand why this passed my local testing
Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning
Change 3305959 on 2017/02/16 by Gil.Gribb
UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.
Change 3306159 on 2017/02/16 by Ben.Marsh
Fix path to target binaries when building non-monolithic in a unique build environment.
Change 3306584 on 2017/02/16 by Steve.Robb
UEnum internal functions renamed from Index to Value.
GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.
#fyi ben.zeigler
Change 3307836 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
Fixes lighting in Infiltrator demo
Change 3307929 on 2017/02/16 by Ben.Zeigler
#jira UE-42055 Second half of matinee redirector fix
Change 3308840 on 2017/02/17 by Matthew.Griffin
Reimplementing CL#3305808 from 4.15
Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)
Change 3309115 on 2017/02/17 by Ben.Marsh
Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead.
Change 3309120 on 2017/02/17 by Ben.Marsh
Fix support for creating modular builds which don't use the shared build environment.
Change 3309125 on 2017/02/17 by Ben.Marsh
Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.
Change 3309128 on 2017/02/17 by Ben.Marsh
Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.
Change 3309131 on 2017/02/17 by Ben.Marsh
Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.
Change 3309140 on 2017/02/17 by Ben.Marsh
UAT: Fix exception moving a file from one location to another if the target directory does not exist.
Change 3309212 on 2017/02/17 by Ben.Marsh
Fixes/improvements for mod editor and code mods:
* A separate top-level project is generated for each code mod in the Visual Studio solution.
* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
* Plugin browser now includes a separate category for mods.
* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.
Change 3309231 on 2017/02/17 by Steve.Robb
Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.
#jira UE-42052
Change 3309248 on 2017/02/17 by Ben.Marsh
Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.
Change 3309257 on 2017/02/17 by Ben.Marsh
Prevent game binaries from being renamed for hot reload when working with installed projects.
Change 3309355 on 2017/02/17 by Steven.Hutton
Changes to make the website compatible with the new database changes.
Change 3309371 on 2017/02/17 by Ben.Marsh
Fix exception on shutdown when running asset registry with threads disabled.
#jira UE-41951
Change 3309389 on 2017/02/17 by Ben.Zeigler
#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node
Change 3309570 on 2017/02/17 by Gil.Gribb
UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.
Change 3310039 on 2017/02/17 by Ben.Marsh
BuildGraph: Prevent exception when trying to delete a file that does not exist.
Change 3311484 on 2017/02/20 by Chris.Wood
CrashReportProcess crash add retry logic improvements (CRP v1.2.16)
Change 3311600 on 2017/02/20 by Matthew.Griffin
Updated StripSymbols functions so that all platforms can deal with the source and target file being the same
Change 3311675 on 2017/02/20 by Steve.Robb
FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.
Change 3311893 on 2017/02/20 by Ben.Marsh
UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.
Change 3313966 on 2017/02/21 by Ben.Marsh
Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.
Change 3314398 on 2017/02/21 by Ben.Zeigler
#jira UE-42212 Fix shutdown of AnimGraph module to be safer
[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
else
2014-03-14 14:13:41 -04:00
{
// If no headers are generated, check if there's any no export classes that need to have the inl file generated.
2015-01-20 09:33:54 -05:00
for ( auto * SourceFile : SourceFiles )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
ExportSourceFileHeader ( AllClasses , SourceFile ) ;
2014-03-14 14:13:41 -04:00
}
}
// now export the names for the functions in this package
// notice we always export this file (as opposed to only exporting if we have any marked names)
// because there would be no way to know when the file was created otherwise
2014-04-28 05:03:10 -04:00
// Export .generated.cpp
ExportGeneratedCPP ( ) ;
2014-03-14 14:13:41 -04:00
ExportGeneratedProto ( ) ;
ExportGeneratedMCP ( ) ;
// Export all changed headers from their temp files to the .h files
ExportUpdatedHeaders ( PackageName ) ;
// Delete stale *.generated.h files
DeleteUnusedGeneratedHeaders ( ) ;
}
void FNativeClassHeaderGenerator : : DeleteUnusedGeneratedHeaders ( )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
TSet < FString > AllIntermediateFolders ;
TSet < FString > PackageHeaderPathSet ( PackageHeaderPaths ) ;
2014-03-14 14:13:41 -04:00
2014-04-23 20:18:55 -04:00
for ( const auto & PackageHeader : PackageHeaderPaths )
2014-03-14 14:13:41 -04:00
{
2014-04-23 20:18:55 -04:00
const FString IntermediatePath = FPaths : : GetPath ( PackageHeader ) ;
2014-03-14 14:13:41 -04:00
if ( AllIntermediateFolders . Contains ( IntermediatePath ) )
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
{
2014-03-14 14:13:41 -04:00
continue ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
}
2014-03-14 14:13:41 -04:00
AllIntermediateFolders . Add ( IntermediatePath ) ;
TArray < FString > AllHeaders ;
IFileManager : : Get ( ) . FindFiles ( AllHeaders , * ( IntermediatePath / TEXT ( " *.generated.h " ) ) , true , false ) ;
2014-04-23 20:18:55 -04:00
for ( const auto & Header : AllHeaders )
2014-03-14 14:13:41 -04:00
{
2014-04-23 20:18:55 -04:00
const FString HeaderPath = IntermediatePath / Header ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
if ( PackageHeaderPathSet . Contains ( HeaderPath ) )
{
2014-03-14 14:13:41 -04:00
continue ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3012371)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2997665 on 2016/06/02 by Graeme.Thornton
Fix parameter parsing bug in corrupt tool
Change 2997947 on 2016/06/02 by Steve.Robb
Fix for return value from FOnlineSessionMcp::UpdateSession.
Change 3000182 on 2016/06/03 by John.Mahoney
PR #2234: Fix NullReferenceException to connect to coordinator (Contributed by projectgheist)
#jira UE-29063
Change 3000355 on 2016/06/03 by John.Mahoney
Fix for crash caused by trying to serialize a package larger than 2 GB to memory while cooking, usually due to unusually large light maps.
Replaced the TArray-based memory archives used in UPackage::SavePackage with a new FLargeMemoryWriter/Reader that uses a raw memory buffer internally.
#jira UE-22912
Change 3001673 on 2016/06/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'KeyState'
Change 3001963 on 2016/06/06 by John.Mahoney
Fix for AutomationTool crash when deploying to default PS4 devkit. When a DeviceName is not specified on the command line, the PS4DevKitUtil.exe Detail command will return the details of the default connected device. If the device's filesystem is mapped by name instead of IP, the name should be parsed from the result and used to build the BaseTargetPath.
Change 3001974 on 2016/06/06 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 3003781 on 2016/06/07 by Steve.Robb
New TWeakObjectPtrMapKeyFuncs to be used for maps containing TWeakObjectPtr keys, without invalidating the map when the pointer becomes stale.
Fix for UNetConnection::ActorChannels which suffered from this problem.
Change 3003855 on 2016/06/07 by Steve.Robb
VS debugger visualization of TTuples up to 6 elements.
Change 3003864 on 2016/06/07 by Steve.Robb
Reapply optimizations to FString::MatchesWildcard reverted in CL# 2992738.
Change 3003944 on 2016/06/07 by Steve.Robb
Back out changelist 3003864
Change 3004198 on 2016/06/07 by Steve.Robb
TIsTriviallyDestructible added, needed to move away from amalgamated type traits, which can cause spurious compile errors.
DestructItem added.
Change 3005586 on 2016/06/08 by Steve.Robb
jpeg_decoder::stop_decoding made ((no_return)) again, but with an exit() call to ensure that it doesn't cause compile errors in Android builds.
Change 3005633 on 2016/06/08 by Steve.Robb
Static analysis fixes:
warning C28216: The checkReturn annotation only applies to postconditions for function 'Func' _Param_(N)
Change 3005839 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'RepState'.
Change 3005857 on 2016/06/08 by Steve.Robb
Fix for warning C28182: Dereferencing NULL pointer. 'CinematicShotSection' contains the same NULL value as 'ShotSection' did.
Change 3005860 on 2016/06/08 by Steve.Robb
Fix for warning C6011: Dereferencing NULL pointer 'this->Keys[Index]'.
Change 3006175 on 2016/06/08 by Steve.Robb
Additional information about the class which is failing to reload.
#jira UE-28599
Change 3006524 on 2016/06/08 by Ben.Marsh
Fix compile error introduced in CL 3006175
Change 3006815 on 2016/06/08 by Ben.Marsh
Enable static analysis as part of build process for dev branches.
Change 3007606 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3007679 on 2016/06/09 by Steve.Robb
Fixes for 'inconsistent annotation warnings' in SDK code.
Change 3008125 on 2016/06/09 by John.Mahoney
Fix for DLC paks mapping file paths relative to the GameDir instead of the RootDir.
#jira UE-31250
Change 3008763 on 2016/06/10 by Steve.Robb
New TArray::EmplaceAt function.
Change 3008780 on 2016/06/10 by Steve.Robb
Non-variadic delegate implementation deleted.
Change 3008820 on 2016/06/10 by Robert.Manuszewski
Merging UnrealHeaderTool optimizations from a partners branch.
Change 3008850 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_VARIADIC_TEMPLATES.
Change 3008905 on 2016/06/10 by Graeme.Thornton
MemoryProfiler2 - Deselect current bar when clicking off the histogram. Allows user to see the top level group data again
Change 3008933 on 2016/06/10 by Steve.Robb
Removal of PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS.
Change 3009130 on 2016/06/10 by John.Mahoney
Fix for crash when pasting T3D data from the clipboard into the content browser. Since the content browser is only expecting a list of object paths, it should avoid trying to process pasted T3D altogether.
#jira UE-31459
Change 3010712 on 2016/06/13 by Steve.Robb
Splitting up of TTypeTraits into individual traits to avoid erroneous VC compilation errors.
Use of TAnd/TOr to short-circuit many compile-time traits checks.
Renaming of traits classes (except TIsPODType) to closer match the standard.
Change 3010714 on 2016/06/13 by Steve.Robb
*_Variadics.h delegate headers renamed to just *.h.
Change 3010719 on 2016/06/13 by Steve.Robb
Redundant suffixes removed from delegate macros.
Change 3010720 on 2016/06/13 by Steve.Robb
Fix for defaulted functions and other compiler settings.
Workaround for spurious compiler errors in generated functions which ultimately reference other deleted functions.
See: https://connect.microsoft.com/VisualStudio/feedback/details/2612308
Change 3010721 on 2016/06/13 by Steve.Robb
Removal of TTuple::ApplyAfter_ExplicitReturnType in preparation of making TTuple a first class citizen of UE4.
New MakeTuple and TransformTuple generator functions.
New Lexicographical::ToString overloads for const CharType* and bool.
Change 3010783 on 2016/06/13 by Steve.Robb
Fix for TTransformTuple_Impl::Do return type.
Fix for Clang error.
Change 3010995 on 2016/06/13 by Robert.Manuszewski
Fixing compile errors when leak detection and verify mallocs are enabled due to changes in their base class.
Change 3012221 on 2016/06/14 by Graeme.Thornton
Fixes for MemoryAnalyser2 solution
- Upgraded to VS 2015
- Clean up solution configurations. Only leave "Any CPU"
- Switch project to build with "Any CPU" rather than "x64".
Change 3012328 on 2016/06/14 by Steve.Robb
Make checks assume even in !DO_CHECK builds. This fixes some SA warnings as well as possibly making those builds more optimal.
Change 3012363 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Func'
Change 3012371 on 2016/06/14 by Steve.Robb
Static analysis fixes: warning C28251: Inconsistent annotation for 'Type'
#lockdown Nick.Penwarden
#rb none
[CL 3012829 by Robert Manuszewski in Main branch]
2016-06-14 12:28:12 -04:00
}
2014-03-14 14:13:41 -04:00
// Check intrinsic classes. Get the class name from file name by removing .generated.h.
const FString HeaderFilename = FPaths : : GetBaseFilename ( HeaderPath ) ;
const int32 GeneratedIndex = HeaderFilename . Find ( TEXT ( " .generated " ) , ESearchCase : : IgnoreCase , ESearchDir : : FromEnd ) ;
const FString ClassName = HeaderFilename . Mid ( 0 , GeneratedIndex ) ;
UClass * IntrinsicClass = FindObject < UClass > ( ANY_PACKAGE , * ClassName ) ;
if ( ! IntrinsicClass | | ! IntrinsicClass - > HasAnyClassFlags ( CLASS_Intrinsic ) )
{
IFileManager : : Get ( ) . Delete ( * HeaderPath ) ;
}
}
}
}
2014-04-23 18:36:17 -04:00
/**
* Dirty hack global variable to allow different result codes passed through
* exceptions . Needs to be fixed in future versions of UHT .
*/
ECompilationResult : : Type GCompilationResult = ECompilationResult : : OtherCompilationError ;
2014-03-14 14:13:41 -04:00
bool FNativeClassHeaderGenerator : : SaveHeaderIfChanged ( const TCHAR * HeaderPath , const TCHAR * InNewHeaderContents )
{
if ( ! bAllowSaveExportedHeaders )
{
// Return false indicating that the header did not need updating
return false ;
}
2015-09-21 07:53:49 -04:00
const TCHAR * NewHeaderContents = InNewHeaderContents ;
2014-03-14 14:13:41 -04:00
static bool bTestedCmdLine = false ;
if ( ! bTestedCmdLine )
{
bTestedCmdLine = true ;
2015-03-27 17:16:51 -04:00
const FString ReferenceGeneratedCodePath = FString ( FPaths : : GameSavedDir ( ) ) / TEXT ( " ReferenceGeneratedCode/ " ) ;
const FString VerifyGeneratedCodePath = FString ( FPaths : : GameSavedDir ( ) ) / TEXT ( " VerifyGeneratedCode/ " ) ;
if ( FParse : : Param ( FCommandLine : : Get ( ) , TEXT ( " WRITEREF " ) ) )
2014-03-14 14:13:41 -04:00
{
bWriteContents = true ;
2015-03-27 17:16:51 -04:00
UE_LOG ( LogCompile , Log , TEXT ( " ********************************* Writing reference generated code to %s. " ) , * ReferenceGeneratedCodePath ) ;
2014-03-14 14:13:41 -04:00
UE_LOG ( LogCompile , Log , TEXT ( " ********************************* Deleting all files in ReferenceGeneratedCode. " ) ) ;
2015-03-27 17:16:51 -04:00
IFileManager : : Get ( ) . DeleteDirectory ( * ReferenceGeneratedCodePath , false , true ) ;
IFileManager : : Get ( ) . MakeDirectory ( * ReferenceGeneratedCodePath ) ;
2014-03-14 14:13:41 -04:00
}
2015-03-27 17:16:51 -04:00
else if ( FParse : : Param ( FCommandLine : : Get ( ) , TEXT ( " VERIFYREF " ) ) )
2014-03-14 14:13:41 -04:00
{
bVerifyContents = true ;
2015-03-27 17:16:51 -04:00
UE_LOG ( LogCompile , Log , TEXT ( " ********************************* Writing generated code to %s and comparing to %s " ) , * VerifyGeneratedCodePath , * ReferenceGeneratedCodePath ) ;
2014-03-14 14:13:41 -04:00
UE_LOG ( LogCompile , Log , TEXT ( " ********************************* Deleting all files in VerifyGeneratedCode. " ) ) ;
2015-03-27 17:16:51 -04:00
IFileManager : : Get ( ) . DeleteDirectory ( * VerifyGeneratedCodePath , false , true ) ;
IFileManager : : Get ( ) . MakeDirectory ( * VerifyGeneratedCodePath ) ;
2014-03-14 14:13:41 -04:00
}
}
if ( bWriteContents | | bVerifyContents )
{
2014-04-23 20:18:55 -04:00
FString Ref = FString ( FPaths : : GameSavedDir ( ) ) / TEXT ( " ReferenceGeneratedCode " ) / FPaths : : GetCleanFilename ( HeaderPath ) ;
2014-03-14 14:13:41 -04:00
FString Verify = FString ( FPaths : : GameSavedDir ( ) ) / TEXT ( " VerifyGeneratedCode " ) / FPaths : : GetCleanFilename ( HeaderPath ) ;
if ( bWriteContents )
{
int32 i ;
for ( i = 0 ; i < 10 ; i + + )
{
if ( FFileHelper : : SaveStringToFile ( NewHeaderContents , * Ref ) )
{
break ;
}
FPlatformProcess : : Sleep ( 1.0f ) ; // I don't know why this fails after we delete the directory
}
check ( i < 10 ) ;
}
else
{
int32 i ;
for ( i = 0 ; i < 10 ; i + + )
{
if ( FFileHelper : : SaveStringToFile ( NewHeaderContents , * Verify ) )
{
break ;
}
FPlatformProcess : : Sleep ( 1.0f ) ; // I don't know why this fails after we delete the directory
}
check ( i < 10 ) ;
FString RefHeader ;
FString Message ;
if ( ! FFileHelper : : LoadFileToString ( RefHeader , * Ref ) )
{
Message = FString : : Printf ( TEXT ( " ********************************* %s appears to be a new generated file. " ) , * FPaths : : GetCleanFilename ( HeaderPath ) ) ;
}
else
{
if ( FCString : : Strcmp ( NewHeaderContents , * RefHeader ) ! = 0 )
{
Message = FString : : Printf ( TEXT ( " ********************************* %s has changed. " ) , * FPaths : : GetCleanFilename ( HeaderPath ) ) ;
}
}
if ( Message . Len ( ) )
{
UE_LOG ( LogCompile , Log , TEXT ( " %s " ) , * Message ) ;
ChangeMessages . AddUnique ( Message ) ;
}
}
}
FString OriginalHeaderLocal ;
FFileHelper : : LoadFileToString ( OriginalHeaderLocal , HeaderPath ) ;
const bool bHasChanged = OriginalHeaderLocal . Len ( ) = = 0 | | FCString : : Strcmp ( * OriginalHeaderLocal , NewHeaderContents ) ;
if ( bHasChanged )
{
if ( bFailIfGeneratedCodeChanges )
{
FString ConflictPath = FString ( HeaderPath ) + TEXT ( " .conflict " ) ;
FFileHelper : : SaveStringToFile ( NewHeaderContents , * ConflictPath ) ;
2014-04-23 18:36:17 -04:00
GCompilationResult = ECompilationResult : : FailedDueToHeaderChange ;
2014-03-14 14:13:41 -04:00
FError : : Throwf ( TEXT ( " ERROR: '%s': Changes to generated code are not allowed - conflicts written to '%s' " ) , HeaderPath , * ConflictPath ) ;
}
// save the updated version to a tmp file so that the user can see what will be changing
const FString TmpHeaderFilename = GenerateTempHeaderName ( HeaderPath , false ) ;
// delete any existing temp file
IFileManager : : Get ( ) . Delete ( * TmpHeaderFilename , false , true ) ;
if ( ! FFileHelper : : SaveStringToFile ( NewHeaderContents , * TmpHeaderFilename ) )
{
2016-01-27 12:09:53 -05:00
UE_LOG_WARNING_UHT ( TEXT ( " Failed to save header export preview: '%s' " ) , * TmpHeaderFilename ) ;
2014-03-14 14:13:41 -04:00
}
TempHeaderPaths . Add ( TmpHeaderFilename ) ;
}
// Remember this header filename to be able to check for any old (unused) headers later.
2015-03-27 18:10:52 -04:00
PackageHeaderPaths . Add ( FString ( HeaderPath ) . Replace ( TEXT ( " \\ " ) , TEXT ( " / " ) , ESearchCase : : CaseSensitive ) ) ;
2014-03-14 14:13:41 -04:00
return bHasChanged ;
}
/**
* Create a temp header file name from the header name
*
* @ param CurrentFilename The filename off of which the current filename will be generated
* @ param bReverseOperation Get the header from the temp file name instead
*
* @ return The generated string
*/
FString FNativeClassHeaderGenerator : : GenerateTempHeaderName ( FString CurrentFilename , bool bReverseOperation )
{
return bReverseOperation
? CurrentFilename . Replace ( TEXT ( " .tmp " ) , TEXT ( " " ) )
: CurrentFilename + TEXT ( " .tmp " ) ;
}
/**
* Exports the temp header files into the . h files , then deletes the temp files .
*
* @ param PackageName Name of the package being saved
*/
void FNativeClassHeaderGenerator : : ExportUpdatedHeaders ( FString PackageName )
{
for ( auto It = TempHeaderPaths . CreateConstIterator ( ) ; It ; + + It )
{
const FString & TmpFilename = * It ;
FString Filename = GenerateTempHeaderName ( TmpFilename , true ) ;
if ( ! IFileManager : : Get ( ) . Move ( * Filename , * TmpFilename , true , true ) )
{
UE_LOG ( LogCompile , Error , TEXT ( " %s " ) , * FString : : Printf ( TEXT ( " Error exporting %s: couldn't write file '%s' " ) , * PackageName , * Filename ) ) ;
}
else
{
UE_LOG ( LogCompile , Log , TEXT ( " Exported updated C++ header: %s " ) , * Filename ) ;
}
}
}
/**
* Exports protobuffer definitions from boilerplate that was generated for a package .
* They are exported to a file using the name < PackageName > . generated . proto
*/
void FNativeClassHeaderGenerator : : ExportGeneratedProto ( )
{
if ( GeneratedProtoText . Len ( ) )
{
UE_LOG ( LogCompile , Log , TEXT ( " Autogenerating boilerplate proto: %s.proto " ) , * GeneratedProtoFilenameBase ) ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder ProtoPreamble ;
2014-03-14 14:13:41 -04:00
ProtoPreamble . Logf (
2016-12-08 08:52:44 -05:00
TEXT ( " // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved. " ) LINE_TERMINATOR
2014-03-14 14:13:41 -04:00
TEXT ( " /*=========================================================================== " ) LINE_TERMINATOR
TEXT ( " Purpose: The file defines our Google Protocol Buffers which are used in over " ) LINE_TERMINATOR
TEXT ( " the wire messages between servers as well as between clients and servers. " ) LINE_TERMINATOR
TEXT ( " This is automatically generated by UnrealHeaderTool. " ) LINE_TERMINATOR
TEXT ( " DO NOT modify this manually! Edit the corresponding .h files instead! " ) LINE_TERMINATOR
TEXT ( " ===========================================================================*/ " ) LINE_TERMINATOR
LINE_TERMINATOR
TEXT ( " // We care more about speed than code size " ) LINE_TERMINATOR
TEXT ( " option optimize_for = SPEED; " ) LINE_TERMINATOR
TEXT ( " // We don't use the service generation functionality " ) LINE_TERMINATOR
TEXT ( " option cc_generic_services = false; " ) LINE_TERMINATOR
LINE_TERMINATOR
) ;
FString PkgName = FPackageName : : GetShortName ( Package ) ;
FString PkgDir ;
FString GeneratedIncludeDirectory ;
2014-09-18 04:05:01 -04:00
if ( FindPackageLocation ( * PkgName , PkgDir , GeneratedIncludeDirectory ) = = false )
2014-03-14 14:13:41 -04:00
{
UE_LOG ( LogCompile , Error , TEXT ( " Failed to find path for package %s " ) , * PkgName ) ;
}
FString HeaderPath = GeneratedIncludeDirectory / GeneratedProtoFilenameBase + TEXT ( " .proto " ) ;
SaveHeaderIfChanged ( * HeaderPath , * ( ProtoPreamble + GeneratedProtoText ) ) ;
}
}
/**
* Exports MCPbuffer definitions from boilerplate that was generated for a package .
* They are exported to a file using the name < PackageName > . generated . MCP
*/
void FNativeClassHeaderGenerator : : ExportGeneratedMCP ( )
{
if ( GeneratedMCPText . Len ( ) )
{
UE_LOG ( LogCompile , Log , TEXT ( " Autogenerating boilerplate MCP: %s.java " ) , * GeneratedMCPFilenameBase ) ;
2015-03-27 18:10:52 -04:00
FUHTStringBuilder MCPPreamble ;
2014-03-14 14:13:41 -04:00
MCPPreamble . Logf (
2016-12-08 08:52:44 -05:00
TEXT ( " // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved. " ) LINE_TERMINATOR
2014-03-14 14:13:41 -04:00
TEXT ( " /*=========================================================================== " ) LINE_TERMINATOR
TEXT ( " Purpose: The file defines java heaers for MCP rpc messages. " ) LINE_TERMINATOR
TEXT ( " DO NOT modify this manually! Edit the corresponding .h files instead! " ) LINE_TERMINATOR
TEXT ( " ===========================================================================*/ " ) LINE_TERMINATOR
) ;
FString PkgName = FPackageName : : GetShortName ( Package ) ;
FString PkgDir ;
FString GeneratedIncludeDirectory ;
2014-09-18 04:05:01 -04:00
if ( FindPackageLocation ( * PkgName , PkgDir , GeneratedIncludeDirectory ) = = false )
2014-03-14 14:13:41 -04:00
{
UE_LOG ( LogCompile , Error , TEXT ( " Failed to find path for package %s " ) , * PkgName ) ;
}
FString HeaderPath = GeneratedIncludeDirectory / GeneratedMCPFilenameBase + TEXT ( " .java " ) ;
SaveHeaderIfChanged ( * HeaderPath , * ( MCPPreamble + GeneratedMCPText ) ) ;
}
}
/**
* Exports C + + definitions for boilerplate that was generated for a package .
2014-04-23 20:18:55 -04:00
* They are exported to a file using the name < PackageName > . generated . cpp
2014-03-14 14:13:41 -04:00
* @ param ReferencedNames list of function names to export .
*/
void FNativeClassHeaderGenerator : : ExportGeneratedCPP ( )
{
2015-03-27 18:10:52 -04:00
FUHTStringBuilder GeneratedCPPPreamble ;
FUHTStringBuilder GeneratedCPPClassesIncludes ;
FUHTStringBuilder GeneratedCPPEpilogue ;
FUHTStringBuilder GeneratedCPPText ;
2014-03-14 14:13:41 -04:00
2015-03-27 18:10:52 -04:00
TArray < FUHTStringBuilder > GeneratedCPPFiles ;
2014-03-14 14:13:41 -04:00
UE_LOG ( LogCompile , Log , TEXT ( " Autogenerating boilerplate cpp: %s.cpp " ) , * GeneratedCPPFilenameBase ) ;
GeneratedCPPPreamble . Logf (
2016-12-08 08:52:44 -05:00
TEXT ( " // Copyright 1998-2017 Epic Games, Inc. All Rights Reserved. " ) LINE_TERMINATOR
2014-03-14 14:13:41 -04:00
TEXT ( " /*=========================================================================== " ) LINE_TERMINATOR
2015-09-21 07:53:49 -04:00
TEXT ( " \t Boilerplate C++ definitions for a single module. " ) LINE_TERMINATOR
TEXT ( " \t This is automatically generated by UnrealHeaderTool. " ) LINE_TERMINATOR
TEXT ( " \t DO NOT modify this manually! Edit the corresponding .h files instead! " ) LINE_TERMINATOR
2014-03-14 14:13:41 -04:00
TEXT ( " ===========================================================================*/ " ) LINE_TERMINATOR
LINE_TERMINATOR
) ;
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
// Write out an include for the generated header boilerplate code
//GeneratedCPPPreamble.Logf(TEXT("#pragma once") LINE_TERMINATOR);
GeneratedCPPPreamble . Logf ( TEXT ( " #include \" GeneratedCppIncludes.h \" " ) LINE_TERMINATOR ) ;
2014-04-24 15:04:34 -04:00
FString ModulePCHInclude ;
2014-04-23 20:18:55 -04:00
const auto * ModuleInfo = GPackageToManifestModuleMap . FindChecked ( Package ) ;
if ( ModuleInfo - > PCH . Len ( ) )
{
2014-04-28 04:53:09 -04:00
FString PCH = ModuleInfo - > PCH ;
2014-05-19 06:57:00 -04:00
ConvertToBuildIncludePath ( Package , PCH ) ;
2014-04-28 04:53:09 -04:00
ModulePCHInclude = FString : : Printf ( TEXT ( " #include \" %s \" " ) LINE_TERMINATOR , * PCH ) ;
2014-04-23 20:18:55 -04:00
}
// Write out the ordered class dependencies into a single header that we can easily include
FString DepHeaderPathname = ModuleInfo - > GeneratedCPPFilenameBase + TEXT ( " .dep.h " ) ;
SaveHeaderIfChanged ( * DepHeaderPathname , * ( GeneratedCPPPreamble + ListOfPublicClassesUObjectHeaderModuleIncludes ) ) ;
// Write out our include to the .dep.h file
GeneratedCPPClassesIncludes . Logf ( TEXT ( " #include \" %s \" " ) LINE_TERMINATOR , * FPaths : : GetCleanFilename ( DepHeaderPathname ) ) ;
2014-03-14 14:13:41 -04:00
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
GeneratedCPPClassesIncludes . Logf ( TEXT ( " PRAGMA_DISABLE_OPTIMIZATION " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2781504 on 2015/11/25 by Mike.Beach
Guarding against invalid nodes for deferred graph node actions (add, remove, select), by using TWeakObjectPtr instead of raw UEdGraphNode pointers.
#jira UE-23371
#codereview Dan.OConnor
Change 2781513 on 2015/11/25 by Michael.Schoell
Find-in-Blueprints optimized gathering.
Size of data has shrunk in the Asset Registry by up to one fifth the old size!
Performance moderately improved.
Load and save times of Blueprints increased, less redundant gathering of searchable data.
#jira UE-22928 - Optimize Find-in-Blueprints Gathering of Searchable Data
Change 2781517 on 2015/11/25 by Michael.Schoell
Marked FTimerHandle::Handle as a UPROPERTY(transient) so that Blueprints can check the equality of two instances of the structure.
#jira UE-23136 - Remove Item Node Removes All Objects in an Array
Change 2781804 on 2015/11/26 by Maciej.Mroz
Changed ConformImplementedEvents.
#jira UE-23738 BP_RiftMage_Ultimate fails to convert during cooking
#codereview Phillip.Kavan, Mike.Beach
Change 2781821 on 2015/11/26 by Ben.Cosh
This reinstates the blueprint debugging keymaps and adds additional functionality for step over and step out as key maps in the PIE world controls.
#UEBP-66 - Blueprint debug keymappings
#UE-16817 - Add step-in, step-over, and run until here functions for breakpoints
#UE-12481 - The F10 key doesn't work for stepping blueprint debugging
#Branch UE4
#Proj GraphEditor, Kismet, UnrealEd, CoreUObject, Slate
reviewedby chris.wood
Change 2781861 on 2015/11/26 by Maciej.Mroz
UE-23626 Converted tower defense game - you cannot click to place towers
CodeGenerator generates overriden exported names for events and functions.
#codereview Dan.Oconnor, Steve.Robb
Change 2782798 on 2015/11/30 by Maciej.Mroz
BP C++ conversion: components from SCS calls AttachTo (with ParentSocket parameter).
#jira UE-23862 Pawns in TowerDefenseGame don't move in converted build
#codereview Phillip.Kavan, Mike.Beach, Dan.Oconnor
Change 2782881 on 2015/11/30 by Michael.Schoell
Fixed ensure when promoting function graphs from interfaces during interface removal.
#jira UE-23717 - Ensure removing an implemented interface when transfering functions
Change 2783041 on 2015/11/30 by Maciej.Mroz
BP C++ conversion: All variables from Event Graph are listed as class properties.
#jira UE-23629 Converted tower defense game - Cam scrolls to upper left when mouse leaves window
#codereview Mike.Beach, Dan.Oconnor
Change 2783080 on 2015/11/30 by Michael.Schoell
Removing an interface function's output parameters will no longer cause Blueprints implementing the function to error.
Functions expected as event overrides will accept function graph implementations and give a warning informing that it is unexpected.
All function graphs (interfaces, interface implementations, overrides) can be duplicated. Parent function calls will be removed.
Duplicating graphs will correct names of objects in child Blueprints.
Function overrides of interfaces expected as an event can be deleted.
Duplicating graphs while in PIE is no longer possible.
When removing an interface, the operation can now be canceled.
#jira UE-13335 - Inside a BP Interface, changing a Function output to an input will cause a compile error in the reference bp
Change 2783338 on 2015/11/30 by Michael.Schoell
New output pins on function result nodes will properly fill out with valid default values.
All invalid pins will auto-validate themselves on node reconstruction when opening the Blueprint.
#jira UE-1928 - BLUEPRINTS: Default value not supplied for output parameters of function
Change 2783742 on 2015/11/30 by Phillip.Kavan
[UE-15463] Add special-case handling for failed imports of BPGC-owned component archetype objects on level load.
change summary:
- modified FLinkerLoad::VerifyImport() to customize the load error messaging for missing component archetype objects
Change 2784652 on 2015/12/01 by Ben.Cosh
Fix for crash whilst undoing the creation of a macro and currently displaying the tooltip in the blueprint editor.
#UE-23955 - Adding a macro graph through MyBlueprint and then calling undo causes a crash updating the macro tooltip.
#Branch UE4
#Proj Kismet
#CodeReview Chris.Wood
Change 2784834 on 2015/12/01 by Michael.Schoell
Added functions to convert from string to: Vector, Vector2D, Rotator, Color.
#jira UE-23761 - GitHub 1795 : [KismetStringLibrary] Convert String Back Into Vector, Rotator, Float, Adding Support for 2 way conversion! ? Rama
PR #1795
2015-12-16 17:17:43 -05:00
// Autogenerate names (alphabetically sorted).
ReferencedNames . KeySort ( TLess < FName > ( ) ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2781504 on 2015/11/25 by Mike.Beach
Guarding against invalid nodes for deferred graph node actions (add, remove, select), by using TWeakObjectPtr instead of raw UEdGraphNode pointers.
#jira UE-23371
#codereview Dan.OConnor
Change 2781513 on 2015/11/25 by Michael.Schoell
Find-in-Blueprints optimized gathering.
Size of data has shrunk in the Asset Registry by up to one fifth the old size!
Performance moderately improved.
Load and save times of Blueprints increased, less redundant gathering of searchable data.
#jira UE-22928 - Optimize Find-in-Blueprints Gathering of Searchable Data
Change 2781517 on 2015/11/25 by Michael.Schoell
Marked FTimerHandle::Handle as a UPROPERTY(transient) so that Blueprints can check the equality of two instances of the structure.
#jira UE-23136 - Remove Item Node Removes All Objects in an Array
Change 2781804 on 2015/11/26 by Maciej.Mroz
Changed ConformImplementedEvents.
#jira UE-23738 BP_RiftMage_Ultimate fails to convert during cooking
#codereview Phillip.Kavan, Mike.Beach
Change 2781821 on 2015/11/26 by Ben.Cosh
This reinstates the blueprint debugging keymaps and adds additional functionality for step over and step out as key maps in the PIE world controls.
#UEBP-66 - Blueprint debug keymappings
#UE-16817 - Add step-in, step-over, and run until here functions for breakpoints
#UE-12481 - The F10 key doesn't work for stepping blueprint debugging
#Branch UE4
#Proj GraphEditor, Kismet, UnrealEd, CoreUObject, Slate
reviewedby chris.wood
Change 2781861 on 2015/11/26 by Maciej.Mroz
UE-23626 Converted tower defense game - you cannot click to place towers
CodeGenerator generates overriden exported names for events and functions.
#codereview Dan.Oconnor, Steve.Robb
Change 2782798 on 2015/11/30 by Maciej.Mroz
BP C++ conversion: components from SCS calls AttachTo (with ParentSocket parameter).
#jira UE-23862 Pawns in TowerDefenseGame don't move in converted build
#codereview Phillip.Kavan, Mike.Beach, Dan.Oconnor
Change 2782881 on 2015/11/30 by Michael.Schoell
Fixed ensure when promoting function graphs from interfaces during interface removal.
#jira UE-23717 - Ensure removing an implemented interface when transfering functions
Change 2783041 on 2015/11/30 by Maciej.Mroz
BP C++ conversion: All variables from Event Graph are listed as class properties.
#jira UE-23629 Converted tower defense game - Cam scrolls to upper left when mouse leaves window
#codereview Mike.Beach, Dan.Oconnor
Change 2783080 on 2015/11/30 by Michael.Schoell
Removing an interface function's output parameters will no longer cause Blueprints implementing the function to error.
Functions expected as event overrides will accept function graph implementations and give a warning informing that it is unexpected.
All function graphs (interfaces, interface implementations, overrides) can be duplicated. Parent function calls will be removed.
Duplicating graphs will correct names of objects in child Blueprints.
Function overrides of interfaces expected as an event can be deleted.
Duplicating graphs while in PIE is no longer possible.
When removing an interface, the operation can now be canceled.
#jira UE-13335 - Inside a BP Interface, changing a Function output to an input will cause a compile error in the reference bp
Change 2783338 on 2015/11/30 by Michael.Schoell
New output pins on function result nodes will properly fill out with valid default values.
All invalid pins will auto-validate themselves on node reconstruction when opening the Blueprint.
#jira UE-1928 - BLUEPRINTS: Default value not supplied for output parameters of function
Change 2783742 on 2015/11/30 by Phillip.Kavan
[UE-15463] Add special-case handling for failed imports of BPGC-owned component archetype objects on level load.
change summary:
- modified FLinkerLoad::VerifyImport() to customize the load error messaging for missing component archetype objects
Change 2784652 on 2015/12/01 by Ben.Cosh
Fix for crash whilst undoing the creation of a macro and currently displaying the tooltip in the blueprint editor.
#UE-23955 - Adding a macro graph through MyBlueprint and then calling undo causes a crash updating the macro tooltip.
#Branch UE4
#Proj Kismet
#CodeReview Chris.Wood
Change 2784834 on 2015/12/01 by Michael.Schoell
Added functions to convert from string to: Vector, Vector2D, Rotator, Color.
#jira UE-23761 - GitHub 1795 : [KismetStringLibrary] Convert String Back Into Vector, Rotator, Float, Adding Support for 2 way conversion! ? Rama
PR #1795
2015-12-16 17:17:43 -05:00
for ( auto & PairIt : ReferencedNames )
{
GeneratedCPPText . Logf ( TEXT ( " FName %s_%s = FName(TEXT( \" %s \" )); " ) LINE_TERMINATOR , * API , * PairIt . Key . ToString ( ) , * PairIt . Value . ToString ( ) ) ;
}
2014-03-14 14:13:41 -04:00
}
2016-02-12 17:00:45 -05:00
GeneratedCPPText . Log ( * GeneratedPackageCPP ) ;
2014-03-14 14:13:41 -04:00
GeneratedCPPEpilogue . Logf (
LINE_TERMINATOR
) ;
2015-03-10 08:24:59 -04:00
FString EnableDeprecationWarnings = FString ( TEXT ( " PRAGMA_ENABLE_DEPRECATION_WARNINGS " ) LINE_TERMINATOR ) ;
FString DisableDeprecationWarnings = FString ( TEXT ( " PRAGMA_DISABLE_DEPRECATION_WARNINGS " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
const bool bNativizaedAssetsModule = ( ModuleInfo - > Name = = TEXT ( " NativizedAssets " ) ) ;
const FString DisableWarning4883 ( TEXT ( " #ifdef _MSC_VER " ) LINE_TERMINATOR TEXT ( " #pragma warning (push) " ) LINE_TERMINATOR TEXT ( " #pragma warning (disable : 4883) " ) LINE_TERMINATOR TEXT ( " #endif " ) LINE_TERMINATOR ) ;
const FString EnableWarning4883 ( TEXT ( " #ifdef _MSC_VER " ) LINE_TERMINATOR TEXT ( " #pragma warning (pop) " ) LINE_TERMINATOR TEXT ( " #endif " ) LINE_TERMINATOR ) ;
2014-03-14 14:13:41 -04:00
FString PkgName = FPackageName : : GetShortName ( Package ) ;
FString PkgDir ;
if ( GeneratedFunctionDeclarations . Len ( ) | | CrossModuleGeneratedFunctionDeclarations . Len ( ) )
{
ExportGeneratedPackageInitCode ( Package ) ;
}
TArray < FString > NumberedHeaderNames ;
2014-04-23 20:18:55 -04:00
// Generate each of the .generated.cpp files
2014-03-14 14:13:41 -04:00
for ( int32 FileIdx = 0 ; FileIdx < GeneratedFunctionBodyTextSplit . Num ( ) ; FileIdx + + )
{
2015-03-27 18:10:52 -04:00
FUHTStringBuilder FileText ;
2014-03-14 14:13:41 -04:00
// The first file has all of the GeneratedCPPText, only the functions are split.
if ( FileIdx = = 0 )
{
FileText = GeneratedCPPText ;
}
if ( GeneratedFunctionDeclarations . Len ( ) | | CrossModuleGeneratedFunctionDeclarations . Len ( ) )
{
FileText . Logf ( TEXT ( " #if USE_COMPILED_IN_NATIVES \r \n " ) ) ;
if ( CrossModuleGeneratedFunctionDeclarations . Len ( ) )
{
FileText . Logf ( TEXT ( " // Cross Module References \r \n " ) ) ;
FileText . Log ( CrossModuleGeneratedFunctionDeclarations ) ;
FileText . Logf ( TEXT ( " \r \n " ) ) ;
}
FileText . Log ( GeneratedFunctionDeclarations ) ;
2015-04-14 08:03:34 -04:00
FileText . Log ( GeneratedFunctionBodyTextSplit [ FileIdx ] . Get ( ) ) ;
2014-03-14 14:13:41 -04:00
FileText . Logf ( TEXT ( " #endif \r \n " ) ) ;
}
2014-05-02 14:40:02 -04:00
FString CppPath = ModuleInfo - > GeneratedCPPFilenameBase + ( GeneratedFunctionBodyTextSplit . Num ( ) > 1 ? * FString : : Printf ( TEXT ( " .%d.cpp " ) , FileIdx + 1 ) : TEXT ( " .cpp " ) ) ;
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
const FString GeneratedLinkerFixupFunction = FString : : Printf ( TEXT ( " void EmptyLinkFunctionForGeneratedCode%d%s() {} " ) LINE_TERMINATOR , FileIdx + 1 , * ModuleInfo - > Name ) ;
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3025888)
#rb none
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2927746 on 2016/03/30 by Michael.Schoell
Local variables in function graphs will now store a hard reference to their UObject value.
Fixes a crash when a Blueprint is saved before compiling with the local variable's value set. Ensures that the UObject is loaded with the Blueprint.
#jira UE-27738 - Local variables in a function that is in a blueprint will somehow become invalid when calling a native
Change 2927751 on 2016/03/30 by Michael.Schoell
Back out changelist 2927746
Change 2986483 on 2016/05/23 by Maciej.Mroz
#jira UE-30976 Editable enum values set on an instance are lost during nativization
Added overriden names of Enum keys.
Change 2986712 on 2016/05/23 by Phillip.Kavan
[UE-21010] Apply updated transform to component template instances when changing the scene root in a Blueprint class.
change summary:
- modified SSCS_RowWidget::OnMakeNewRootDropAction() to propagate the location/rotation reset to instances of the component template that's becoming the new scene root.
Change 2987406 on 2016/05/23 by Ryan.Rauschkolb
Fixed Functions filter in Find-In-Blueprints will show components from the SCS
#jira UE-30140
Change 2988925 on 2016/05/24 by Ryan.Rauschkolb
Fixed Issue where certain primitives would not automatically type cast to Text in Blueprint graph.
#jira UE-20232
Change 2989001 on 2016/05/24 by Dan.Oconnor
PR #2418: Fixed a typo in Blueprint.h (Contributed by PistonMiner)
#jira UE-31142
Change 2989447 on 2016/05/25 by Phillip.Kavan
[UE-30807] Propagate edit condition property value changes to instances of template objects.
change summary:
- modified FPropertyEditor::SetEditConditionState() to propagate an EditConditionProperty value change to all instances if the outer owning object is a template (e.g. CDO)
Change 2989804 on 2016/05/25 by Phillip.Kavan
[UE-30289] Preserve relative scale on the root scene component when converting an Actor instance to a Blueprint Class.
change summary:
- modified FKismetEditorUtilities::CreateBlueprintFromActor() to post-copy the relative scale value from the Actor's root component to the new Blueprint CDO's root component
Change 2990234 on 2016/05/25 by Ryan.Rauschkolb
Fixed issue where including a period ina Blueprint function causes double-click to fail to open its graph
#jira UE-4426
Change 2990566 on 2016/05/25 by Mike.Beach
Better warn logging to help locate variable nodes that emit a "variable not found" message.
Change 2991083 on 2016/05/26 by Maciej.Mroz
Blueprint nativization: converted classes have "config" specified.
Change 2991363 on 2016/05/26 by Phillip.Kavan
[UE-19599] Copy-and-paste of Actor instances from level to Blueprint/IWCE component tree views now adds properly-initialized components.
change summary:
- modified FCustomizableTextObjectFactory::CanCreateObjectsFromText() to handle "Begin Actor/End Actor" blocks in T3D text
- modified FCustomizableTextObjectFactory::ProcessBuffer() to handle "Begin Actor/End Actor" blocks in T3D text (so that Actor-type objects can be processed)
- modified FComponentObjectTextFactory::CanCreateClass() to allow Actor-type objects to pass
- modified FComponentObjectTextFactory::ProcessConstructedObject() to handle Actor-type objects and pull out owned component instances as constructed objects
Change 2992990 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where Connecting Self Reference Pin to a String pin does not fully connect the generated GetDisplayName node
#jira UE-21973
Change 2992995 on 2016/05/27 by Ryan.Rauschkolb
Fixed issue where GetClass node is not listed in the Context Menu when pulling from a self node and Context Sensitive is checked.
#jira UE-30990
Change 2993449 on 2016/05/27 by Phillip.Kavan
[UE-31379] Don't instrument "preview" Actor instances during Blueprint profiler script event processing.
change summary:
- modified FBlueprintProfiler::InstrumentEvent() to check for and bypass Actor instances belonging to a preview or inactive world type.
Change 2993531 on 2016/05/27 by Mike.Beach
PR #2433: Interface functions inherited from a native base class now appear in . (Contributed by MichaelSchoell)
Change 2993969 on 2016/05/30 by Maciej.Mroz
UE-30729 Crash in Native Orion when selecting Sword or Tomahawk
Clear AsyncLoading in subobjects.
Change 2993990 on 2016/05/30 by Phillip.Kavan
[UE-30984] Exclude reroute nodes from Blueprint profiler node mapping.
change summary:
- modified FBlueprintFunctionContext::MapInputPins() to pass through non-relevant nodes when iterating through non-exec input pin links.
- modified FBlueprintFunctionContext::MapExecPins() to pass through non-relevant nodes when iterating through output exec pin links.
- modified FBlueprintFunctionContext::MapTunnelEntry() to pass through non-relevant nodes when iterating through tunnel node exit points.
- modified FBlueprintFunctionContext::MapTunnelInstance() to pass through non-relevant nodes when iterating through tunnel graph entry points.
Change 2994591 on 2016/05/31 by Ryan.Rauschkolb
Fixed issue where inherited Blueprint variable would not show parent's replications settings
#jira UE-18912
Change 2994613 on 2016/05/31 by Ben.Cosh
Minor refactor and Various fixes to the blueprint profiler moving towards MVP goal.
#Jira UE-27039 - Blueprint Profiler does not lists stats when calling an Event Dispatcher
#Jira UE-31396 - Blueprint profiler crashes inside the profiler connection drawing policy
#Jira UE-30957 - "Pure Time" does not populate with data in the Blueprint Profiler
#Jira UE-30926 - Blueprint profiler - expose heatmap thresholds to user through the profiler tab
#Jira UE-30909 - Blueprint Profiler - "compile" icon should denote Blueprint's instrumented status
#Jira UE-30911 - Blueprint profiler tab/panel should display warning when Blueprint is uninstrumented
#Jira UE-31385 - BP Profiler - Inclusive time column should be entirely filled out
#Jira UE-31375 - BP Profiler - Default sample averaging to the "arithmetic mean"
#Jira UE-31377 - BP Profiler - Default tree view filtering to off
#Jira UE-31387 - BP Profiler - Remove the "view type" button for MVP
#Jira UE-31384 - BP Profiler - In the tree view, rename the first time column "Avg. Time (ms)"
Notes:-
- Sequence node inclusive time fixed
- Trace History tidy up
- Compile Icon and status messages for instrumentation
- Message in the profiler tab for instrumentation
- Profiler view tidy up and heat thresholds controls added
- fixed the summed execution branch stats
- fixed the connection drawing policy to use branch pin stats and fixed the crash from UE-31396
- added hottest path and hottest endpoint wire heatmaps
- switched off the graph filter by default
- added total time for the heatmaps
- fixed issue where initialising mapped functions caused an assert due to changes to the array/map in initialisation code
Change 2995058 on 2016/05/31 by Phillip.Kavan
[UE-30718] Native/const implementable events will no longer cause a crash at runtime when the Blueprint profiler is running.
change summary:
- modified UObject::ProcessEvent() to bypass instrumentation for native event functions that are not implemented (overridden) in a BP class.
- modified FScriptEventPlayback::Process() to first check for a standalone function match (UCS, implementable events declared as 'const') before settling on the ubergraph function for the target context.
Change 2995218 on 2016/05/31 by Phillip.Kavan
[UE-30778] Restored non-K2 compact graph nodes (e.g. Material Editor) to previous size.
change summary:
- modified SGraphNode::GetNodeIndicatorOverlayVisibility() default impl to return 'Collapsed' by default, so it doesn't affect layout.
Change 2996417 on 2016/06/01 by Phillip.Kavan
[UE-16073] Basic shape components (cube etc.) will now apply the correct override material to instances after being added through the component tree in the Blueprint editor.
change summary:
- modified the 'OnBasicShapeCreated' lambda in FComponentTypeRegistryData::AddBasicShapeComponents() to propagate the material override to all instances when the given component is an archetype (template) object.
Change 2997001 on 2016/06/01 by Ryan.Rauschkolb
Fixed Double Clicking a component in the results of Find-In-Blueprints does not select the component
#jira UE-30143
Change 2997521 on 2016/06/02 by Maciej.Mroz
[Blueprint Nativization]
- Added FilesToIncludeInModuleHeader config variable in BlueprintNativizationSettings. So some headers can be included in NativizedAssets.h
- Guids of nodes are no longer recreated when Blueprint is duplicated for "C++ compilation". Previously child bp used variable names based on original parent class, but nativized parent class had guids recreated.
Change 2997522 on 2016/06/02 by Maciej.Mroz
Native implementation of NOEXPORT FInterpCurvePoint structures. (It's necessary for Blueprint nativization)
Change 2997638 on 2016/06/02 by Maciej.Mroz
Improvements for Blueprint Nativization:
- Overridden names in nativized code have proper escape characters (in generated code).
- OnlyDefaultConstructorDeclared metadata is replaced by ObjectInitializerConstructorDeclared
- Arrays of nativized anum have the following form: TArray<Enum> (previously it was TArray<TEnumAsByte<Enum>>)
- warning C4883 is disabled in .generated.cpp files for nativized module
Change 2997639 on 2016/06/02 by Maciej.Mroz
Minor improvements in Ocean gameplay code. Required for Blueprint Nativization.
#jira UE-28945 Failure packaging Nativized Ocean
Change 2997656 on 2016/06/02 by Maciej.Mroz
Various improvements in BlueprintCompilerCppBackend:
- Fixed interface cast
- Fixed TSwitchValue issue (when used with literals)
- Fixed improper name for NativeBlueprintEvent (when calling parent's implementation)
- Fixed bitfield getter code.
- Reduce code size (less UsedAssets, less ReferencedConvertedFields, cached UEnums)
- operator == is generated for nativized structs
- Fixed AssedId (AssetPtr) constructor in nativized code.
- Fixed arrays of noexport struct
- Fixed missing headers for native single cast delegate signature.
- Fixed issue when default constructor (in native) is missing (constructor with FObjectInitialized, wont be used automatically). See "ObjectInitializerConstructorDeclared" metadata.
Change 2997691 on 2016/06/02 by Maciej.Mroz
operator == in FText. It is required for some functions in TArray<FText>
Change 2997793 on 2016/06/02 by Ben.Cosh
Added support for BaseAsyncTask nodes, fixed a problem with instance mapping and turned off the debug instance filter
#Jira UE-30703 - Crash using blueprint profiler on AI pawn using nav mesh
#Proj BlueprintProfiler, Kismet
Change 2997901 on 2016/06/02 by Maciej.Mroz
Back out changelist 2997691
Change 2998038 on 2016/06/02 by Mike.Beach
Merging //UE4/Dev-Main to Dev-Blueprints (//UE4/Dev-Blueprints)
Change 2998052 on 2016/06/02 by Ryan.Rauschkolb
Fixed Comment bubbles not remembering changes after losing focus
#jira UE-20012
Change 2998450 on 2016/06/02 by Phillip.Kavan
[UE-31550] Fix crash on load of a Blueprint class containing a bitmask variable with missing enum type metadata.
change summary:
- modified FBlueprintEditorUtils::ValidateBlueprintVariableMetadata() to check for presence of bitmask enum type metadata on a variable before trying to validate it.
Change 2999763 on 2016/06/03 by Mike.Beach
Guarding against a crash with an ensure - attempting to catch why this is happening by logging more info, as we're unable to repro it. Guarding against nodes which reference malformed (TRASH) classes.
#jira UE-26761
Change 2999768 on 2016/06/03 by Maciej.Mroz
#jira UE-31592, UE-31593
This is just workaound. FReferenceFinder::FindReferences doesn;t find Enum variable in UByteProperty.
Change 2999770 on 2016/06/03 by Maciej.Mroz
[Blueprint Nativization]
Workaround for missing ==operator in native structures. The generated code uses special version of array funtions.
Change 2999798 on 2016/06/03 by Mike.Beach
Guarding against malformed Blueprints (ones without valid "authoratative" class) used as context for the node menu. Baffling how we'd get into this scenario, but this adds ensures to hopefully give us clues and stabalize the editor.
#jira UE-31522
Change 2999941 on 2016/06/03 by Mike.Beach
Correcting mistake in previously attempted fix (CL 2781229). Now using weak ptr IsValid checks to guard against destroyed nodes in deferred graph actions (TWeakObjectPtr::Get() does not check IsValid before returning).
#jira UE-23371
Change 3001731 on 2016/06/06 by Phillip.Kavan
[UE-30638] BP profiler will no longer crash at runtime while profiling events that call functions on an external target.
change summary:
- modified FBlueprintProfiler::ProcessEventProfilingData() to only remove 'Class' and 'Instance' signals on new events.
- modified FScriptEventPlayback::NodeSignalHelper struct to include a new 'BlueprintContext' field.
- modified FScriptEventPlayback::Process() to handle midstream context switches by updating the Blueprint/Function context on 'Class' and/or 'Instance' signals.
- modified FScriptEventPlayback::Process() to cache and reference the current Blueprint context within the cached NodeSignalHelper while handling processed events.
Change 3002075 on 2016/06/06 by Maciej.Mroz
Improved FScriptBuilderBase::EmitTermExpr in KismetCompilerVMBackend.
Literal expression can be emitted without known desitination property.
#jira UE-28443 Set Boolean (by ref) crashes the editor on compile
Change 3002096 on 2016/06/06 by Ben.Cosh
This change expands the way that the blueprint profiler detects event nodes during mapping to include other non function graphs.
#Jira UE-30716 - Blueprint Profiler crashes if function in another graph is called
#Proj BlueprintProfiler
Change 3002108 on 2016/06/06 by Ben.Cosh
Adds a new default option to average the blueprint level stats in the profiler.
#Jira UE-31386 - BP Profiler - Timings reported with "Show Instances" off (in the tree view) are not averaged
#Proj Kismet, BlueprintProfiler
- The controls were also getting a bit messy so I tidied them all up into a re-usable toolbar for convenience going forward.
Change 3002782 on 2016/06/06 by samuel.proctor
Test assets for Interface testing
Change 3003826 on 2016/06/07 by Ben.Cosh
A few minor visual improvements for the blueprint profiler.
#Proj Kismet, BlueprintProfiler, EditorStyle
- Updated the actor icon to match the world outliner and added some functionality to draw attention to stale/deleted actors.
- Updated the pure node icon.
Change 3004067 on 2016/06/07 by samuel.proctor
New test asset for blueprint interfaces
Change 3004069 on 2016/06/07 by samuel.proctor
Updating asset for Interface testing
Change 3004275 on 2016/06/07 by Ryan.Rauschkolb
Fixed issue where Toggle Comment Bubble button for Reroute nodes would not rever tthe comment bubble to constant visibility
#jira UE-23733
Change 3004329 on 2016/06/07 by Dan.Oconnor
EdGraphPin is no longer a UObject, this will improve load times significantly on projects with large number of blueprints, but content does need to be resaved in order to see the improvement in load time. UObject counts are also greatly reduced.
Change 3004418 on 2016/06/07 by Maciej.Mroz
KismetCompilerVMBackend: Fixed issue, when a byte property has no enum specified (for examle parameter from EqualEqual_ByteByte) but the enum is needed to parse a literal value.
Change 3004496 on 2016/06/07 by Dan.Oconnor
Disabling expensive pin allocation tracking
Change 3004649 on 2016/06/07 by Mike.Beach
Preventing a new warning from being generated on trace point exceptions (trace point exceptions are used to hook into the debugger, and don't represent errors).
#jira UE-31236
Change 3004667 on 2016/06/07 by Dan.Oconnor
Removed my debugging logic
Change 3004848 on 2016/06/07 by Dan.Oconnor
Fix spammy ensure
Change 3004871 on 2016/06/07 by Phillip.Kavan
[UE-24950] No longer including components instanced as default subobjects of and attached to components instanced by construction script in the IWCE component tree view.
change summary:
- modified SSCSEditor::UpdateTree() to exclude child components instanced in native code as "nested" DSOs and parented to non-natively-constructed (e.g. Blueprint) components; these instances are no longer being shown in IWCE in order to avoid confusion, as they're not currently mutable at the instance level, will always be parented to something that is visible in the tree, and they're also not currently shown in the Blueprint editor's component tree view (because they're not stored in the CDO).
- modified FSceneComponentData's ctor to exclude child components instanced in native code as nested DSOs from the AttachedInstancedComponents array; this allows child components instanced as nested DSOs to be disposed of along with the constructed parent instance when re-running construction scripts.
Change 3005203 on 2016/06/07 by Dan.Oconnor
Fix for undo/redo/serialization issues with ed graph pin change. When serialization logic was applied incrementally our attempts to keep LinkedTo symetrical and aggressively clear destroyed nodes caused problems
#jira UE-31750
Change 3005441 on 2016/06/08 by Maciej.Mroz
#jira UE-31625 Crash in nativized Orion
AssembleReferenceTokenStream is called for Dynamic Classes:
- in ConstructDynamicType() (when class is explicitly loaded)
- in __CustomDynamicClassInitialization() (when CDO is created)
Change 3005540 on 2016/06/08 by Ben.Cosh
This adds the ability to track profiler instances between editor and PIE instances and displays the current status through the icon coloring.
#Jira UE-30705 - Blueprint profiler stats lost if instance destroyed during PIE
#Proj BlueprintProfiler, Kismet
- The jira was already fixed but I think this change improves the instance status clarity
Change 3006196 on 2016/06/08 by Dan.Oconnor
Copy/paste logic for pin connections got lost in the shuffle
#jira UE-31747
Change 3006416 on 2016/06/08 by Phillip.Kavan
[UE-31735] Fix potential loss of GetClassDefaults node output pin links on load (due to dependency load order).
change summary:
- modified UK2Node_GetClassDefaults::GetInputClass() to redirect to the generated skeleton class only if it's valid. this ensures that output pins will be reallocated during node reconstruction even if the dependent Blueprint's skeleton class has not yet been generated on load.
Change 3006522 on 2016/06/08 by Dan.Oconnor
Under rare circumstances a deprecated pin comes in that is outered to the transient package
#jira UE-31779
Change 3006576 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
#jira UE-31796
Change 3006610 on 2016/06/08 by Phillip.Kavan
[UE-31743] Fix data loss issue when loading a serialized non-native component class instance that's owned by an Actor-based Blueprint class instance.
change summary:
- modified FObjectInitializer::InitProperties() to disable fast path initialization for non-native class types when the default data does not equate to the non-native CDO (as is also done within the native path). this is necessary because the optimized property list that we generate at load time to support fast path initialization of Blueprint class instances is only applicable to the generated CDO.
Change 3006824 on 2016/06/08 by Dan.Oconnor
More undo/redo fixes, this time fixes for when transaction buffer changes # of pins, thus destabalizing the LinkedTo arrays
#jira UE-31794
Change 3006828 on 2016/06/08 by Dan.Oconnor
Fix for non-editor builds
Change 3006857 on 2016/06/08 by Dan.Oconnor
Investigating shutdown ensure, traced back to a static UEdGraphPin
Change 3006907 on 2016/06/08 by Dan.Oconnor
Noneditor build fix
Change 3006929 on 2016/06/08 by Dan.Oconnor
Deferring DeprecatedPins destruction until after UBlueprint has had a chance to fix up its watched pins, this is a better fix for #jira UE-31779
Change 3007133 on 2016/06/09 by Ben.Cosh
Fix for issue in the profiler asserting creating pins that don't have unique names.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
- I believe this was recently introduced with the changes to UEdGraphPin's
Change 3007964 on 2016/06/09 by Dan.Oconnor
Fix for PinHelpers::UnresolvedPins being left with stale entries by undo/redo
#jira UE-31829
Change 3007996 on 2016/06/09 by Ryan.Rauschkolb
Added 'empty' keyword to Array Clear Node.
#jira UE-12356
Change 3008007 on 2016/06/09 by Ryan.Rauschkolb
Added 'negate' keyword to boolean NOT node
#jira UE-12490
Change 3008011 on 2016/06/09 by Ryan.Rauschkolb
Added Vector2D * Vector2D multiplication node
#jira UE-31503
Change 3008014 on 2016/06/09 by Ryan.Rauschkolb
Fixed Cannot connect Make Array node output to MakeArray input with split pins
#jira UE-28530
Change 3008243 on 2016/06/09 by Dan.Oconnor
Fix for creation of FWeakGraphPinPtr from a pin that had been destroyed, client logic is still a bit broken in the case of the ClassDefaults node, but we're back to 'safe'
#jira UE-31841
Change 3008289 on 2016/06/09 by Dan.Oconnor
Editor transaction saves all state before applying undo/redo buffers when using 'bFlip' flow. This prevents messing with the object graph in the middle of saving state that will be restored later
#jira UE-31794
Change 3008422 on 2016/06/09 by Dan.Oconnor
Correct usage of GIsTransacting, replaced with Ar.IsTransacting() to correctly handle the case where we serialize after transacting but during the transaction (for instance, recompile blueprint in post undo, which we do quite a bit it turns out)
#jira UE-31857
Change 3009164 on 2016/06/10 by Ryan.Rauschkolb
Making changes to default values in the structure editor will now make changes to the structure without rebuilding the default values panel.
#jira UE-21141,UE-23723
Change 3009165 on 2016/06/10 by Ryan.Rauschkolb
Fixed Structure Default value editor collapses after undoing an alteration of a default value
#jira UE-31741
Change 3009181 on 2016/06/10 by Ryan.Rauschkolb
Fixed issue where modifying a default value in a Widget Blueprint would cause the Details Panel to refresh
#jira UE-30014
Change 3009313 on 2016/06/10 by Mike.Beach
Addressing issues with function return nodes in multiple ways:
- Preventing users from deleting return nodes for overriden/inherited functions.
- Also making sure that we create terminals for out params when the return node is disconnected (and pruned).
- Lastly, ensuring that new return nodes adhere to the function's signature (for cases, like where you copy/paste a return node from a different function).
#jira UE-31418
Change 3009595 on 2016/06/10 by Dan.Oconnor
EdGraphPinReference using PinId to resolve itself again, may create issues resolving pins created in compile
#jira UE-31879
Change 3009774 on 2016/06/10 by Dan.Oconnor
Fix for bad logic in RemovePin introduced in 3004329, just a bad reading of the logic, missed an early return
#jira UE-31906
Change 3009988 on 2016/06/10 by Dan.Oconnor
Prefer to use existing pins (based on PinId) when undoing/redoing pin serialization
#jira UE-31888
Change 3010050 on 2016/06/10 by Dan.Oconnor
Fixed missing call to ssuper class's PostEditUndo, fixed UBehaviorTreeGraph::PostEditUndo accessing Pins before they have been resolved
#jira UE-31892
Change 3010071 on 2016/06/10 by Dan.Oconnor
Fix for pasting when owning node has whitespace in result of GetPathName
#jira UE-31898
#coderview Bob.Tellez
Change 3010244 on 2016/06/11 by Dan.Oconnor
Fix for trivial copy/paste error, causes crash when copying/pasting nodes with text default values, part of UE-31870
Change 3010630 on 2016/06/13 by Dan.Oconnor
No longer relying on path name for pin resolution, path is unstable across graphs
#jira UE-31870
Change 3010647 on 2016/06/13 by Dan.Oconnor
PR #2496: Updated KismetMathLibrary comparison descriptions for FDateTime and FTimespan. (Contributed by CelPlays)
#jira UE-31928
Change 3011175 on 2016/06/13 by Ben.Cosh
Updates the Blueprint Profiler so that it can correctly map entry/exit from tunnels based on instance.
#Jira UE-30106 - Compiling QA_PhysVelocitySettleTest with the blueprint profiler results in a crash/assert
#Proj Kismet, BlueprintProfiler
- Ensured that the trace paths contain the macro instance exec nodes
- Selectively update stats in the tunnel exit site nodes based on valid exit sites to prevent cyclic updates.
- Updated the comments in map tunnel entry to spare peoples sanity when trying to understand what that function does.
Change 3011271 on 2016/06/13 by Ben.Cosh
This adds support for inherited blueprint classes to the blueprint profiler.
#Jira UE-31833 - The Blueprint profiler asserts when using a FlipFlop macro.
#Jira UE-31752 - Crash compiling various Orion assets for blueprints profiling, ScriptExecNode.IsValid() failed
#Proj BlueprintProfiler
Change 3011556 on 2016/06/13 by Ryan.Rauschkolb
Fixed Crash when breaking link to a split pin in MakeArray that is an array type
#jira UE-31919
Change 3011624 on 2016/06/13 by Dan.Oconnor
Fix for missing entries in MessageLog's source pin identification map. Bob T had originally populated this correctly, but somehow i lost it while iterating.
#jira UE-31955
Change 3011984 on 2016/06/13 by Dan.Oconnor
Sanitizing parentpin's subpins when destroying a pin
#jira UE-21392
Change 3012894 on 2016/06/14 by Phillip.Kavan
[UE-30922] Ensure that customized defaults are propagated to new instances at construction time during non-Actor-based Blueprint class reinstancing.
change summary:
- modified FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() to use the reinstanced archetype object as the template object during construction of the new instance for non-Actor-based Blueprint class types.
#jira UE-30922
Change 3013037 on 2016/06/14 by Ryan.Rauschkolb
Fixed Crash when connecting to a split pin in a MakeArray node that has no connections
#jira UE-31917
Change 3014846 on 2016/06/15 by Dan.Oconnor
No longer using FText::IsLetter to parse math expression nodes, that function is very slow. $x is now a valid math expression variable name (genereated a compile error prior to this change)
#jira FORT-23753
Change 3015014 on 2016/06/15 by Dan.Oconnor
Removing poorly implement IsLetter function
Change 3015142 on 2016/06/15 by Dan.Oconnor
More intentional about removing subpins, prevents stale iterator on split pin collapse
#jira UE-32072
Change 3016326 on 2016/06/16 by Ryan.Rauschkolb
Fixed MakeArray node does not reset to wildcard when breaking links with split struct pins that have default values
#jira UE-32016
Change 3016494 on 2016/06/16 by Ryan.Rauschkolb
Fixed Crash when dragging a component into the Event Graph that's inherited from a C++ class
#jira UE-31876
Change 3016557 on 2016/06/16 by Dan.Oconnor
Explicit copy/move of string data for FText, removes some redundant copying and object construction/destruction [which could be optimzed away], saves 2-3 seconds in my 80s load asset benchmark
#jira FORT-23753
Change 3016577 on 2016/06/16 by Ryan.Rauschkolb
Fixed compiler warning for hidden member variable in FBlueprintVarActionDetails::GetVariableReplicationType
Change 3016906 on 2016/06/16 by Dan.Oconnor
Back out changelist 3016557
This will be done by Jamie.Dale in Dev-Editor
Change 3018081 on 2016/06/17 by Phillip.Kavan
[UE-31832] PR #2486: Expose UInheritableComponentHandler::GetAllTemplates() outside of editor (Contributed by Bogustus)
#jira UE-31832
Change 3018402 on 2016/06/17 by Dan.Oconnor
Missing include
Change 3018426 on 2016/06/17 by Ryan.Rauschkolb
Fixed MakeArray node with split pins and no connections does not paste correctly
#jira UE-32148
Change 3018452 on 2016/06/17 by Mike.Beach
Moving the patching of instanced sub-objects out of CPFUO (where you can't rely on the target to be a replacement for the source) to FBlueprintEditorUtils::PatchCDOSubobjectsIntoExport(), and making it so PatchCDOSubobjectsIntoExport() is called regularly for Blueprint regeneration (on load).
#jira UE-32158
Change 3018456 on 2016/06/17 by Dan.Oconnor
Fix for static analysis warning, this null check does nothing
Change 3018595 on 2016/06/17 by Mike.Beach
Fix for shadowed variable warning in CIS.
Change 3018699 on 2016/06/17 by Mike.Beach
Making MinimumAreaRectangle callable in Blueprints without world context (which is only needed for debug drawing).
Change 3019734 on 2016/06/20 by Phillip.Kavan
[UE-32064] Clone associated component template(s) when duplicating Blueprint function graphs containing one or more Add Component nodes.
change summary:
- added a UK2Node_AddComponent::PostDuplicate() override
- moved UK2Node_AddComponent::PostPasteNode() logic into a helper method that's now called from both PostDuplicate() and PostPasteNode() overrides.
notes:
- will prevent getting into the scenario described in UE-31831
#jira UE-32064
Change 3020635 on 2016/06/20 by Dan.Oconnor
Fix for bad cast in FCompilerResultsLog::Append, could cause crashes in clients of this function (math expressions nodes occasionally do when they fail to compile)
Change 3020894 on 2016/06/21 by Maciej.Mroz
#2522: Interface UProperties can ExposeOnSpawn (in Blueprints) (Contributed by MichaelSchoell)
Change 3020958 on 2016/06/21 by Ben.Cosh
This improves the way key events are detected in the blueprint profiler, preventing duplicate event entries when pressed and released are both wired. It also catches a bug with the compiler instrumentation flag when compiling.
#Jira UE-32270 - Input key events generate extra instrumentation data per key press
#Jira UE-32266 - Recompiling blueprints with instrumentation can fail to add instrumentation.
#Proj BlueprintProfiler, UnrealEd
Change 3021316 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where Copy/Paste of event nodes would not retain link information
Change 3021826 on 2016/06/21 by Phillip.Kavan
[UE-31831] Fix up AddComponent nodes on load if they are not associated with a unique template object.
change summary:
- added external linkage to UK2Node_AddComponent::MakeNewComponentTemplate(), and switched it to be a public API
- modified FBlueprintEditorUtils::UpdateComponentTemplates() (as this is already called on Blueprint load) to detect/warn and correct non-unique templates
#jira UE-31831
Change 3022047 on 2016/06/21 by Ryan.Rauschkolb
Fixed issue where copy/paste of return nodes would not preserve value or link data
#jira UE-26937
Change 3022619 on 2016/06/22 by Maciej.Mroz
#jira UE-30858 Nativized Orion - Some particle effects are not rendering
A static/persistent information (the mechanism is similar to AssetRegistrySearchable) about DynamicClass is added.
It's necessary since DynamicClasses are not handled as regular assets by AssetRegistry.
Fixed GameplayCueManager. Nativized cues can be found.
This is an early version of the feature. Amount of stored persistent data can be extended (but it would increase memory-usage).
Change 3022654 on 2016/06/22 by Maciej.Mroz
FBackendHelperStaticSearchableValues -fixed too strict ensure
Change 3023067 on 2016/06/22 by Maciej.Mroz
#jira UE-32083 Nativize Blueprints removes blueprint functionality in packaged project
Config settings from super class are not applied (at runtime) to nativized Blueprints . So all "config" properties are filled in constructor.
Change 3023222 on 2016/06/22 by Ryan.Rauschkolb
Fixed MakeArray node elements break when editing struct elements
#jira UE-21392
Change 3023405 on 2016/06/22 by Mike.Beach
Making sure sub-objects get instanced for Blueprint CDOs that had their FObjectInitializer deferred (happens when the super CDO hasn't been fully serialized). By the time the deferred FObjectInitializer is ran, the sub-objects have been assigned a RF_NeedLoad flag (where they normally wouldn't have one right after construction, when the initialization is usually ran).
#jira UE-31897
Change 3023992 on 2016/06/22 by Mike.Beach
Fixed an issue where hovering on/off a reroute node (toggling the comment bubble visibility) would create extraneous undo transactions.
#jira UE-31859
[CL 3025946 by Mike Beach in Main branch]
2016-06-23 19:35:24 -04:00
SaveHeaderIfChanged ( * CppPath , * ( GeneratedCPPPreamble
+ ModulePCHInclude
+ GeneratedCPPClassesIncludes
+ ( bNativizaedAssetsModule ? DisableWarning4883 : FString ( ) )
+ DisableDeprecationWarnings
+ GeneratedLinkerFixupFunction
+ FileText
+ GeneratedCPPEpilogue
+ EnableDeprecationWarnings
+ ( bNativizaedAssetsModule ? EnableWarning4883 : FString ( ) )
) ) ;
2014-03-14 14:13:41 -04:00
if ( GeneratedFunctionBodyTextSplit . Num ( ) > 1 )
{
2014-05-02 14:40:02 -04:00
NumberedHeaderNames . Add ( FPaths : : GetCleanFilename ( CppPath ) ) ;
2014-03-14 14:13:41 -04:00
}
}
2014-09-22 09:46:58 -04:00
// delete the old .cpp file that will cause link errors if it's left around (Engine.generated.cpp and Engine.generated.1.cpp will
// conflict now that we no longer use Engine.generated.cpp to #include Engine.generated.1.cpp, and UBT would compile all 3)
// @todo: This is a temp measure so we don't force everyone to require a Clean
2015-03-31 09:33:11 -04:00
if ( GeneratedFunctionBodyTextSplit . Num ( ) > 1 )
{
FString CppPath = ModuleInfo - > GeneratedCPPFilenameBase + TEXT ( " .cpp " ) ;
2014-09-22 09:46:58 -04:00
IFileManager : : Get ( ) . Delete ( * CppPath ) ;
2015-03-31 09:33:11 -04:00
}
// Delete old generated .cpp files which we don't need because we generated less code than last time.
{
TArray < FString > FoundFiles ;
IFileManager : : Get ( ) . FindFiles ( FoundFiles , * ( ModuleInfo - > GeneratedCPPFilenameBase + TEXT ( " .*.cpp " ) ) , true , false ) ;
FString BaseDir = FPaths : : GetPath ( ModuleInfo - > GeneratedCPPFilenameBase ) ;
for ( FString & File : FoundFiles )
{
if ( ! NumberedHeaderNames . Contains ( File ) )
{
IFileManager : : Get ( ) . Delete ( * FPaths : : Combine ( * BaseDir , * File ) ) ;
}
}
}
2014-03-14 14:13:41 -04:00
}
2015-03-27 18:10:52 -04:00
2014-04-29 06:45:18 -04:00
/** Get all script plugins based on ini setting */
void GetScriptPlugins ( TArray < IScriptGeneratorPluginInterface * > & ScriptPlugins )
{
2015-03-27 17:16:51 -04:00
FScopedDurationTimer PluginTimeTracker ( GPluginOverheadTime ) ;
2015-05-27 11:12:26 -04:00
ScriptPlugins = IModularFeatures : : Get ( ) . GetModularFeatureImplementations < IScriptGeneratorPluginInterface > ( TEXT ( " ScriptGenerator " ) ) ;
UE_LOG ( LogCompile , Log , TEXT ( " Found %d script generator plugins. " ) , ScriptPlugins . Num ( ) ) ;
2014-04-30 07:58:33 -04:00
// Check if we can use these plugins and initialize them
for ( int32 PluginIndex = ScriptPlugins . Num ( ) - 1 ; PluginIndex > = 0 ; - - PluginIndex )
{
auto ScriptGenerator = ScriptPlugins [ PluginIndex ] ;
bool bSupportedPlugin = ScriptGenerator - > SupportsTarget ( GManifest . TargetName ) ;
if ( bSupportedPlugin )
{
2015-11-18 16:20:49 -05:00
// Find the right output directory for this plugin base on its target (Engine-side) plugin name.
2014-06-23 06:27:04 -04:00
FString GeneratedCodeModuleName = ScriptGenerator - > GetGeneratedCodeModuleName ( ) ;
const FManifestModule * GeneratedCodeModule = NULL ;
2014-04-30 07:58:33 -04:00
FString OutputDirectory ;
2014-06-23 06:27:04 -04:00
FString IncludeBase ;
2015-11-18 16:20:49 -05:00
for ( const FManifestModule & Module : GManifest . Modules )
2014-04-30 07:58:33 -04:00
{
2014-06-23 06:27:04 -04:00
if ( Module . Name = = GeneratedCodeModuleName )
2014-04-30 07:58:33 -04:00
{
2014-06-23 06:27:04 -04:00
GeneratedCodeModule = & Module ;
2014-04-30 07:58:33 -04:00
}
}
2014-06-23 06:27:04 -04:00
if ( GeneratedCodeModule )
2014-04-30 07:58:33 -04:00
{
2015-05-27 11:12:26 -04:00
UE_LOG ( LogCompile , Log , TEXT ( " Initializing script generator \' %s \' " ) , * ScriptGenerator - > GetGeneratorName ( ) ) ;
2014-06-23 06:27:04 -04:00
ScriptGenerator - > Initialize ( GManifest . RootLocalPath , GManifest . RootBuildPath , GeneratedCodeModule - > GeneratedIncludeDirectory , GeneratedCodeModule - > IncludeBase ) ;
2014-04-30 07:58:33 -04:00
}
else
{
// Can't use this plugin
2015-05-27 11:12:26 -04:00
UE_LOG ( LogCompile , Log , TEXT ( " Unable to determine output directory for %s. Cannot export script glue with \' %s \' " ) , * GeneratedCodeModuleName , * ScriptGenerator - > GetGeneratorName ( ) ) ;
2014-04-30 07:58:33 -04:00
bSupportedPlugin = false ;
}
}
if ( ! bSupportedPlugin )
{
2015-05-27 11:12:26 -04:00
UE_LOG ( LogCompile , Log , TEXT ( " Script generator \' %s \' not supported for target: %s " ) , * ScriptGenerator - > GetGeneratorName ( ) , * GManifest . TargetName ) ;
2014-04-30 07:58:33 -04:00
ScriptPlugins . RemoveAt ( PluginIndex ) ;
}
}
2014-04-29 06:45:18 -04:00
}
2014-03-14 14:13:41 -04:00
2015-06-02 02:12:11 -04:00
/**
* Tries to resolve super classes for classes defined in the given
* module .
*
* @ param Package Modules package .
*/
void ResolveSuperClasses ( UPackage * Package )
{
TArray < UObject * > Objects ;
GetObjectsWithOuter ( Package , Objects ) ;
for ( auto * Object : Objects )
{
if ( ! Object - > IsA < UClass > ( ) )
{
continue ;
}
UClass * DefinedClass = Cast < UClass > ( Object ) ;
if ( DefinedClass - > HasAnyClassFlags ( CLASS_Intrinsic | CLASS_NoExport ) )
{
continue ;
}
const FSimplifiedParsingClassInfo & ParsingInfo = GTypeDefinitionInfoMap [ DefinedClass ] - > GetUnrealSourceFile ( )
. GetDefinedClassParsingInfo ( DefinedClass ) ;
const FString & BaseClassNameStripped = GetClassNameWithPrefixRemoved ( ParsingInfo . GetBaseClassName ( ) ) ;
if ( ! BaseClassNameStripped . IsEmpty ( ) & & ! DefinedClass - > GetSuperClass ( ) )
{
UClass * FoundBaseClass = FindObject < UClass > ( Package , * BaseClassNameStripped ) ;
if ( FoundBaseClass = = nullptr )
{
FoundBaseClass = FindObject < UClass > ( ANY_PACKAGE , * BaseClassNameStripped ) ;
}
if ( FoundBaseClass = = nullptr )
{
// Don't know its parent class. Raise error.
2015-07-14 06:27:34 -04:00
FError : : Throwf ( TEXT ( " Couldn't find parent type for '%s' named '%s' in current module or any other module parsed so far. " ) ,
2015-06-02 02:12:11 -04:00
* DefinedClass - > GetName ( ) , * ParsingInfo . GetBaseClassName ( ) ) ;
}
2015-07-14 06:27:34 -04:00
DefinedClass - > SetSuperStruct ( FoundBaseClass ) ;
DefinedClass - > ClassCastFlags | = FoundBaseClass - > ClassCastFlags ;
2015-06-02 02:12:11 -04:00
}
}
}
2015-11-18 16:20:49 -05:00
ECompilationResult : : Type PreparseModules ( FUHTMakefile & UHTMakefile , const FString & ModuleInfoPath , int32 & NumFailures )
2016-04-28 13:50:05 -04:00
{
2014-03-14 14:13:41 -04:00
// Three passes. 1) Public 'Classes' headers (legacy) 2) Public headers 3) Private headers
2014-04-25 16:05:52 -04:00
enum EHeaderFolderTypes
2014-03-14 14:13:41 -04:00
{
2014-04-25 16:05:52 -04:00
PublicClassesHeaders = 0 ,
PublicHeaders = 1 ,
PrivateHeaders ,
2014-03-14 14:13:41 -04:00
2014-04-25 16:05:52 -04:00
FolderType_Count
} ;
2014-03-14 14:13:41 -04:00
2015-11-18 16:20:49 -05:00
ECompilationResult : : Type Result = ECompilationResult : : Succeeded ;
for ( FManifestModule & Module : GManifest . Modules )
2014-04-25 16:05:52 -04:00
{
if ( Result ! = ECompilationResult : : Succeeded )
{
break ;
2014-03-14 14:13:41 -04:00
}
2015-11-18 16:20:49 -05:00
FName ModuleName = FName ( * Module . Name ) ;
UHTMakefile . SetCurrentModuleName ( ModuleName ) ;
bool bLoadFromMakefile = UHTMakefile . CanLoadModule ( Module ) ;
if ( bLoadFromMakefile )
{
// Load module data from makefile.
UHTMakefile . LoadModuleData ( ModuleName , Module ) ;
continue ;
}
UHTMakefile . AddModule ( ModuleName ) ;
// Mark that we'll need to append newly constructed objects to ones loaded from makefile.
UHTMakefile . SetShouldMoveNewObjects ( ) ;
// Force regeneration of all subsequent modules, otherwise data will get corrupted.
Module . ForceRegeneration ( ) ;
2015-03-27 17:16:51 -04:00
2014-04-25 16:05:52 -04:00
UPackage * Package = Cast < UPackage > ( StaticFindObjectFast ( UPackage : : StaticClass ( ) , NULL , FName ( * Module . LongPackageName ) , false , false ) ) ;
if ( Package = = NULL )
2014-03-14 14:13:41 -04:00
{
2014-04-25 16:05:52 -04:00
Package = CreatePackage ( NULL , * Module . LongPackageName ) ;
}
// Set some package flags for indicating that this package contains script
// NOTE: We do this even if we didn't have to create the package, because CoreUObject is compiled into UnrealHeaderTool and we still
// want to make sure our flags get set
Copying //UE4/Dev-Framework to Dev-Main (//UE4/Dev-Main)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2720406 on 2015/10/07 by Aaron.McLeran
Audio optimization
Don't search for nearest listener if there's only 1 listener.
Change 2720411 on 2015/10/07 by Aaron.McLeran
Fixing HRTF spatialization code with recent changes to stereo spatialization.
HRTF emitter posiition doesn't need to be converted to XAudio2 coordinates.
Change 2723829 on 2015/10/09 by Mieszko.Zielinski
Fixed NavigationSystem trying to set label of newly spawned navigation data #UE4
UE-21880
Change 2723873 on 2015/10/09 by Mieszko.Zielinski
Fixed a bug in FNavAgentProperties::IsEquivalent resulting in failing the test for FNavAgentProperties instances having default AgentStepHeight value (-1) #UE4
UE-21977
Change 2724834 on 2015/10/12 by Ori.Cohen
PR #1634: Add PxVehicleDriveNW support to PhysXVehicleManager.cpp (Contributed by zeduk)
Change 2724850 on 2015/10/12 by Marc.Audy
Fix sound not restarting in matinee preview when jumping back along timeline after reaching end
#codereview Nick.Darnell
Change 2726499 on 2015/10/13 by Ori.Cohen
Fix edge case where sphyl length and radius are 0 and they are not properly clamped to 0.1
Change 2726689 on 2015/10/13 by Marc.Audy
Make UPackage::PackageFlags private
Add debugging for UE-21181 to try and track down when EditorWorld's PackageFlags are getting flagged as PlayInEditor
#codereview Mike.Fricker
Change 2726862 on 2015/10/13 by Lukasz.Furman
removed unused code from DetourNavMeshQuery
#ue4 UE-21988
Change 2726888 on 2015/10/13 by Lukasz.Furman
fixed observer abort: both mode in behavior tree's cone check decorator
#ue4 UE-19375
Change 2726913 on 2015/10/13 by Lukasz.Furman
navmesh raycast will use nearest poly containing ray origin instead of just closest one
#ue4 UE-19334
Change 2726920 on 2015/10/13 by Marc.Audy
Re-unify ULevelStreaming::GetWorldAssetPackageName and GetWorldAssetPackageFName
#codereview Dmitriy.Dyomin, Bob.Tellez
Change 2726931 on 2015/10/13 by Lukasz.Furman
fixed missing Tick event in aborting behavior tree tasks from abandoned subtree
#ue4 UE-21777
Change 2728093 on 2015/10/14 by Ori.Cohen
Fix edge case of sphyl scale take two. The previous approach did double scaling
Change 2728577 on 2015/10/14 by Mieszko.Zielinski
Improved navmesh labeling condition #UE4
Change suggested by github user
#rb Lukasz.Furman
Change 2728587 on 2015/10/14 by Lukasz.Furman
fixed crowd simulation for auto possessed pawns placed on level
#ue4
#rb Mieszko.Zielinski
Change 2728629 on 2015/10/14 by Lukasz.Furman
fixed influence of navmesh edges on crowd simulation near end of path
#ue4 UE-21380
#rb Mieszko.Zielinski
Change 2728678 on 2015/10/14 by Lukasz.Furman
added Z check to detour's crowd avoidance segment gathering
#ue4 UE-20889
#rb Mieszko.Zielinski
Change 2728745 on 2015/10/14 by Lukasz.Furman
fixed copy&paste operation in behavior tree's composite decorators subgraphs
#ue4 UE-18740
Change 2729276 on 2015/10/14 by Stan.Melax
ensure all actors get recreated with new collision shape specification.
this wasn't being done for a couple of editing methods.
todo: this should be merged into 4.10
#UE-20961
#rb ori.cohen
Change 2730709 on 2015/10/15 by Marc.Audy
Prevent memory corruption when an invalid controller ID is passed in to the forcefeedback channel functions
#rb Lina.Halper
Change 2733590 on 2015/10/19 by Benn.Gallagher
Fixed various crashes when using undo and redo while manipulating state machines UE 22088
Change 2735143 on 2015/10/20 by Lukasz.Furman
clearing behavior tree debugger's state when displayed subtree becomes inactive
#ue4
#rb Mieszko.Zielinski
Change 2735144 on 2015/10/20 by Lukasz.Furman
rebuilding behavior tree graph node order when node is being moved
#ue4
#rb Mieszko.Zielinski
Change 2735403 on 2015/10/20 by sebastian.kowalczyk
Integrated fix for issue UE-18594 "Gameplay Debugger is hijacking the Canvas" issue from 4.10 (2735391). Extended previous fix to care about OSX users - it's possible to configure shortcuts in engine config file now (little different ones for osx platform).
Change 2736406 on 2015/10/21 by sebastian.kowalczyk
Added new GameplayDebugger as a plugin. Old gameplay debugger is still here to keep backward compatibility but it's deprecated now. Current projects should be moved to use new plugin soon.
Change 2736436 on 2015/10/21 by sebastian.kowalczyk
Fixed crash in gameplay debugger with player set as debug target.
Change 2736437 on 2015/10/21 by sebastian.kowalczyk
Added visual indicator around selected pawn to fix FORT-10273 issue. (FN is not using new gd plugin yet).
Change 2736489 on 2015/10/21 by sebastian.kowalczyk
Hide internal and debug hud classes from drop down lists.
Change 2736504 on 2015/10/21 by sebastian.kowalczyk
Fix for UE-18548 "EnableGDT does not work correctly in PIE".
Change 2736529 on 2015/10/21 by sebastian.kowalczyk
Fixed UE-18548 "EnableGDT does not work correctly in PIE"
Change 2736588 on 2015/10/21 by sebastian.kowalczyk
Removed old log visualizer classes.
Change 2736700 on 2015/10/21 by sebastian.kowalczyk
Fixed UE-19256 "Perception debug data doesn't get replicated by Gameplay Debuger" for old gameplay debugger module.
Change 2737180 on 2015/10/21 by Zak.Middleton
#ue4 - Fix UPrimitiveComponent::GetCollisionShape not correctly enforcing bounds limits.
#rb Aaron.Mcleran
#jira UE-22436
Change 2738084 on 2015/10/22 by sebastian.kowalczyk
Better indication of selected pawn for Gameplay Debugger.
Change 2738413 on 2015/10/22 by Marc.Audy
Disable duplication of worlds/maps via the content browser
#jira UE-22200
#rb James.Golding
Change 2739743 on 2015/10/23 by bruce.nesbit
UE-18707 - Issue with drawing material triangle on canvas #1387
Added DrawTriangleUsingVertexColor
Change 2739751 on 2015/10/23 by bruce.nesbit
Revised bShowDebugForReticleTarget should not be static #1539
Change 2739788 on 2015/10/23 by bruce.nesbit
Revised the 2 functions that used FTriangleRenderer::DrawTriangle to use FTriangleRenderer::DrawTriangleUsingVertexColor
Fixed compile error
Change 2739870 on 2015/10/23 by Marc.Audy
Avoid issues while detaching child components if OnAttachmentChange were to remove a sibling component itself.
#jira UE-22362
#rb Zak.Middleton
Change 2739882 on 2015/10/23 by sebastian.kowalczyk
Fix for UE-20901 "VisualLog redirections are broken after PIE finishes" issue.
Change 2740140 on 2015/10/23 by Marc.Audy
Ensure that components reregister tick functions after seamless travel
#jira UE-20892
#rb Zak.Middleton
Change 2740614 on 2015/10/23 by Ori.Cohen
Fix linker issues for people wanting to use physics lock lambdas
Change 2740674 on 2015/10/23 by Aaron.McLeran
Sound Focus Feature
Added new parameters to SoundAttenuation settings to allow audio to change behavior based on its angle to the listener
- Define the min/max azimuth angle to establish in-focus and non-focus regions
- Can scale the priority of a sound based on focus angle
- Can attenuate the volume of a sound based on focus angle
- Can scale the listener-emitter distance based on focus angle
- Distance scale is applied when determining max audible distance for USoundBase
- Can opt-out of focus effects for a sound at the USoundBase level
#rb Ryan.Vance
Change 2741542 on 2015/10/26 by Lukasz.Furman
lowered min value clamping in navigation filter properties
#ue4
#rb Mieszko.Zielinski
Change 2743227 on 2015/10/27 by Marc.Audy
Make ASceneCaptureCube subclassable outside of Engine module
#jira UE-22609
Make USceneCaptureComponentCube::UpdateContent callable outside of Engine module
#jira UE-22610
#rb Jeff.Farris
Change 2743255 on 2015/10/27 by Marc.Audy
Wrap FActorSpawnParameters class with deprecation warning disable pragma instead of hand implementing copy constructor
#rb Jeff.Farris
Change 2743729 on 2015/10/27 by Ori.Cohen
Fix case where we spawn and adjust location which gives us implicit velocity.
#codereview Stan.Melax
Change 2746135 on 2015/10/29 by sebastian.kowalczyk
Fixed UE-21668 "Saving log filters selected in LogVisualizer causes insane ini file sizes! And doesn't really work."
Change 2746437 on 2015/10/29 by Lukasz.Furman
pass on verifying behavior tree stack before accessing its elements
#ue4
#rb Mieszko.Zielinski
Change 2748028 on 2015/10/30 by sebastian.kowalczyk
Changed GameplayDebugger's console variable from gd.EQSOnHUD to ai.gd.EQSOnHUD" after suggestion with MieszkoZ.
Change 2748184 on 2015/10/30 by Aaron.McLeran
UE-22693 Fix for streaming bug
- 3rd decoded buffer in initial 3 buffers was not getting submitted to xaudio2 voice resulting in garbled/skipped audio.
- Wasn't able to repro the 'cannot read chunk' part of the bug
#rb ryan.vance
Change 2749255 on 2015/10/31 by sebastian.kowalczyk
Fixed ai.gd.EQSOnHUD console variable after rename from gd.EQSOnHUD.
Change 2749276 on 2015/10/31 by sebastian.kowalczyk
Added switch to toggle highlight of selected actor to GameplayDebugger.
Change 2749318 on 2015/10/31 by sebastian.kowalczyk
New Gameplay Debugger plugin can be used with old module simultaneously. It's best to configure different keyboard binding for plugin when using old module (it can be set in project settings, for new gameplay debugger plugin - when activated for project).
Change 2749337 on 2015/10/31 by sebastian.kowalczyk
Fixed GameplayDebugger compilation in shipping/test builds.
Change 2749376 on 2015/10/31 by sebastian.kowalczyk
Small clean-up in gameplay debugger class for BT.
Change 2749931 on 2015/11/02 by James.Golding
Add stats to ProcMeshComp
Change 2749932 on 2015/11/02 by James.Golding
Remove PhysicsThrusterComponent.h from Engine.h
Change 2749960 on 2015/11/02 by James.Golding
- Fix PS4 compile errors in ActiveSound.cpp
- Constructor order of FActiveSound
- Shadowed AudioComponent var in CheckOcclusion
#RB thomas.sarkanen
#codereview aaron.mcleran
Change 2749961 on 2015/11/02 by James.Golding
Fix PS4 compile errors in GameplayDebuggerBaseObject.cpp
- Shadowed DefaultContext function param, now just Context, which matches declaration
#RB thomas.sarkanen
#codereview sebastian.kowalczyk
Change 2750026 on 2015/11/02 by Thomas.Sarkanen
Anim Multithreading: thread-safety refactor
Segregated access to various parts of anim update data by spitting off a new proxy class (FAnimInstanceProxy) containing all data accessed in Update() and Evaluate() passes. Gated access to the proxy data on the game thread in a number of ways:
- Explicit access via GetValueOnGameThread() - this blocks on any existing task, completes and then allows control to return to the accessing function. This allows stuff like Blueprints to continue to operate as normal.
- Explicit access via GetValueOnAnyThread() - this ensures that in the limited set of circumstances we need this (Blueprint pure functions mostly) that conditions are met about concurrent access.
- Deprecating many APIs on UAnimInstance that should not be used (and in fact are not used at present, happily).
Derived classes of UAnimInstance can override the creation of the proxy class to create their own type. We do this for UAnimSingleNodeInstance etc.
Any API deprecation should continue to function - no functions have been removed yet. The only things that are not backwards-compatible are direct access to some public member variables for which there is no way to support (e.g. via references, for example UngroupedActivePlayerArrays).
Some APIs have been changed to more specifically represent the dependencies involved. For example TickAssetPlayerInstance() used to take a UAnimInstance*, only to use it to simply queue notifies. This has been deprecated and replaced with a new FNotifyQueue API. FNotifyQueue also uses a thread-safe FRandomStream instead of FMath::Rand.
Many changes are due to substituting accessor functions for direct variable access.
Removed 'service' tick group as we no longer need to segregate the running of our parallel update.
Anim nodes that need to do some game thread-side update should register for a pre-update callback delegate in the proxy. See FAnimNode_AnimDynamics for an example of this.
Moved UpdateActiveVertexAnims into FAnimRuntime so I can subsume some of the code that was in USkeletalMeshComponent::EvaluateAnimation into UAnimInstance (and hence keep the proxy access private).
#rb Martin.Wilson,Lina.Halper
#codereview Michael.Noland
Change 2750077 on 2015/11/02 by Marc.Audy
Expose UInputComponent::BindAction that supports WithKey delegate signature
Change 2751767 on 2015/11/03 by Thomas.Sarkanen
Added extra support to Anim Blueprint 'fast-path'
Added support for negated bools (value gets negated during copy).
Added support for copying from struct members (via break struct) and split struct pins.
Removed potentially troublesome references to BP-constructed UProperties, replacing them with the property FName. This adds some extra Initialize() overhead, but prevents various crash-on load issues (one when generating the class CRC). Added guard to prevent multiple initialization to save this more expensive work being done more often.
#rb Martin.Wilson
Change 2752158 on 2015/11/03 by Jeff.Farris
Fixed UGameplayStatics::SpawnEmitterAttached() to register the ParticleSystemComponent after it spawns.
#rb marc.audy
Change 2752159 on 2015/11/03 by Jeff.Farris
Improvements to camera lens effects to (EmitterCameraLensEffectBase)
- can now specify a transform to align the emitter with the camera
- exposed several key parameters to Blueprints
- ENGINE_API now applies to the entire class
#rb marc.audy
Change 2753454 on 2015/11/04 by Thomas.Sarkanen
Fixup deprecation warnings fallout from multithreaded update changes.
Fixed up use of AnimInstance in Vicon plugin.
Fixed up use of AnimInstance in slope warping node.
Un-deprecated some APIs to become warning free (these APIs are safe to call but just a 'bad idea if you want to do it right').
Also an extra API to allow for smoother transition: Allow custom allocation/deallocation (including using a proxy member struct) by providing an override point for proxy destruction.
#rb Martin.Wilson
Change 2754099 on 2015/11/04 by Ori.Cohen
Fix for task threads dropping stats (from Gil)
#rb Gil.Gribb
Change 2754449 on 2015/11/04 by Marc.Audy
Ensure that components created from an Actor's blueprint BeginPlay implementation get BeginPlay called on them and register their component ticks
#jira UE-20853
Reorganize some booleans to get better bit packing
#rb Jeff.Farris
#codereview Mieszko.Zielinski
Change 2754573 on 2015/11/04 by Aaron.McLeran
Fixing audio component PostLoad code to not set all LowPassFilterFrequency values to 0.0f
Change 2755345 on 2015/11/05 by Thomas.Sarkanen
Added deprecated constructors for various animation contexts
Allows existing code to compile if it creates its own contexts from UAnimInstance.
#rb James.Golding
Change 2755348 on 2015/11/05 by James.Golding
Add BP-exposed SetBoundsScale function to PrimitiveComponent
#RB thomas.sarkanen
Change 2755437 on 2015/11/05 by Marc.Audy
Fix compile errors
#codereview Thomas.Sarkanen, Mieszko.Zielinski, Aaron.McLeran
Change 2755982 on 2015/11/05 by Marc.Audy
Move HeaderParse changes for deprecation macro from Core
Fix world settings warning
Change 2756028 on 2015/11/05 by Marc.Audy
Fix shadow variable issue
Change 2756090 on 2015/11/05 by Ori.Cohen
Improve budget tool so that task threads are computed automatically.
#rb Gil.Gribb
Change 2756120 on 2015/11/05 by Mieszko.Zielinski
Fixed AIController::MoveTo not using DefaultQueryExtent of its navigation data #UE4
#rb Lukasz.Furman
Change 2756243 on 2015/11/05 by Mieszko.Zielinski
Fixed AI perception sight's "auto-visibility" mechanism totally skipping distance and vision cone checks #UE4
The old way was resulting in false positives when for example observer teleported somewhere far
#rb Lukasz.Furman
#codereview John.Abercrombie
Change 2756280 on 2015/11/05 by Mieszko.Zielinski
Minor VLog code cleanup and dumb-fixing visual logger accessing timer manager off of game thread #UE4
#rb Lukasz.Furman
Change 2756500 on 2015/11/05 by Mieszko.Zielinski
Added sanity-checking to BlueprintNodeHelpers::HasBlueprintFunction and cleaned up its usage #UE4
Also, refactored its parameters into references over pointers.
#rb Lukasz.Furman
Change 2757041 on 2015/11/06 by Thomas.Sarkanen
Removed check() in UAnimInstance::GetProxyOnAnyThread()
The check was no longer needed as if we are on the game thread we block until tasks are completed below, and if we are on any other thread we are 'safe' anyway.
#rb James.Golding
Change 2757207 on 2015/11/06 by Ori.Cohen
Fix incorrect root body cache which causes a single frame "freak out" when simulating physics from an animation
#rb Lina.Halper
Change 2757238 on 2015/11/06 by Marc.Audy
Force compiler generated functions to be generated for FHierarchicalSimplification in WorldSettings.h so that they are generated while the deprecation warnings are disabled.
#rb Mike.Fricker
Change 2757284 on 2015/11/06 by Stan.Melax
tapered capsule drawing
cloth collision happens with spheres and for the hull or tapered capsule goemetry between any specified pair of spheres.
(this was already code reviewed before, but missed the check-in window before streamtime)
#rb ori.cohen
Change 2757743 on 2015/11/06 by Lukasz.Furman
fixed node memory allocations for injected behavior tree decorators
#ue4 UE-22783
#rb Mieszko.Zielinski
Change 2757772 on 2015/11/06 by Lukasz.Furman
added setters for crowd avoidance
#ue4 UE-22785
#rb Mieszko.Zielinski
Change 2758422 on 2015/11/07 by Lina.Halper
Potential fix for invalid root bone index input
#jira :/UE-23086
#code review: Ori.Cohen
Change 2758429 on 2015/11/07 by Mieszko.Zielinski
Reimplemented a fix for AI Sight's "auto seeing" mechanics in a more flexible way #UE4
#jira UE-23089
Change 2758571 on 2015/11/08 by Mieszko.Zielinski
Modified ensure condition in UAIPerceptionComponent::OnRegister so it doesn't go off when BP does it's magic when components are being added to a BP actor class #UE4
#jira UE-23080
Change 2758821 on 2015/11/09 by Thomas.Sarkanen
Fixed animations no longer playing when using a dedicated server.
Uses correct logic to determine whether we are running as a server or not.
#rb Martin.Wilson
Change 2758920 on 2015/11/09 by Marc.Audy
Don't dereference weak object pointers repeatedly in FBoneContainer::Initialize
#rb Lina.Halper
Change 2758944 on 2015/11/09 by Ori.Cohen
Fix crash when stats are only on one thread and budget mode is used
Change 2758967 on 2015/11/09 by Benn.Gallagher
Fix for crash undoing notify socket changes in Persona, needed to recache the notify track data after the transaction had reserialized the sequence.
#jira UE-22963
Change 2758973 on 2015/11/09 by Benn.Gallagher
Added new 'Random Player' node for anim graphs allowing the user to play a selection of animations in a random order with certain randomised paramers. Also allows 'Shuffle Mode' to act more like a playlist in that it will play everything on the list before repeating.
#rb Bruce.Nesbit
Change 2759219 on 2015/11/09 by Ori.Cohen
Character perf test is now looking at stats directly and sending to analytics
#RB Ben.Salem
Change 2759398 on 2015/11/09 by Lina.Halper
Fix issue where placed montages are not playing.
- the issue is that IsPlaying does not consider montage, but SetPlaying does. It is asymmetry, so I made it same. However, there are other functions that need to be re-looked at wr.t. montage
#code review: Thomas.Sarkanen
#RB: Marc.Audy
Change 2759491 on 2015/11/09 by Lina.Halper
#Anim: Fix not getting input correctly for Copy Pose node
#RB: Marc.Audy
Change 2759602 on 2015/11/09 by Marc.Audy
Fix imporperly named struct
Change 2759795 on 2015/11/09 by Aaron.McLeran
UE-23145 Adding a Priority value to USoundBase to use in concurrency evaluation and sorting wave instances for voice stealing.
#rb zak.middleton
Change 2760081 on 2015/11/09 by Aaron.McLeran
UE-23091 Adding more logging for NaN checks and fixing one source of NaNs for audio.
OmniDirectional Math Explanation:
For XAudio2, because we do our own distance-attenuation calculations, we use the X3dAudio2 API to simply compute a speaker-map for spatialization and force the listener to be at the origin and the emitter to be on the unit-circle. Thus, from XAudio2's perspective, all distances for every listener-emitter pair will be 1.0.
So in order to use the InnerRadius blending feature, we need to trick it into doing a an inner radius blend relative to a distance of 1.0. For example, if OmniRadius and Distance are the same, then the "NormalizedOmniRadius" is 1.0 and XAudio2 will begin its "blend" of the sound to an omni-directional speaker map.
If Emitter-listener distance is less than the OmniRadius, we'll want to do more blending to an omni-directional speaker map, but we need to set the InnerRadius to something greater than 1.0 (i.e. so that the normalized distance of 1.0 will be treated as less than the InnerRadius). To do "full" omni-directional blending, the emitter-listener distance will be 0 or close to zero, and the NormalizedOmniRadius will be very large (i.e. close to infiinity).
The previous math just set the NormalizedOmniRadius to FLT_MAX which is fine but that number is eventually squared before making the API call. FLT_MAX squared is INF.
Note: I do not think we need to square the OmniRadius in:
Emitter.InnerRadius = OmniRadius*OmniRadius;
But I am keeping it t here because of legacy content which depends on that behavior.
#rb zak.middleton
hange 2760401 on 2015/11/10 by Thomas.Sarkanen@Thomas.Sarkanen-Dev-Framework
Re-instated deleted protected functions in UAnimInstance.
Fixed access of UAnimInstance in FAnimNode_StateMachine.
#rb Martin.Wilson
Change 2760407 on 2015/11/10 by Jurre.deBaare
Construct raw meshes for spline meshes now uses the render data instead of original model data (preserves tangents/normals)
Change 2760468 on 2015/11/10 by Benn.Gallagher
Anim Dynamics optimizations, cached iteration independant data to reduce footprint of iteration on limits.
#rb Graeme.Thornton
Change 2760613 on 2015/11/10 by Jeff.Farris
Fixed async collision completion delegate potentially firing repeatedly. (UE-23149)
#cr marc.audy
#codereview lina.halper
Change 2760795 on 2015/11/10 by Marc.Audy
Don't compile in pointless AddReferencedObjects when with editoronly data not defined
Minor coding standard cleanup (NULL and auto)
Change 2760848 on 2015/11/10 by Benn.Gallagher
Fix to anim instance proxy to not rely on state machine initialization to bind native delegates as nested state machines are not guaranteed to be initialized. This was fixed in UAnimInstance originally but broken again by the proxy instance code.
#jira UE-23164
#rb Martin.Wilson
Change 2760866 on 2015/11/10 by Marc.Audy
Manage transient visualization components for camera component in the same way that sprite component for other actor components are
#rb Mike.Beach
Change 2760963 on 2015/11/10 by Marc.Audy
Since construction script can cause actors to be spawned don't use a ranged for to iterate
#jira UE-22639
#rb Jeff.Farris
#codereview Dmitriy.Dyomin
Change 2762297 on 2015/11/11 by James.Golding
UE-23086 Don't ensure in SetRootBodyIndex when Bodies array is empty (ie no physics state created)
#rb martin.wilson
#codereview ori.cohen, lina.halper
Change 2763566 on 2015/11/11 by Lina.Halper
FAnimNode_CopyPoseFromMesh::Evaluate - was accessing skeleton joint, not mesh joint.
#RB: Laurent.Delayen
Change 2763926 on 2015/11/12 by Thomas.Sarkanen
Fix anim notifies not firing from single anim instances
UE-23248 - Anim Notifies are not working for Animation Sequences
UE-23249 - Anim Notifies using Sound Cues do not work
#rb James.Golding
Change 2764039 on 2015/11/12 by Jurre.deBaare
Fix for issue with incorrect material indices after reducing a skeletal mesh with non LOD0 mesh as BaseLOD (OR-9243) #rb Lina.Halper
Change 2764307 on 2015/11/12 by Jurre.deBaare
VS2015 SSF library
Change 2764314 on 2015/11/12 by Stan.Melax
crashfix was putting bad bodies to sleep at start
Fatal error!
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000000
UE4Editor-Engine.dll!USkeletalMeshComponent::InitArticulated() [...\\engine\\source\\runtime\\engine\\private\\skeletalmeshcomponentphysics.cpp:875]
On some skeletalmeshcomponent, some bodies aren't getting created correctly. Trying to force them to sleep was causing a crash - it expected instantiated physx bodies. Seems that all the rest of the code is able to tolerate bad bodies.
Added check to ensure physx body exists before trying to force it to sleep.
not sure if bad bodies are the norm or if this fix is just more "kicking the can down the road".
#codereview ori.cohen
Change 2764343 on 2015/11/12 by Jurre.deBaare
- Fixed crash when building a LOD with SubActors.Num < 2
- Force HLOD level slider is now always enabled, however won't show complete image if not all HLODs are build
- LODActor tree view item now scrolls into view if selected in the world
- Set bAllowCullDistanceVolume to false for LODActor's static mesh components by default
- Added 7zip files
- Fixed issue with WinINet complaining about http-request without 'http://' prefix
- Changed % reduced or original triangles display string, now uses float instead of int (for < 1% reductions)
- Override texture sizes and automatic texture bias
- Fixed issue with incorrect material merging, not picking up it required mesh-data during baking. Added extra conditions for rendering with mesh-data.
- Now incorporate static meshes with opague materials into HLOD merging
- Fixed issue with incorrect normals after merging meshes who's owning components had been negatively scaled
- Fixed issue with incorrect texture size being set from MergeActor window (was only changing .X component)
- Fixed issue with material merging when meshes with multiple LODs are merged, right now only merges LOD0's together if we are also merging the materials (otherwise, merge each LOD)
- Added ENUM for texture scaling/resizing type that has to be applied while merging the materials
- Added detail customization class for FMaterialProxySettings
#rb James.Golding
[CL 2765024 by Marc Audy in Main branch]
2015-11-12 18:11:48 -05:00
Package - > SetPackageFlags ( PKG_ContainsScript | PKG_Compiling ) ;
Package - > ClearPackageFlags ( PKG_ClientOptional | PKG_ServerSideOnly ) ;
2016-01-27 12:09:53 -05:00
if ( Module . ModuleType = = EBuildModuleType : : GameEditor | | Module . ModuleType = = EBuildModuleType : : EngineEditor )
2015-08-20 06:52:43 -04:00
{
Copying //UE4/Dev-Framework to Dev-Main (//UE4/Dev-Main)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2720406 on 2015/10/07 by Aaron.McLeran
Audio optimization
Don't search for nearest listener if there's only 1 listener.
Change 2720411 on 2015/10/07 by Aaron.McLeran
Fixing HRTF spatialization code with recent changes to stereo spatialization.
HRTF emitter posiition doesn't need to be converted to XAudio2 coordinates.
Change 2723829 on 2015/10/09 by Mieszko.Zielinski
Fixed NavigationSystem trying to set label of newly spawned navigation data #UE4
UE-21880
Change 2723873 on 2015/10/09 by Mieszko.Zielinski
Fixed a bug in FNavAgentProperties::IsEquivalent resulting in failing the test for FNavAgentProperties instances having default AgentStepHeight value (-1) #UE4
UE-21977
Change 2724834 on 2015/10/12 by Ori.Cohen
PR #1634: Add PxVehicleDriveNW support to PhysXVehicleManager.cpp (Contributed by zeduk)
Change 2724850 on 2015/10/12 by Marc.Audy
Fix sound not restarting in matinee preview when jumping back along timeline after reaching end
#codereview Nick.Darnell
Change 2726499 on 2015/10/13 by Ori.Cohen
Fix edge case where sphyl length and radius are 0 and they are not properly clamped to 0.1
Change 2726689 on 2015/10/13 by Marc.Audy
Make UPackage::PackageFlags private
Add debugging for UE-21181 to try and track down when EditorWorld's PackageFlags are getting flagged as PlayInEditor
#codereview Mike.Fricker
Change 2726862 on 2015/10/13 by Lukasz.Furman
removed unused code from DetourNavMeshQuery
#ue4 UE-21988
Change 2726888 on 2015/10/13 by Lukasz.Furman
fixed observer abort: both mode in behavior tree's cone check decorator
#ue4 UE-19375
Change 2726913 on 2015/10/13 by Lukasz.Furman
navmesh raycast will use nearest poly containing ray origin instead of just closest one
#ue4 UE-19334
Change 2726920 on 2015/10/13 by Marc.Audy
Re-unify ULevelStreaming::GetWorldAssetPackageName and GetWorldAssetPackageFName
#codereview Dmitriy.Dyomin, Bob.Tellez
Change 2726931 on 2015/10/13 by Lukasz.Furman
fixed missing Tick event in aborting behavior tree tasks from abandoned subtree
#ue4 UE-21777
Change 2728093 on 2015/10/14 by Ori.Cohen
Fix edge case of sphyl scale take two. The previous approach did double scaling
Change 2728577 on 2015/10/14 by Mieszko.Zielinski
Improved navmesh labeling condition #UE4
Change suggested by github user
#rb Lukasz.Furman
Change 2728587 on 2015/10/14 by Lukasz.Furman
fixed crowd simulation for auto possessed pawns placed on level
#ue4
#rb Mieszko.Zielinski
Change 2728629 on 2015/10/14 by Lukasz.Furman
fixed influence of navmesh edges on crowd simulation near end of path
#ue4 UE-21380
#rb Mieszko.Zielinski
Change 2728678 on 2015/10/14 by Lukasz.Furman
added Z check to detour's crowd avoidance segment gathering
#ue4 UE-20889
#rb Mieszko.Zielinski
Change 2728745 on 2015/10/14 by Lukasz.Furman
fixed copy&paste operation in behavior tree's composite decorators subgraphs
#ue4 UE-18740
Change 2729276 on 2015/10/14 by Stan.Melax
ensure all actors get recreated with new collision shape specification.
this wasn't being done for a couple of editing methods.
todo: this should be merged into 4.10
#UE-20961
#rb ori.cohen
Change 2730709 on 2015/10/15 by Marc.Audy
Prevent memory corruption when an invalid controller ID is passed in to the forcefeedback channel functions
#rb Lina.Halper
Change 2733590 on 2015/10/19 by Benn.Gallagher
Fixed various crashes when using undo and redo while manipulating state machines UE 22088
Change 2735143 on 2015/10/20 by Lukasz.Furman
clearing behavior tree debugger's state when displayed subtree becomes inactive
#ue4
#rb Mieszko.Zielinski
Change 2735144 on 2015/10/20 by Lukasz.Furman
rebuilding behavior tree graph node order when node is being moved
#ue4
#rb Mieszko.Zielinski
Change 2735403 on 2015/10/20 by sebastian.kowalczyk
Integrated fix for issue UE-18594 "Gameplay Debugger is hijacking the Canvas" issue from 4.10 (2735391). Extended previous fix to care about OSX users - it's possible to configure shortcuts in engine config file now (little different ones for osx platform).
Change 2736406 on 2015/10/21 by sebastian.kowalczyk
Added new GameplayDebugger as a plugin. Old gameplay debugger is still here to keep backward compatibility but it's deprecated now. Current projects should be moved to use new plugin soon.
Change 2736436 on 2015/10/21 by sebastian.kowalczyk
Fixed crash in gameplay debugger with player set as debug target.
Change 2736437 on 2015/10/21 by sebastian.kowalczyk
Added visual indicator around selected pawn to fix FORT-10273 issue. (FN is not using new gd plugin yet).
Change 2736489 on 2015/10/21 by sebastian.kowalczyk
Hide internal and debug hud classes from drop down lists.
Change 2736504 on 2015/10/21 by sebastian.kowalczyk
Fix for UE-18548 "EnableGDT does not work correctly in PIE".
Change 2736529 on 2015/10/21 by sebastian.kowalczyk
Fixed UE-18548 "EnableGDT does not work correctly in PIE"
Change 2736588 on 2015/10/21 by sebastian.kowalczyk
Removed old log visualizer classes.
Change 2736700 on 2015/10/21 by sebastian.kowalczyk
Fixed UE-19256 "Perception debug data doesn't get replicated by Gameplay Debuger" for old gameplay debugger module.
Change 2737180 on 2015/10/21 by Zak.Middleton
#ue4 - Fix UPrimitiveComponent::GetCollisionShape not correctly enforcing bounds limits.
#rb Aaron.Mcleran
#jira UE-22436
Change 2738084 on 2015/10/22 by sebastian.kowalczyk
Better indication of selected pawn for Gameplay Debugger.
Change 2738413 on 2015/10/22 by Marc.Audy
Disable duplication of worlds/maps via the content browser
#jira UE-22200
#rb James.Golding
Change 2739743 on 2015/10/23 by bruce.nesbit
UE-18707 - Issue with drawing material triangle on canvas #1387
Added DrawTriangleUsingVertexColor
Change 2739751 on 2015/10/23 by bruce.nesbit
Revised bShowDebugForReticleTarget should not be static #1539
Change 2739788 on 2015/10/23 by bruce.nesbit
Revised the 2 functions that used FTriangleRenderer::DrawTriangle to use FTriangleRenderer::DrawTriangleUsingVertexColor
Fixed compile error
Change 2739870 on 2015/10/23 by Marc.Audy
Avoid issues while detaching child components if OnAttachmentChange were to remove a sibling component itself.
#jira UE-22362
#rb Zak.Middleton
Change 2739882 on 2015/10/23 by sebastian.kowalczyk
Fix for UE-20901 "VisualLog redirections are broken after PIE finishes" issue.
Change 2740140 on 2015/10/23 by Marc.Audy
Ensure that components reregister tick functions after seamless travel
#jira UE-20892
#rb Zak.Middleton
Change 2740614 on 2015/10/23 by Ori.Cohen
Fix linker issues for people wanting to use physics lock lambdas
Change 2740674 on 2015/10/23 by Aaron.McLeran
Sound Focus Feature
Added new parameters to SoundAttenuation settings to allow audio to change behavior based on its angle to the listener
- Define the min/max azimuth angle to establish in-focus and non-focus regions
- Can scale the priority of a sound based on focus angle
- Can attenuate the volume of a sound based on focus angle
- Can scale the listener-emitter distance based on focus angle
- Distance scale is applied when determining max audible distance for USoundBase
- Can opt-out of focus effects for a sound at the USoundBase level
#rb Ryan.Vance
Change 2741542 on 2015/10/26 by Lukasz.Furman
lowered min value clamping in navigation filter properties
#ue4
#rb Mieszko.Zielinski
Change 2743227 on 2015/10/27 by Marc.Audy
Make ASceneCaptureCube subclassable outside of Engine module
#jira UE-22609
Make USceneCaptureComponentCube::UpdateContent callable outside of Engine module
#jira UE-22610
#rb Jeff.Farris
Change 2743255 on 2015/10/27 by Marc.Audy
Wrap FActorSpawnParameters class with deprecation warning disable pragma instead of hand implementing copy constructor
#rb Jeff.Farris
Change 2743729 on 2015/10/27 by Ori.Cohen
Fix case where we spawn and adjust location which gives us implicit velocity.
#codereview Stan.Melax
Change 2746135 on 2015/10/29 by sebastian.kowalczyk
Fixed UE-21668 "Saving log filters selected in LogVisualizer causes insane ini file sizes! And doesn't really work."
Change 2746437 on 2015/10/29 by Lukasz.Furman
pass on verifying behavior tree stack before accessing its elements
#ue4
#rb Mieszko.Zielinski
Change 2748028 on 2015/10/30 by sebastian.kowalczyk
Changed GameplayDebugger's console variable from gd.EQSOnHUD to ai.gd.EQSOnHUD" after suggestion with MieszkoZ.
Change 2748184 on 2015/10/30 by Aaron.McLeran
UE-22693 Fix for streaming bug
- 3rd decoded buffer in initial 3 buffers was not getting submitted to xaudio2 voice resulting in garbled/skipped audio.
- Wasn't able to repro the 'cannot read chunk' part of the bug
#rb ryan.vance
Change 2749255 on 2015/10/31 by sebastian.kowalczyk
Fixed ai.gd.EQSOnHUD console variable after rename from gd.EQSOnHUD.
Change 2749276 on 2015/10/31 by sebastian.kowalczyk
Added switch to toggle highlight of selected actor to GameplayDebugger.
Change 2749318 on 2015/10/31 by sebastian.kowalczyk
New Gameplay Debugger plugin can be used with old module simultaneously. It's best to configure different keyboard binding for plugin when using old module (it can be set in project settings, for new gameplay debugger plugin - when activated for project).
Change 2749337 on 2015/10/31 by sebastian.kowalczyk
Fixed GameplayDebugger compilation in shipping/test builds.
Change 2749376 on 2015/10/31 by sebastian.kowalczyk
Small clean-up in gameplay debugger class for BT.
Change 2749931 on 2015/11/02 by James.Golding
Add stats to ProcMeshComp
Change 2749932 on 2015/11/02 by James.Golding
Remove PhysicsThrusterComponent.h from Engine.h
Change 2749960 on 2015/11/02 by James.Golding
- Fix PS4 compile errors in ActiveSound.cpp
- Constructor order of FActiveSound
- Shadowed AudioComponent var in CheckOcclusion
#RB thomas.sarkanen
#codereview aaron.mcleran
Change 2749961 on 2015/11/02 by James.Golding
Fix PS4 compile errors in GameplayDebuggerBaseObject.cpp
- Shadowed DefaultContext function param, now just Context, which matches declaration
#RB thomas.sarkanen
#codereview sebastian.kowalczyk
Change 2750026 on 2015/11/02 by Thomas.Sarkanen
Anim Multithreading: thread-safety refactor
Segregated access to various parts of anim update data by spitting off a new proxy class (FAnimInstanceProxy) containing all data accessed in Update() and Evaluate() passes. Gated access to the proxy data on the game thread in a number of ways:
- Explicit access via GetValueOnGameThread() - this blocks on any existing task, completes and then allows control to return to the accessing function. This allows stuff like Blueprints to continue to operate as normal.
- Explicit access via GetValueOnAnyThread() - this ensures that in the limited set of circumstances we need this (Blueprint pure functions mostly) that conditions are met about concurrent access.
- Deprecating many APIs on UAnimInstance that should not be used (and in fact are not used at present, happily).
Derived classes of UAnimInstance can override the creation of the proxy class to create their own type. We do this for UAnimSingleNodeInstance etc.
Any API deprecation should continue to function - no functions have been removed yet. The only things that are not backwards-compatible are direct access to some public member variables for which there is no way to support (e.g. via references, for example UngroupedActivePlayerArrays).
Some APIs have been changed to more specifically represent the dependencies involved. For example TickAssetPlayerInstance() used to take a UAnimInstance*, only to use it to simply queue notifies. This has been deprecated and replaced with a new FNotifyQueue API. FNotifyQueue also uses a thread-safe FRandomStream instead of FMath::Rand.
Many changes are due to substituting accessor functions for direct variable access.
Removed 'service' tick group as we no longer need to segregate the running of our parallel update.
Anim nodes that need to do some game thread-side update should register for a pre-update callback delegate in the proxy. See FAnimNode_AnimDynamics for an example of this.
Moved UpdateActiveVertexAnims into FAnimRuntime so I can subsume some of the code that was in USkeletalMeshComponent::EvaluateAnimation into UAnimInstance (and hence keep the proxy access private).
#rb Martin.Wilson,Lina.Halper
#codereview Michael.Noland
Change 2750077 on 2015/11/02 by Marc.Audy
Expose UInputComponent::BindAction that supports WithKey delegate signature
Change 2751767 on 2015/11/03 by Thomas.Sarkanen
Added extra support to Anim Blueprint 'fast-path'
Added support for negated bools (value gets negated during copy).
Added support for copying from struct members (via break struct) and split struct pins.
Removed potentially troublesome references to BP-constructed UProperties, replacing them with the property FName. This adds some extra Initialize() overhead, but prevents various crash-on load issues (one when generating the class CRC). Added guard to prevent multiple initialization to save this more expensive work being done more often.
#rb Martin.Wilson
Change 2752158 on 2015/11/03 by Jeff.Farris
Fixed UGameplayStatics::SpawnEmitterAttached() to register the ParticleSystemComponent after it spawns.
#rb marc.audy
Change 2752159 on 2015/11/03 by Jeff.Farris
Improvements to camera lens effects to (EmitterCameraLensEffectBase)
- can now specify a transform to align the emitter with the camera
- exposed several key parameters to Blueprints
- ENGINE_API now applies to the entire class
#rb marc.audy
Change 2753454 on 2015/11/04 by Thomas.Sarkanen
Fixup deprecation warnings fallout from multithreaded update changes.
Fixed up use of AnimInstance in Vicon plugin.
Fixed up use of AnimInstance in slope warping node.
Un-deprecated some APIs to become warning free (these APIs are safe to call but just a 'bad idea if you want to do it right').
Also an extra API to allow for smoother transition: Allow custom allocation/deallocation (including using a proxy member struct) by providing an override point for proxy destruction.
#rb Martin.Wilson
Change 2754099 on 2015/11/04 by Ori.Cohen
Fix for task threads dropping stats (from Gil)
#rb Gil.Gribb
Change 2754449 on 2015/11/04 by Marc.Audy
Ensure that components created from an Actor's blueprint BeginPlay implementation get BeginPlay called on them and register their component ticks
#jira UE-20853
Reorganize some booleans to get better bit packing
#rb Jeff.Farris
#codereview Mieszko.Zielinski
Change 2754573 on 2015/11/04 by Aaron.McLeran
Fixing audio component PostLoad code to not set all LowPassFilterFrequency values to 0.0f
Change 2755345 on 2015/11/05 by Thomas.Sarkanen
Added deprecated constructors for various animation contexts
Allows existing code to compile if it creates its own contexts from UAnimInstance.
#rb James.Golding
Change 2755348 on 2015/11/05 by James.Golding
Add BP-exposed SetBoundsScale function to PrimitiveComponent
#RB thomas.sarkanen
Change 2755437 on 2015/11/05 by Marc.Audy
Fix compile errors
#codereview Thomas.Sarkanen, Mieszko.Zielinski, Aaron.McLeran
Change 2755982 on 2015/11/05 by Marc.Audy
Move HeaderParse changes for deprecation macro from Core
Fix world settings warning
Change 2756028 on 2015/11/05 by Marc.Audy
Fix shadow variable issue
Change 2756090 on 2015/11/05 by Ori.Cohen
Improve budget tool so that task threads are computed automatically.
#rb Gil.Gribb
Change 2756120 on 2015/11/05 by Mieszko.Zielinski
Fixed AIController::MoveTo not using DefaultQueryExtent of its navigation data #UE4
#rb Lukasz.Furman
Change 2756243 on 2015/11/05 by Mieszko.Zielinski
Fixed AI perception sight's "auto-visibility" mechanism totally skipping distance and vision cone checks #UE4
The old way was resulting in false positives when for example observer teleported somewhere far
#rb Lukasz.Furman
#codereview John.Abercrombie
Change 2756280 on 2015/11/05 by Mieszko.Zielinski
Minor VLog code cleanup and dumb-fixing visual logger accessing timer manager off of game thread #UE4
#rb Lukasz.Furman
Change 2756500 on 2015/11/05 by Mieszko.Zielinski
Added sanity-checking to BlueprintNodeHelpers::HasBlueprintFunction and cleaned up its usage #UE4
Also, refactored its parameters into references over pointers.
#rb Lukasz.Furman
Change 2757041 on 2015/11/06 by Thomas.Sarkanen
Removed check() in UAnimInstance::GetProxyOnAnyThread()
The check was no longer needed as if we are on the game thread we block until tasks are completed below, and if we are on any other thread we are 'safe' anyway.
#rb James.Golding
Change 2757207 on 2015/11/06 by Ori.Cohen
Fix incorrect root body cache which causes a single frame "freak out" when simulating physics from an animation
#rb Lina.Halper
Change 2757238 on 2015/11/06 by Marc.Audy
Force compiler generated functions to be generated for FHierarchicalSimplification in WorldSettings.h so that they are generated while the deprecation warnings are disabled.
#rb Mike.Fricker
Change 2757284 on 2015/11/06 by Stan.Melax
tapered capsule drawing
cloth collision happens with spheres and for the hull or tapered capsule goemetry between any specified pair of spheres.
(this was already code reviewed before, but missed the check-in window before streamtime)
#rb ori.cohen
Change 2757743 on 2015/11/06 by Lukasz.Furman
fixed node memory allocations for injected behavior tree decorators
#ue4 UE-22783
#rb Mieszko.Zielinski
Change 2757772 on 2015/11/06 by Lukasz.Furman
added setters for crowd avoidance
#ue4 UE-22785
#rb Mieszko.Zielinski
Change 2758422 on 2015/11/07 by Lina.Halper
Potential fix for invalid root bone index input
#jira :/UE-23086
#code review: Ori.Cohen
Change 2758429 on 2015/11/07 by Mieszko.Zielinski
Reimplemented a fix for AI Sight's "auto seeing" mechanics in a more flexible way #UE4
#jira UE-23089
Change 2758571 on 2015/11/08 by Mieszko.Zielinski
Modified ensure condition in UAIPerceptionComponent::OnRegister so it doesn't go off when BP does it's magic when components are being added to a BP actor class #UE4
#jira UE-23080
Change 2758821 on 2015/11/09 by Thomas.Sarkanen
Fixed animations no longer playing when using a dedicated server.
Uses correct logic to determine whether we are running as a server or not.
#rb Martin.Wilson
Change 2758920 on 2015/11/09 by Marc.Audy
Don't dereference weak object pointers repeatedly in FBoneContainer::Initialize
#rb Lina.Halper
Change 2758944 on 2015/11/09 by Ori.Cohen
Fix crash when stats are only on one thread and budget mode is used
Change 2758967 on 2015/11/09 by Benn.Gallagher
Fix for crash undoing notify socket changes in Persona, needed to recache the notify track data after the transaction had reserialized the sequence.
#jira UE-22963
Change 2758973 on 2015/11/09 by Benn.Gallagher
Added new 'Random Player' node for anim graphs allowing the user to play a selection of animations in a random order with certain randomised paramers. Also allows 'Shuffle Mode' to act more like a playlist in that it will play everything on the list before repeating.
#rb Bruce.Nesbit
Change 2759219 on 2015/11/09 by Ori.Cohen
Character perf test is now looking at stats directly and sending to analytics
#RB Ben.Salem
Change 2759398 on 2015/11/09 by Lina.Halper
Fix issue where placed montages are not playing.
- the issue is that IsPlaying does not consider montage, but SetPlaying does. It is asymmetry, so I made it same. However, there are other functions that need to be re-looked at wr.t. montage
#code review: Thomas.Sarkanen
#RB: Marc.Audy
Change 2759491 on 2015/11/09 by Lina.Halper
#Anim: Fix not getting input correctly for Copy Pose node
#RB: Marc.Audy
Change 2759602 on 2015/11/09 by Marc.Audy
Fix imporperly named struct
Change 2759795 on 2015/11/09 by Aaron.McLeran
UE-23145 Adding a Priority value to USoundBase to use in concurrency evaluation and sorting wave instances for voice stealing.
#rb zak.middleton
Change 2760081 on 2015/11/09 by Aaron.McLeran
UE-23091 Adding more logging for NaN checks and fixing one source of NaNs for audio.
OmniDirectional Math Explanation:
For XAudio2, because we do our own distance-attenuation calculations, we use the X3dAudio2 API to simply compute a speaker-map for spatialization and force the listener to be at the origin and the emitter to be on the unit-circle. Thus, from XAudio2's perspective, all distances for every listener-emitter pair will be 1.0.
So in order to use the InnerRadius blending feature, we need to trick it into doing a an inner radius blend relative to a distance of 1.0. For example, if OmniRadius and Distance are the same, then the "NormalizedOmniRadius" is 1.0 and XAudio2 will begin its "blend" of the sound to an omni-directional speaker map.
If Emitter-listener distance is less than the OmniRadius, we'll want to do more blending to an omni-directional speaker map, but we need to set the InnerRadius to something greater than 1.0 (i.e. so that the normalized distance of 1.0 will be treated as less than the InnerRadius). To do "full" omni-directional blending, the emitter-listener distance will be 0 or close to zero, and the NormalizedOmniRadius will be very large (i.e. close to infiinity).
The previous math just set the NormalizedOmniRadius to FLT_MAX which is fine but that number is eventually squared before making the API call. FLT_MAX squared is INF.
Note: I do not think we need to square the OmniRadius in:
Emitter.InnerRadius = OmniRadius*OmniRadius;
But I am keeping it t here because of legacy content which depends on that behavior.
#rb zak.middleton
hange 2760401 on 2015/11/10 by Thomas.Sarkanen@Thomas.Sarkanen-Dev-Framework
Re-instated deleted protected functions in UAnimInstance.
Fixed access of UAnimInstance in FAnimNode_StateMachine.
#rb Martin.Wilson
Change 2760407 on 2015/11/10 by Jurre.deBaare
Construct raw meshes for spline meshes now uses the render data instead of original model data (preserves tangents/normals)
Change 2760468 on 2015/11/10 by Benn.Gallagher
Anim Dynamics optimizations, cached iteration independant data to reduce footprint of iteration on limits.
#rb Graeme.Thornton
Change 2760613 on 2015/11/10 by Jeff.Farris
Fixed async collision completion delegate potentially firing repeatedly. (UE-23149)
#cr marc.audy
#codereview lina.halper
Change 2760795 on 2015/11/10 by Marc.Audy
Don't compile in pointless AddReferencedObjects when with editoronly data not defined
Minor coding standard cleanup (NULL and auto)
Change 2760848 on 2015/11/10 by Benn.Gallagher
Fix to anim instance proxy to not rely on state machine initialization to bind native delegates as nested state machines are not guaranteed to be initialized. This was fixed in UAnimInstance originally but broken again by the proxy instance code.
#jira UE-23164
#rb Martin.Wilson
Change 2760866 on 2015/11/10 by Marc.Audy
Manage transient visualization components for camera component in the same way that sprite component for other actor components are
#rb Mike.Beach
Change 2760963 on 2015/11/10 by Marc.Audy
Since construction script can cause actors to be spawned don't use a ranged for to iterate
#jira UE-22639
#rb Jeff.Farris
#codereview Dmitriy.Dyomin
Change 2762297 on 2015/11/11 by James.Golding
UE-23086 Don't ensure in SetRootBodyIndex when Bodies array is empty (ie no physics state created)
#rb martin.wilson
#codereview ori.cohen, lina.halper
Change 2763566 on 2015/11/11 by Lina.Halper
FAnimNode_CopyPoseFromMesh::Evaluate - was accessing skeleton joint, not mesh joint.
#RB: Laurent.Delayen
Change 2763926 on 2015/11/12 by Thomas.Sarkanen
Fix anim notifies not firing from single anim instances
UE-23248 - Anim Notifies are not working for Animation Sequences
UE-23249 - Anim Notifies using Sound Cues do not work
#rb James.Golding
Change 2764039 on 2015/11/12 by Jurre.deBaare
Fix for issue with incorrect material indices after reducing a skeletal mesh with non LOD0 mesh as BaseLOD (OR-9243) #rb Lina.Halper
Change 2764307 on 2015/11/12 by Jurre.deBaare
VS2015 SSF library
Change 2764314 on 2015/11/12 by Stan.Melax
crashfix was putting bad bodies to sleep at start
Fatal error!
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000000
UE4Editor-Engine.dll!USkeletalMeshComponent::InitArticulated() [...\\engine\\source\\runtime\\engine\\private\\skeletalmeshcomponentphysics.cpp:875]
On some skeletalmeshcomponent, some bodies aren't getting created correctly. Trying to force them to sleep was causing a crash - it expected instantiated physx bodies. Seems that all the rest of the code is able to tolerate bad bodies.
Added check to ensure physx body exists before trying to force it to sleep.
not sure if bad bodies are the norm or if this fix is just more "kicking the can down the road".
#codereview ori.cohen
Change 2764343 on 2015/11/12 by Jurre.deBaare
- Fixed crash when building a LOD with SubActors.Num < 2
- Force HLOD level slider is now always enabled, however won't show complete image if not all HLODs are build
- LODActor tree view item now scrolls into view if selected in the world
- Set bAllowCullDistanceVolume to false for LODActor's static mesh components by default
- Added 7zip files
- Fixed issue with WinINet complaining about http-request without 'http://' prefix
- Changed % reduced or original triangles display string, now uses float instead of int (for < 1% reductions)
- Override texture sizes and automatic texture bias
- Fixed issue with incorrect material merging, not picking up it required mesh-data during baking. Added extra conditions for rendering with mesh-data.
- Now incorporate static meshes with opague materials into HLOD merging
- Fixed issue with incorrect normals after merging meshes who's owning components had been negatively scaled
- Fixed issue with incorrect texture size being set from MergeActor window (was only changing .X component)
- Fixed issue with material merging when meshes with multiple LODs are merged, right now only merges LOD0's together if we are also merging the materials (otherwise, merge each LOD)
- Added ENUM for texture scaling/resizing type that has to be applied while merging the materials
- Added detail customization class for FMaterialProxySettings
#rb James.Golding
[CL 2765024 by Marc Audy in Main branch]
2015-11-12 18:11:48 -05:00
Package - > SetPackageFlags ( PKG_EditorOnly ) ;
2015-08-20 06:52:43 -04:00
}
2014-04-25 16:05:52 -04:00
2016-01-27 12:09:53 -05:00
if ( Module . ModuleType = = EBuildModuleType : : GameDeveloper | | Module . ModuleType = = EBuildModuleType : : EngineDeveloper )
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
{
Package - > SetPackageFlags ( Package - > GetPackageFlags ( ) | PKG_Developer ) ;
}
2015-11-18 16:20:49 -05:00
// Add new module or overwrite whatever we had loaded, that data is obsolete.
UHTMakefile . AddPackage ( Package ) ;
2014-04-25 16:05:52 -04:00
GPackageToManifestModuleMap . Add ( Package , & Module ) ;
2015-11-18 16:20:49 -05:00
double ThisModulePreparseTime = 0.0 ;
int32 NumHeadersPreparsed = 0 ;
FDurationTimer ThisModuleTimer ( ThisModulePreparseTime ) ;
ThisModuleTimer . Start ( ) ;
2015-03-27 17:16:51 -04:00
// Pre-parse the headers
2014-04-25 16:05:52 -04:00
for ( int32 PassIndex = 0 ; PassIndex < FolderType_Count & & Result = = ECompilationResult : : Succeeded ; + + PassIndex )
{
EHeaderFolderTypes CurrentlyProcessing = ( EHeaderFolderTypes ) PassIndex ;
2014-03-14 14:13:41 -04:00
// We'll make an ordered list of all UObject headers we care about.
// @todo uht: Ideally 'dependson' would not be allowed from public -> private, or NOT at all for new style headers
2014-04-23 20:18:55 -04:00
const TArray < FString > & UObjectHeaders =
( CurrentlyProcessing = = PublicClassesHeaders ) ? Module . PublicUObjectClassesHeaders :
( CurrentlyProcessing = = PublicHeaders ) ? Module . PublicUObjectHeaders :
Module . PrivateUObjectHeaders ;
if ( ! UObjectHeaders . Num ( ) )
2015-03-10 06:14:19 -04:00
{
2014-04-23 20:18:55 -04:00
continue ;
2015-03-10 06:14:19 -04:00
}
2014-04-23 20:18:55 -04:00
2015-03-27 17:16:51 -04:00
NumHeadersPreparsed + = UObjectHeaders . Num ( ) ;
for ( const FString & RawFilename : UObjectHeaders )
2014-03-14 14:13:41 -04:00
{
2014-04-23 20:18:55 -04:00
# if !PLATFORM_EXCEPTIONS_DISABLED
try
# endif
2014-03-14 14:13:41 -04:00
{
2014-04-23 20:18:55 -04:00
// Import class.
2015-03-27 17:16:51 -04:00
const FString FullFilename = FPaths : : ConvertRelativePathToFull ( ModuleInfoPath , RawFilename ) ;
2014-03-14 14:13:41 -04:00
2014-04-23 20:18:55 -04:00
FString HeaderFile ;
2015-03-27 17:16:51 -04:00
if ( ! FFileHelper : : LoadFileToString ( HeaderFile , * FullFilename ) )
2014-04-29 06:45:18 -04:00
{
2015-03-27 17:16:51 -04:00
FError : : Throwf ( TEXT ( " UnrealHeaderTool was unable to load source file '%s' " ) , * FullFilename ) ;
2014-04-29 06:45:18 -04:00
}
2014-03-14 14:13:41 -04:00
2016-02-22 11:17:03 -05:00
TSharedRef < FUnrealSourceFile > UnrealSourceFile = PerformInitialParseOnHeader ( Package , * RawFilename , RF_Public | RF_Standalone , * HeaderFile , UHTMakefile ) ;
2015-11-18 16:20:49 -05:00
FUnrealSourceFile * UnrealSourceFilePtr = & UnrealSourceFile . Get ( ) ;
TArray < UClass * > DefinedClasses = UnrealSourceFile - > GetDefinedClasses ( ) ;
for ( UClass * DefinedClass : DefinedClasses )
{
UHTMakefile . AddClass ( UnrealSourceFilePtr , DefinedClass ) ;
}
2015-03-27 17:16:51 -04:00
GUnrealSourceFilesMap . Add ( RawFilename , UnrealSourceFile ) ;
2015-11-18 16:20:49 -05:00
UHTMakefile . AddUnrealSourceFilesMapEntry ( UnrealSourceFilePtr , RawFilename ) ;
2015-01-20 09:33:54 -05:00
if ( CurrentlyProcessing = = PublicClassesHeaders )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
for ( auto * Class : UnrealSourceFile - > GetDefinedClasses ( ) )
{
GPublicClassSet . Add ( Class ) ;
2015-11-18 16:20:49 -05:00
UHTMakefile . AddPublicClassSetEntry ( UnrealSourceFilePtr , Class ) ;
2015-01-20 09:33:54 -05:00
}
2015-11-18 16:20:49 -05:00
GPublicSourceFileSet . Add ( UnrealSourceFilePtr ) ;
2014-04-23 20:18:55 -04:00
}
2014-03-14 14:13:41 -04:00
2014-04-23 20:18:55 -04:00
// Save metadata for the class path, both for it's include path and relative to the module base directory
2015-03-27 17:16:51 -04:00
if ( FullFilename . StartsWith ( Module . BaseDirectory ) )
2014-04-23 20:18:55 -04:00
{
// Get the path relative to the module directory
2015-03-27 17:16:51 -04:00
const TCHAR * ModuleRelativePath = * FullFilename + Module . BaseDirectory . Len ( ) ;
2015-01-20 09:33:54 -05:00
UnrealSourceFile - > SetModuleRelativePath ( ModuleRelativePath ) ;
2014-03-14 14:13:41 -04:00
2014-05-07 05:38:15 -04:00
// Calculate the include path
2015-03-27 17:16:51 -04:00
const TCHAR * IncludePath = ModuleRelativePath ;
2014-05-07 05:38:15 -04:00
// Walk over the first potential slash
2015-03-27 17:16:51 -04:00
if ( * IncludePath = = TEXT ( ' / ' ) )
2014-03-14 14:13:41 -04:00
{
2014-04-23 20:18:55 -04:00
IncludePath + + ;
2014-03-14 14:13:41 -04:00
}
2014-05-07 05:38:15 -04:00
// Does this module path start with a known include path location? If so, we can cut that part out of the include path
static const TCHAR PublicFolderName [ ] = TEXT ( " Public/ " ) ;
static const TCHAR PrivateFolderName [ ] = TEXT ( " Private/ " ) ;
static const TCHAR ClassesFolderName [ ] = TEXT ( " Classes/ " ) ;
2015-03-27 17:16:51 -04:00
if ( FCString : : Strnicmp ( IncludePath , PublicFolderName , ARRAY_COUNT ( PublicFolderName ) - 1 ) = = 0 )
2014-03-14 14:13:41 -04:00
{
2014-05-07 06:23:29 -04:00
IncludePath + = ( ARRAY_COUNT ( PublicFolderName ) - 1 ) ;
2014-04-23 20:18:55 -04:00
}
2015-03-27 17:16:51 -04:00
else if ( FCString : : Strnicmp ( IncludePath , PrivateFolderName , ARRAY_COUNT ( PrivateFolderName ) - 1 ) = = 0 )
2014-04-23 20:18:55 -04:00
{
2014-05-07 06:23:29 -04:00
IncludePath + = ( ARRAY_COUNT ( PrivateFolderName ) - 1 ) ;
2014-05-07 05:38:15 -04:00
}
2015-03-27 17:16:51 -04:00
else if ( FCString : : Strnicmp ( IncludePath , ClassesFolderName , ARRAY_COUNT ( ClassesFolderName ) - 1 ) = = 0 )
2014-05-07 05:38:15 -04:00
{
2014-05-07 06:23:29 -04:00
IncludePath + = ( ARRAY_COUNT ( ClassesFolderName ) - 1 ) ;
2014-05-07 05:38:15 -04:00
}
// Add the include path
2015-03-27 17:16:51 -04:00
if ( * IncludePath ! = 0 )
2014-05-07 05:38:15 -04:00
{
2015-01-20 09:33:54 -05:00
UnrealSourceFile - > SetIncludePath ( MoveTemp ( IncludePath ) ) ;
2014-03-14 14:13:41 -04:00
}
}
}
2014-04-23 20:18:55 -04:00
# if !PLATFORM_EXCEPTIONS_DISABLED
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3049602)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2946506 on 2016/04/18 by Steven.Hutton
Update to Crash Reporter buggs table to add new search fields and inclusion of packages needed for e-mail reports.
Change 3017807 on 2016/06/17 by Chris.Wood
Improved Crash Report Process folder delete code as it could sometimes fail.
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also added logging to Slack when stop request received instead of just when stop is complete.
Change 3019367 on 2016/06/20 by Chris.Wood
Improve Crash Report Process logging to track bad reads from S3.
Also, better logging when CleanReport fails to delete folders.
Change 3019376 on 2016/06/20 by Steve.Robb
Clarification of assert message and comments which talk about 'null' TFunctions.
Tidy-up of dead code.
Change 3019409 on 2016/06/20 by Steve.Robb
New Find and FindByPredicate algorithms for finding stuff in arbitrary containers.
Change 3022658 on 2016/06/22 by Chris.Wood
Discarding duplicated crash reports earlier in read from Data Router process to avoid clashes in the landing zone (CRP v1.1.11)
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also improved logging to Slack with better layout, fixed event ordering and counting duplicates.
Change 3022840 on 2016/06/22 by Steve.Robb
Skipped UHT attributes removed.
Change 3022907 on 2016/06/22 by Robert.Manuszewski
Fixing crash when adding a new C++ class to project
#jira UE-32333
Change 3023169 on 2016/06/22 by Steve.Robb
Checks for UTHINGs in skipped preprocessor blocks.
Fixes for skipped UTHINGs and some other parsing accidents.
#jira UE-31627
Change 3023239 on 2016/06/22 by Steve.Robb
Fix for JSON date parsing reported here: https://udn.unrealengine.com/questions/299342/fdatetime-json-serialization-bug.html
Change 3026812 on 2016/06/24 by Mieszko.Zielinski
Marked FEnvQueryInstance::AddItemData UEnvQueryItemType_Point specialization as AIMODULE_API #UE4
Change 3028235 on 2016/06/27 by Robert.Manuszewski
PR #2535: BUGFIX: FPS pop-up updates when loading new stat file (Contributed by projectgheist)
Change 3028282 on 2016/06/27 by Steve.Robb
Fix for missing UFUNCTION check in skipped preprocessor blocks.
#jira UE-31627
Change 3028284 on 2016/06/27 by Steve.Robb
Debuggability improvements and coding standards changes.
Change 3028343 on 2016/06/27 by Steve.Robb
Fix for UHT error in WEX.
#jira UE-32464
Change 3028393 on 2016/06/27 by Steve.Robb
Fix for hot reload of enums finding the old enum.
Fix to stop SPropertyEditorNumeric caching the enum flags.
#jira UE-31658
Change 3030362 on 2016/06/28 by Robert.Manuszewski
Fixing hang when cooking.
Change 3030462 on 2016/06/28 by Steve.Robb
Assert added to PackageTools::GetFilteredPackageList() to help with catching a bug reported in the wild.
#jira UE-32001
Change 3034341 on 2016/06/30 by Robert.Manuszewski
Modified crash handling code (on Windows) to handle two threads crashing at the same time properly. Previously the second crash would force the process to exit before generating the crash report.
Added 'debug twothreadsgpf' command to test the functionality.
Change 3034342 on 2016/06/30 by John.Mahoney
Fix for crash when loading an empty cached asset registry.
#jira UE-32232
Change 3035599 on 2016/07/01 by Chris.Wood
Added support for CrashType string to Crash Report Process. CRP v1.1.12
[UE-30592] - Crash Reporter should determine crash type on client and pass string to server
Also fixes problem with reports falling back on the legacy WER metadata when a crash context exists. They now only read the error message from metadata if available and keep crash context data when possible.
Added in missing crash context parameters that have been added to clients but not known by the server.
Change 3035787 on 2016/07/01 by John.Mahoney
Fix for crash when DuplicateRedirects does not contain the DependentObject when saving dependencies. It will still fall through to the assertion below, but it will now fail with a useful error message instead of a generic 'Pair != nullptr' from Map.h.
#jira UE-30189
Change 3036933 on 2016/07/04 by Steve.Robb
Proper forwarding constructor for FAsyncTask.
Change 3036938 on 2016/07/04 by Steve.Robb
Fix for CDO hot reload corrupting memory when replacing references inside structs.
#jira UE-29335
Change 3036960 on 2016/07/04 by Steve.Robb
Fix for FAnsiAllocator::ResizeAllocation when resizing to zero.
Change 3037423 on 2016/07/05 by Steve.Robb
FModuleManager::UnloadOrAbandonModuleWithCallback split into two instead of switching behavior with a bool.
Change 3037464 on 2016/07/05 by Steve.Robb
HotReload.cpp cleanup:
Deep nesting flattened.
Linear array searches replaced with maps.
FHotReloadModule::GetGameModules made into a non-member function and split into two.
Comment and coding standard fixes.
Change 3037741 on 2016/07/05 by John.Mahoney
Fix for COTF not checking the correct timestamps on startup.
#jira UE-31023
Change 3037846 on 2016/07/05 by Steve.Robb
Fix for compile button disappearing on a bad compile.
#jira UE-31575
Change 3037994 on 2016/07/05 by Steve.Robb
Static analysis fixes:
warning C6308: 'realloc' might return null pointer: assigning null pointer to 'Data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
Change 3039186 on 2016/07/06 by Robert.Manuszewski
Enabling crash callstack logging by default.
Change 3039220 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C28159: Consider using 'InitiateSystemShutdownEx' instead of 'ExitWindowsEx'. Reason: Legacy API. Rearchitect to avoid Reboot
warning C6001: Using uninitialized memory 'UserNameLength'
warning C6001: Using uninitialized memory 'DomainNameLength'
Change 3039230 on 2016/07/06 by Steve.Robb
Fix for VC internal compiler errors.
Change 3039237 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'Path': the readable size is '400' bytes, but 'PathCurrentDepth' bytes may be read.
Change 3039287 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6509: Invalid annotation: 'return' cannot be referenced in some contexts
warning C6101: Returning uninitialized memory '*lpdwExitCode'. A successful path through the function does not set the named _Out_ parameter.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToStorage'.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToObject'.
warning C6031: Return value ignored: 'CoCreateInstance'.
Change 3039359 on 2016/07/06 by Graeme.Thornton
Compile error fix for FAsyncTask, courtesy of SteveR
Change 3039534 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6319: Use of the comma-operator in a tested expression causes the left argument to be ignored when it has no side-effects.
Change 3039545 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value.
Change 3039578 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3039623 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'
warning C6308:'realloc' might return null pointer: assigning null pointer to 'X', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
warning C6385: Reading invalid data from 'X': the readable size is 'Y' bytes, but 'Z' bytes may be read.
warning C6386: Buffer overrun while writing to 'X': the writable size is 'Y' bytes, but 'Z' bytes might be written.
warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did.
Change 3039630 on 2016/07/06 by John.Mahoney
Fix for crash when spawning an actor using a template object that has instance components. UActorComponent::PostInitProperties was adding itself to the owner's InstanceComponents array, resulting in a realloc of that array and invalidating the reference that the owner's ObjectInitializer was trying to replace while instantiating that property. The new instance component will be added to the array as part of the owner's initialization anyway, so it is not necessary to do it here.
#jira UE-29123
Change 3039664 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6386: Buffer overrun while writing to 'NewKeys': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
warning C6386: Buffer overrun while writing to 'NewHeapIndexes': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
Change 3039673 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'v'.
Change 3039690 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'.
warning C6246: Local declaration of 'X' hides declaration of the same name in outer scope.
warning C6262: Function uses '121180' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap.
warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3040868 on 2016/07/07 by Graeme.Thornton
Config based class stripping for server builds
Change 3040872 on 2016/07/07 by Graeme.Thornton
Remove "return false" NeedsLoadForServer functions from engine code
Change 3040997 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Landscape'.
warning C6011: Dereferencing NULL pointer 'rhs.Allocation.LayerInfo'.
warning C6011: Dereferencing NULL pointer 'lhs.Allocation.LayerInfo'.
Change 3041004 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent.
Change 3041014 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6287: Redundant code: the left and right sub-expressions are identical.
Change 3041111 on 2016/07/07 by Steve.Robb
Removal of an obsolete error message about INI file case sensitivity.
Change 3041150 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead?
Change 3041274 on 2016/07/07 by Steve.Robb
Static analysis fixes: warning C6001: Using uninitialized memory 'X'.
Change 3041294 on 2016/07/07 by Chris.Wood
Fixed protocol buffer and decompression errors in Crash Report Process (v.1.1.14)
[UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack
Size of buffer received from S3 is incorrect for some records. Fixed read problems by using size header value instead of stream length.
Increased buffer size for decompression as this was sometimes too small.
Modified S3 reading code to look for multiple records in each downloaded file.
Change 3041472 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed.
warning C6201: Index '1' is out of valid index range '0' to '0' for possibly stack allocated buffer 'NewHistory.Nodes'.
Change 3043074 on 2016/07/08 by John.Mahoney
Fix for COTF incorrectly reconstructing the original asset path based on the sandbox path when the game name differs from the game folder name.
Fix for COTF GetFiles not handling absolute GameDir paths properly.
#jira UE-31023
Change 3044461 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6386: Buffer overrun while writing to 'Attributes': the writable size is '16384' bytes, but '-8' bytes might be written.
Change 3044470 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Node.Sequence'.
Change 3044476 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Property'.
Change 3044551 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'KeyAreaNode' did.
Change 3044664 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'ToLandscape->SplineComponent'.
warning C28182: Dereferencing NULL pointer. 'SplinesComponent' contains the same NULL value as 'Landscape->SplineComponent' did.
warning C6011: Dereferencing NULL pointer 'Landscape->SplineComponent'.
warning C6385: Reading invalid data from 'out': the readable size is 'sizeof(kiss_fft_cpx)*Dims[0]*Dims[1]' bytes, but '16' bytes may be read.
Change 3044716 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'this->ScreenSize': the readable size is '32' bytes, but '-4' bytes may be read.
Change 3044717 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Window' contains the same NULL value as 'ElementType * Window=AllWindows.FindByPredicate((*FStaticMeshEditorTest::RunTest::<lambda_46fd0093f3912289e870263afe1fcb2e>(ExpectedTitle)))' did.
This appears to be a false positive.
Change 3044787 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'FbxObject'.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'RigidMeshNode' did.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'Result' did.
Change 3045933 on 2016/07/12 by Steve.Robb
Overloading support for TSharedPtr, TSharedRef and TWeakPtr.
Change 3045960 on 2016/07/12 by Robert.Manuszewski
Fixing a crash in Portal (and any other program that uses UObjects and GCs, with the exception of UHT) caused by classes not having their token stream assembled.
Change 3045963 on 2016/07/12 by Steve.Robb
PLATFORM_COMPILER_HAS_EXPLICIT_OPERATORS, FORCEINLINE_EXPLICIT_OPERATOR_BOOL and SAFE_BOOL_OPERATORS macros removed.
THasOperatorEquals and THasOperatorNotEquals traits moved to their own header.
Change 3045967 on 2016/07/12 by Steve.Robb
Initializer list support for TArray and TSet.
Change 3045968 on 2016/07/12 by Robert.Manuszewski
Fixing an ensure after typing 'stat dumphitches' in console.
Change 3045992 on 2016/07/12 by Robert.Manuszewski
Making sure CoreUObject headers are included for programs that don't include the engine (fixing MinidumpDiagnostics CIS failure)
Change 3047870 on 2016/07/13 by Steven.Hutton
Updated CRW to entity framework with repository models. #rb none
Change 3047871 on 2016/07/13 by Steven.Hutton
Add repository models #rb none
Change 3049468 on 2016/07/14 by Steven.Hutton
Fix broken project files. #rb none
#lockdown Nick.Penwarden
[CL 3050320 by Robert Manuszewski in Main branch]
2016-07-14 14:54:00 -04:00
catch ( const FFileLineException & Ex )
{
TGuardValue < ELogTimes : : Type > DisableLogTimes ( GPrintLogTimes , ELogTimes : : None ) ;
FString AbsFilename = IFileManager : : Get ( ) . ConvertToAbsolutePathForExternalAppForRead ( * Ex . Filename ) ;
FString Prefix = FString : : Printf ( TEXT ( " %s(%d): " ) , * AbsFilename , Ex . Line ) ;
FString FormattedErrorMessage = FString : : Printf ( TEXT ( " %sError: %s \r \n " ) , * Prefix , * Ex . Message ) ;
Result = GCompilationResult ;
UE_LOG ( LogCompile , Log , TEXT ( " %s " ) , * FormattedErrorMessage ) ;
GWarn - > Log ( ELogVerbosity : : Error , FormattedErrorMessage ) ;
+ + NumFailures ;
}
2015-03-27 17:16:51 -04:00
catch ( TCHAR * ErrorMsg )
2014-04-23 18:36:17 -04:00
{
2014-04-23 20:18:55 -04:00
TGuardValue < ELogTimes : : Type > DisableLogTimes ( GPrintLogTimes , ELogTimes : : None ) ;
2015-07-14 06:27:34 -04:00
FString AbsFilename = IFileManager : : Get ( ) . ConvertToAbsolutePathForExternalAppForRead ( * RawFilename ) ;
FString Prefix = FString : : Printf ( TEXT ( " %s(1): " ) , * AbsFilename ) ;
2014-04-23 20:18:55 -04:00
FString FormattedErrorMessage = FString : : Printf ( TEXT ( " %sError: %s \r \n " ) , * Prefix , ErrorMsg ) ;
Result = GCompilationResult ;
UE_LOG ( LogCompile , Log , TEXT ( " %s " ) , * FormattedErrorMessage ) ;
GWarn - > Log ( ELogVerbosity : : Error , FormattedErrorMessage ) ;
+ + NumFailures ;
2014-04-23 18:36:17 -04:00
}
2014-04-23 20:18:55 -04:00
# endif
}
2014-04-25 16:05:52 -04:00
if ( Result = = ECompilationResult : : Succeeded & & NumFailures ! = 0 )
2014-04-23 20:18:55 -04:00
{
Result = ECompilationResult : : OtherCompilationError ;
2014-03-14 14:13:41 -04:00
}
}
2015-03-27 17:16:51 -04:00
2015-11-18 16:20:49 -05:00
// Don't resolve superclasses for module when loading from makefile.
// Data is only partially loaded at this point.
if ( ! bLoadFromMakefile )
{
2015-07-14 06:27:34 -04:00
# if !PLATFORM_EXCEPTIONS_DISABLED
try
# endif
{
ResolveSuperClasses ( Package ) ;
}
# if !PLATFORM_EXCEPTIONS_DISABLED
catch ( TCHAR * ErrorMsg )
{
TGuardValue < ELogTimes : : Type > DisableLogTimes ( GPrintLogTimes , ELogTimes : : None ) ;
FString FormattedErrorMessage = FString : : Printf ( TEXT ( " Error: %s \r \n " ) , ErrorMsg ) ;
Result = GCompilationResult ;
UE_LOG ( LogCompile , Log , TEXT ( " %s " ) , * FormattedErrorMessage ) ;
GWarn - > Log ( ELogVerbosity : : Error , FormattedErrorMessage ) ;
+ + NumFailures ;
}
# endif
2015-06-02 02:12:11 -04:00
2015-03-27 17:16:51 -04:00
ThisModuleTimer . Stop ( ) ;
UE_LOG ( LogCompile , Log , TEXT ( " Preparsed module %s containing %i files(s) in %.2f secs. " ) , * Module . LongPackageName , NumHeadersPreparsed , ThisModulePreparseTime ) ;
2014-03-14 14:13:41 -04:00
}
2015-11-18 16:20:49 -05:00
}
2014-03-14 14:13:41 -04:00
2015-11-18 16:20:49 -05:00
return Result ;
}
ECompilationResult : : Type UnrealHeaderTool_Main ( const FString & ModuleInfoFilename )
{
check ( GIsUCCMakeStandaloneHeaderGenerator ) ;
ECompilationResult : : Type Result = ECompilationResult : : Succeeded ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3049602)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2946506 on 2016/04/18 by Steven.Hutton
Update to Crash Reporter buggs table to add new search fields and inclusion of packages needed for e-mail reports.
Change 3017807 on 2016/06/17 by Chris.Wood
Improved Crash Report Process folder delete code as it could sometimes fail.
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also added logging to Slack when stop request received instead of just when stop is complete.
Change 3019367 on 2016/06/20 by Chris.Wood
Improve Crash Report Process logging to track bad reads from S3.
Also, better logging when CleanReport fails to delete folders.
Change 3019376 on 2016/06/20 by Steve.Robb
Clarification of assert message and comments which talk about 'null' TFunctions.
Tidy-up of dead code.
Change 3019409 on 2016/06/20 by Steve.Robb
New Find and FindByPredicate algorithms for finding stuff in arbitrary containers.
Change 3022658 on 2016/06/22 by Chris.Wood
Discarding duplicated crash reports earlier in read from Data Router process to avoid clashes in the landing zone (CRP v1.1.11)
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also improved logging to Slack with better layout, fixed event ordering and counting duplicates.
Change 3022840 on 2016/06/22 by Steve.Robb
Skipped UHT attributes removed.
Change 3022907 on 2016/06/22 by Robert.Manuszewski
Fixing crash when adding a new C++ class to project
#jira UE-32333
Change 3023169 on 2016/06/22 by Steve.Robb
Checks for UTHINGs in skipped preprocessor blocks.
Fixes for skipped UTHINGs and some other parsing accidents.
#jira UE-31627
Change 3023239 on 2016/06/22 by Steve.Robb
Fix for JSON date parsing reported here: https://udn.unrealengine.com/questions/299342/fdatetime-json-serialization-bug.html
Change 3026812 on 2016/06/24 by Mieszko.Zielinski
Marked FEnvQueryInstance::AddItemData UEnvQueryItemType_Point specialization as AIMODULE_API #UE4
Change 3028235 on 2016/06/27 by Robert.Manuszewski
PR #2535: BUGFIX: FPS pop-up updates when loading new stat file (Contributed by projectgheist)
Change 3028282 on 2016/06/27 by Steve.Robb
Fix for missing UFUNCTION check in skipped preprocessor blocks.
#jira UE-31627
Change 3028284 on 2016/06/27 by Steve.Robb
Debuggability improvements and coding standards changes.
Change 3028343 on 2016/06/27 by Steve.Robb
Fix for UHT error in WEX.
#jira UE-32464
Change 3028393 on 2016/06/27 by Steve.Robb
Fix for hot reload of enums finding the old enum.
Fix to stop SPropertyEditorNumeric caching the enum flags.
#jira UE-31658
Change 3030362 on 2016/06/28 by Robert.Manuszewski
Fixing hang when cooking.
Change 3030462 on 2016/06/28 by Steve.Robb
Assert added to PackageTools::GetFilteredPackageList() to help with catching a bug reported in the wild.
#jira UE-32001
Change 3034341 on 2016/06/30 by Robert.Manuszewski
Modified crash handling code (on Windows) to handle two threads crashing at the same time properly. Previously the second crash would force the process to exit before generating the crash report.
Added 'debug twothreadsgpf' command to test the functionality.
Change 3034342 on 2016/06/30 by John.Mahoney
Fix for crash when loading an empty cached asset registry.
#jira UE-32232
Change 3035599 on 2016/07/01 by Chris.Wood
Added support for CrashType string to Crash Report Process. CRP v1.1.12
[UE-30592] - Crash Reporter should determine crash type on client and pass string to server
Also fixes problem with reports falling back on the legacy WER metadata when a crash context exists. They now only read the error message from metadata if available and keep crash context data when possible.
Added in missing crash context parameters that have been added to clients but not known by the server.
Change 3035787 on 2016/07/01 by John.Mahoney
Fix for crash when DuplicateRedirects does not contain the DependentObject when saving dependencies. It will still fall through to the assertion below, but it will now fail with a useful error message instead of a generic 'Pair != nullptr' from Map.h.
#jira UE-30189
Change 3036933 on 2016/07/04 by Steve.Robb
Proper forwarding constructor for FAsyncTask.
Change 3036938 on 2016/07/04 by Steve.Robb
Fix for CDO hot reload corrupting memory when replacing references inside structs.
#jira UE-29335
Change 3036960 on 2016/07/04 by Steve.Robb
Fix for FAnsiAllocator::ResizeAllocation when resizing to zero.
Change 3037423 on 2016/07/05 by Steve.Robb
FModuleManager::UnloadOrAbandonModuleWithCallback split into two instead of switching behavior with a bool.
Change 3037464 on 2016/07/05 by Steve.Robb
HotReload.cpp cleanup:
Deep nesting flattened.
Linear array searches replaced with maps.
FHotReloadModule::GetGameModules made into a non-member function and split into two.
Comment and coding standard fixes.
Change 3037741 on 2016/07/05 by John.Mahoney
Fix for COTF not checking the correct timestamps on startup.
#jira UE-31023
Change 3037846 on 2016/07/05 by Steve.Robb
Fix for compile button disappearing on a bad compile.
#jira UE-31575
Change 3037994 on 2016/07/05 by Steve.Robb
Static analysis fixes:
warning C6308: 'realloc' might return null pointer: assigning null pointer to 'Data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
Change 3039186 on 2016/07/06 by Robert.Manuszewski
Enabling crash callstack logging by default.
Change 3039220 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C28159: Consider using 'InitiateSystemShutdownEx' instead of 'ExitWindowsEx'. Reason: Legacy API. Rearchitect to avoid Reboot
warning C6001: Using uninitialized memory 'UserNameLength'
warning C6001: Using uninitialized memory 'DomainNameLength'
Change 3039230 on 2016/07/06 by Steve.Robb
Fix for VC internal compiler errors.
Change 3039237 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'Path': the readable size is '400' bytes, but 'PathCurrentDepth' bytes may be read.
Change 3039287 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6509: Invalid annotation: 'return' cannot be referenced in some contexts
warning C6101: Returning uninitialized memory '*lpdwExitCode'. A successful path through the function does not set the named _Out_ parameter.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToStorage'.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToObject'.
warning C6031: Return value ignored: 'CoCreateInstance'.
Change 3039359 on 2016/07/06 by Graeme.Thornton
Compile error fix for FAsyncTask, courtesy of SteveR
Change 3039534 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6319: Use of the comma-operator in a tested expression causes the left argument to be ignored when it has no side-effects.
Change 3039545 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value.
Change 3039578 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3039623 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'
warning C6308:'realloc' might return null pointer: assigning null pointer to 'X', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
warning C6385: Reading invalid data from 'X': the readable size is 'Y' bytes, but 'Z' bytes may be read.
warning C6386: Buffer overrun while writing to 'X': the writable size is 'Y' bytes, but 'Z' bytes might be written.
warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did.
Change 3039630 on 2016/07/06 by John.Mahoney
Fix for crash when spawning an actor using a template object that has instance components. UActorComponent::PostInitProperties was adding itself to the owner's InstanceComponents array, resulting in a realloc of that array and invalidating the reference that the owner's ObjectInitializer was trying to replace while instantiating that property. The new instance component will be added to the array as part of the owner's initialization anyway, so it is not necessary to do it here.
#jira UE-29123
Change 3039664 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6386: Buffer overrun while writing to 'NewKeys': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
warning C6386: Buffer overrun while writing to 'NewHeapIndexes': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
Change 3039673 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'v'.
Change 3039690 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'.
warning C6246: Local declaration of 'X' hides declaration of the same name in outer scope.
warning C6262: Function uses '121180' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap.
warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3040868 on 2016/07/07 by Graeme.Thornton
Config based class stripping for server builds
Change 3040872 on 2016/07/07 by Graeme.Thornton
Remove "return false" NeedsLoadForServer functions from engine code
Change 3040997 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Landscape'.
warning C6011: Dereferencing NULL pointer 'rhs.Allocation.LayerInfo'.
warning C6011: Dereferencing NULL pointer 'lhs.Allocation.LayerInfo'.
Change 3041004 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent.
Change 3041014 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6287: Redundant code: the left and right sub-expressions are identical.
Change 3041111 on 2016/07/07 by Steve.Robb
Removal of an obsolete error message about INI file case sensitivity.
Change 3041150 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead?
Change 3041274 on 2016/07/07 by Steve.Robb
Static analysis fixes: warning C6001: Using uninitialized memory 'X'.
Change 3041294 on 2016/07/07 by Chris.Wood
Fixed protocol buffer and decompression errors in Crash Report Process (v.1.1.14)
[UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack
Size of buffer received from S3 is incorrect for some records. Fixed read problems by using size header value instead of stream length.
Increased buffer size for decompression as this was sometimes too small.
Modified S3 reading code to look for multiple records in each downloaded file.
Change 3041472 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed.
warning C6201: Index '1' is out of valid index range '0' to '0' for possibly stack allocated buffer 'NewHistory.Nodes'.
Change 3043074 on 2016/07/08 by John.Mahoney
Fix for COTF incorrectly reconstructing the original asset path based on the sandbox path when the game name differs from the game folder name.
Fix for COTF GetFiles not handling absolute GameDir paths properly.
#jira UE-31023
Change 3044461 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6386: Buffer overrun while writing to 'Attributes': the writable size is '16384' bytes, but '-8' bytes might be written.
Change 3044470 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Node.Sequence'.
Change 3044476 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Property'.
Change 3044551 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'KeyAreaNode' did.
Change 3044664 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'ToLandscape->SplineComponent'.
warning C28182: Dereferencing NULL pointer. 'SplinesComponent' contains the same NULL value as 'Landscape->SplineComponent' did.
warning C6011: Dereferencing NULL pointer 'Landscape->SplineComponent'.
warning C6385: Reading invalid data from 'out': the readable size is 'sizeof(kiss_fft_cpx)*Dims[0]*Dims[1]' bytes, but '16' bytes may be read.
Change 3044716 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'this->ScreenSize': the readable size is '32' bytes, but '-4' bytes may be read.
Change 3044717 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Window' contains the same NULL value as 'ElementType * Window=AllWindows.FindByPredicate((*FStaticMeshEditorTest::RunTest::<lambda_46fd0093f3912289e870263afe1fcb2e>(ExpectedTitle)))' did.
This appears to be a false positive.
Change 3044787 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'FbxObject'.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'RigidMeshNode' did.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'Result' did.
Change 3045933 on 2016/07/12 by Steve.Robb
Overloading support for TSharedPtr, TSharedRef and TWeakPtr.
Change 3045960 on 2016/07/12 by Robert.Manuszewski
Fixing a crash in Portal (and any other program that uses UObjects and GCs, with the exception of UHT) caused by classes not having their token stream assembled.
Change 3045963 on 2016/07/12 by Steve.Robb
PLATFORM_COMPILER_HAS_EXPLICIT_OPERATORS, FORCEINLINE_EXPLICIT_OPERATOR_BOOL and SAFE_BOOL_OPERATORS macros removed.
THasOperatorEquals and THasOperatorNotEquals traits moved to their own header.
Change 3045967 on 2016/07/12 by Steve.Robb
Initializer list support for TArray and TSet.
Change 3045968 on 2016/07/12 by Robert.Manuszewski
Fixing an ensure after typing 'stat dumphitches' in console.
Change 3045992 on 2016/07/12 by Robert.Manuszewski
Making sure CoreUObject headers are included for programs that don't include the engine (fixing MinidumpDiagnostics CIS failure)
Change 3047870 on 2016/07/13 by Steven.Hutton
Updated CRW to entity framework with repository models. #rb none
Change 3047871 on 2016/07/13 by Steven.Hutton
Add repository models #rb none
Change 3049468 on 2016/07/14 by Steven.Hutton
Fix broken project files. #rb none
#lockdown Nick.Penwarden
[CL 3050320 by Robert Manuszewski in Main branch]
2016-07-14 14:54:00 -04:00
2015-11-18 16:20:49 -05:00
FString ModuleInfoPath = FPaths : : GetPath ( ModuleInfoFilename ) ;
// Load the manifest file, giving a list of all modules to be processed, pre-sorted by dependency ordering
# if !PLATFORM_EXCEPTIONS_DISABLED
try
# endif
{
GManifest = FManifest : : LoadFromFile ( ModuleInfoFilename ) ;
}
# if !PLATFORM_EXCEPTIONS_DISABLED
catch ( const TCHAR * Ex )
{
UE_LOG ( LogCompile , Error , TEXT ( " Failed to load manifest file '%s': %s " ) , * ModuleInfoFilename , Ex ) ;
return GCompilationResult ;
}
# endif
// Counters.
int32 NumFailures = 0 ;
double TotalModulePreparseTime = 0.0 ;
double TotalParseAndCodegenTime = 0.0 ;
// Check if makefiles should be used. If not, only makefile serialization is skipped.
// as the rest of code doesn't impact performance and we don't want to add ifs around
// every makefile related piece of code.
bool bUseMakefile = FParse : : Param ( FCommandLine : : Get ( ) , TEXT ( " UseMakefiles " ) ) ;
FUHTMakefile UHTMakefile ;
UHTMakefile . SetNameLookupCPP ( & NameLookupCPP ) ;
UHTMakefile . SetManifest ( & GManifest ) ;
// Declaring outside of bUseMakefile scope as the same value is used when saving makefile.
FString MakefilePath ;
if ( bUseMakefile )
{
MakefilePath = FPaths : : Combine ( * ModuleInfoPath , TEXT ( " UHT.makefile " ) ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
// If makefile failed to load, clear it
if ( ! UHTMakefile . LoadFromFile ( * MakefilePath , & GManifest ) )
{
UHTMakefile = FUHTMakefile ( ) ;
}
2015-11-18 16:20:49 -05:00
}
UHTMakefile . StartPreloading ( ) ;
{
FDurationTimer TotalModulePreparseTimer ( TotalModulePreparseTime ) ;
TotalModulePreparseTimer . Start ( ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
Result = PreparseModules ( UHTMakefile , ModuleInfoPath , NumFailures ) ;
2015-11-18 16:20:49 -05:00
TotalModulePreparseTimer . Stop ( ) ;
}
UHTMakefile . StopPreloading ( ) ;
2015-03-27 17:16:51 -04:00
// Do the actual parse of the headers and generate for them
if ( Result = = ECompilationResult : : Succeeded )
2014-03-14 14:13:41 -04:00
{
2015-03-27 17:16:51 -04:00
FScopedDurationTimer ParseAndCodeGenTimer ( TotalParseAndCodegenTime ) ;
2014-03-14 14:13:41 -04:00
// Verify that all script declared superclasses exist.
2014-04-23 20:18:55 -04:00
for ( const UClass * ScriptClass : TObjectRange < UClass > ( ) )
2014-03-14 14:13:41 -04:00
{
const UClass * ScriptSuperClass = ScriptClass - > GetSuperClass ( ) ;
2015-01-20 09:33:54 -05:00
if ( ScriptSuperClass & & ! ScriptSuperClass - > HasAnyClassFlags ( CLASS_Intrinsic ) & & GTypeDefinitionInfoMap . Contains ( ScriptClass ) & & ! GTypeDefinitionInfoMap . Contains ( ScriptSuperClass ) )
2014-03-14 14:13:41 -04:00
{
2014-05-19 03:21:12 -04:00
class FSuperClassContextSupplier : public FContextSupplier
{
public :
2015-01-20 09:33:54 -05:00
FSuperClassContextSupplier ( const UClass * Class )
: DefinitionInfo ( GTypeDefinitionInfoMap [ Class ] )
2014-05-19 03:21:12 -04:00
{ }
2014-06-13 06:14:46 -04:00
virtual FString GetContext ( ) override
2014-05-19 03:21:12 -04:00
{
2015-01-20 09:33:54 -05:00
FString Filename = IFileManager : : Get ( ) . ConvertToAbsolutePathForExternalAppForRead ( * DefinitionInfo - > GetUnrealSourceFile ( ) . GetFilename ( ) ) ;
int32 LineNumber = DefinitionInfo - > GetLineNumber ( ) ;
2014-05-19 03:21:12 -04:00
return FString : : Printf ( TEXT ( " %s(%i) " ) , * Filename , LineNumber ) ;
}
private :
2015-01-20 09:33:54 -05:00
TSharedRef < FUnrealTypeDefinitionInfo > DefinitionInfo ;
2014-05-19 03:21:12 -04:00
} ContextSupplier ( ScriptClass ) ;
auto OldContext = GWarn - > GetContext ( ) ;
TGuardValue < ELogTimes : : Type > DisableLogTimes ( GPrintLogTimes , ELogTimes : : None ) ;
GWarn - > SetContext ( & ContextSupplier ) ;
GWarn - > Log ( ELogVerbosity : : Error , FString : : Printf ( TEXT ( " Error: Superclass %s of class %s not found " ) , * ScriptSuperClass - > GetName ( ) , * ScriptClass - > GetName ( ) ) ) ;
GWarn - > SetContext ( OldContext ) ;
2014-04-23 18:36:17 -04:00
Result = ECompilationResult : : OtherCompilationError ;
2014-03-14 14:13:41 -04:00
+ + NumFailures ;
}
}
2014-04-23 18:36:17 -04:00
if ( Result = = ECompilationResult : : Succeeded )
2014-03-14 14:13:41 -04:00
{
2014-04-29 06:45:18 -04:00
TArray < IScriptGeneratorPluginInterface * > ScriptPlugins ;
2014-04-30 07:58:33 -04:00
// Can only export scripts for game targets
if ( GManifest . IsGameTarget )
{
GetScriptPlugins ( ScriptPlugins ) ;
2014-04-29 09:36:01 -04:00
}
2015-11-18 16:20:49 -05:00
if ( UHTMakefile . ShouldMoveNewObjects ( ) )
{
UHTMakefile . MoveNewObjects ( ) ;
}
for ( const FManifestModule & Module : GManifest . Modules )
2014-04-29 09:36:01 -04:00
{
if ( UPackage * Package = Cast < UPackage > ( StaticFindObjectFast ( UPackage : : StaticClass ( ) , NULL , FName ( * Module . LongPackageName ) , false , false ) ) )
{
2014-06-02 07:02:29 -04:00
// Object which represents all parsed classes
FClasses AllClasses ( Package ) ;
AllClasses . Validate ( ) ;
2015-03-02 06:44:04 -05:00
# if WITH_HOT_RELOAD_CTORS
static struct FUseVTableConstructorsCache
{
FUseVTableConstructorsCache ( )
{
bUseVTableConstructors = false ;
GConfig - > GetBool ( TEXT ( " Core.System " ) , TEXT ( " UseVTableConstructors " ) , bUseVTableConstructors , GEngineIni ) ;
}
bool bUseVTableConstructors ;
} UseVTableConstructorsCache ;
2016-01-27 12:09:53 -05:00
bool bModuleIsGame =
Module . ModuleType = = EBuildModuleType : : GameDeveloper
| | Module . ModuleType = = EBuildModuleType : : GameEditor
| | Module . ModuleType = = EBuildModuleType : : GameRuntime
| | Module . ModuleType = = EBuildModuleType : : GameThirdParty ;
Result = FHeaderParser : : ParseAllHeadersInside ( AllClasses , GWarn , Package , Module , ScriptPlugins , bModuleIsGame | | UseVTableConstructorsCache . bUseVTableConstructors , UHTMakefile ) ;
2015-03-02 06:44:04 -05:00
# else // WITH_HOT_RELOAD_CTORS
2015-11-18 16:20:49 -05:00
Result = FHeaderParser : : ParseAllHeadersInside ( AllClasses , GWarn , Package , Module , ScriptPlugins , UHTMakefile ) ;
2015-03-02 06:44:04 -05:00
# endif // WITH_HOT_RELOAD_CTORS
2014-04-29 09:36:01 -04:00
if ( Result ! = ECompilationResult : : Succeeded )
{
+ + NumFailures ;
break ;
}
}
}
2014-04-29 06:45:18 -04:00
{
2015-03-27 17:16:51 -04:00
FScopedDurationTimer PluginTimeTracker ( GPluginOverheadTime ) ;
2015-11-18 16:20:49 -05:00
for ( IScriptGeneratorPluginInterface * ScriptGenerator : ScriptPlugins )
2015-03-27 17:16:51 -04:00
{
ScriptGenerator - > FinishExport ( ) ;
}
2014-03-14 14:13:41 -04:00
}
}
}
// Avoid TArray slack for meta data.
2014-06-02 07:02:29 -04:00
GScriptHelper . Shrink ( ) ;
2014-03-14 14:13:41 -04:00
2015-07-17 13:48:35 -04:00
UE_LOG ( LogCompile , Log , TEXT ( " Preparsing %i modules took %.2f seconds " ) , GManifest . Modules . Num ( ) , TotalModulePreparseTime ) ;
UE_LOG ( LogCompile , Log , TEXT ( " Parsing took %.2f seconds " ) , TotalParseAndCodegenTime - GHeaderCodeGenTime ) ;
UE_LOG ( LogCompile , Log , TEXT ( " Code generation took %.2f seconds " ) , GHeaderCodeGenTime ) ;
UE_LOG ( LogCompile , Log , TEXT ( " ScriptPlugin overhead was %.2f seconds " ) , GPluginOverheadTime ) ;
UE_LOG ( LogCompile , Log , TEXT ( " Macroize time was %.2f seconds " ) , GMacroizeTime ) ;
2015-03-27 17:16:51 -04:00
if ( bWriteContents )
2014-03-14 14:13:41 -04:00
{
UE_LOG ( LogCompile , Log , TEXT ( " ********************************* Wrote reference generated code to ReferenceGeneratedCode. " ) ) ;
}
2015-03-27 17:16:51 -04:00
else if ( bVerifyContents )
2014-03-14 14:13:41 -04:00
{
UE_LOG ( LogCompile , Log , TEXT ( " ********************************* Wrote generated code to VerifyGeneratedCode and compared to ReferenceGeneratedCode " ) ) ;
for ( FString & Msg : ChangeMessages )
{
UE_LOG ( LogCompile , Error , TEXT ( " %s " ) , * Msg ) ;
}
TArray < FString > RefFileNames ;
IFileManager : : Get ( ) . FindFiles ( RefFileNames , * ( FString ( FPaths : : GameSavedDir ( ) ) / TEXT ( " ReferenceGeneratedCode/*.* " ) ) , true , false ) ;
TArray < FString > VerFileNames ;
IFileManager : : Get ( ) . FindFiles ( VerFileNames , * ( FString ( FPaths : : GameSavedDir ( ) ) / TEXT ( " VerifyGeneratedCode/*.* " ) ) , true , false ) ;
if ( RefFileNames . Num ( ) ! = VerFileNames . Num ( ) )
{
UE_LOG ( LogCompile , Error , TEXT ( " Number of generated files mismatch ref=%d, ver=%d " ) , RefFileNames . Num ( ) , VerFileNames . Num ( ) ) ;
}
}
2015-11-18 16:20:49 -05:00
2014-03-14 14:13:41 -04:00
TheFlagAudit . WriteResults ( ) ;
GIsRequestingExit = true ;
2014-04-23 18:36:17 -04:00
2015-11-18 16:20:49 -05:00
if ( ( Result ! = ECompilationResult : : Succeeded ) | | ( NumFailures > 0 ) )
2014-04-23 18:36:17 -04:00
{
2015-11-18 16:20:49 -05:00
// Makefile might be corrupted, it's safer to delete it now.
IFileManager : : Get ( ) . Delete ( * MakefilePath ) ;
2014-04-23 18:36:17 -04:00
return ECompilationResult : : OtherCompilationError ;
}
2014-03-14 14:13:41 -04:00
2015-11-18 16:20:49 -05:00
if ( bUseMakefile )
{
UHTMakefile . SaveToFile ( * MakefilePath ) ;
}
2014-04-23 18:36:17 -04:00
return Result ;
2014-03-14 14:13:41 -04:00
}
2015-01-20 09:33:54 -05:00
UClass * ProcessParsedClass ( bool bClassIsAnInterface , TArray < FHeaderProvider > & DependentOn , const FString & ClassName , const FString & BaseClassName , UObject * InParent , EObjectFlags Flags )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
FString ClassNameStripped = GetClassNameWithPrefixRemoved ( * ClassName ) ;
2014-03-14 14:13:41 -04:00
2015-01-20 13:06:35 -05:00
// All classes must start with a valid unreal prefix
if ( ! FHeaderParser : : ClassNameHasValidPrefix ( ClassName , ClassNameStripped ) )
{
FError : : Throwf ( TEXT ( " Invalid class name '%s'. The class name must have an appropriate prefix added (A for Actors, U for other classes). " ) , * ClassName ) ;
}
2014-03-14 14:13:41 -04:00
// Ensure the base class has any valid prefix and exists as a valid class. Checking for the 'correct' prefix will occur during compilation
FString BaseClassNameStripped ;
if ( ! BaseClassName . IsEmpty ( ) )
{
2014-04-23 18:42:01 -04:00
BaseClassNameStripped = GetClassNameWithPrefixRemoved ( BaseClassName ) ;
2015-01-20 09:33:54 -05:00
if ( ! FHeaderParser : : ClassNameHasValidPrefix ( BaseClassName , BaseClassNameStripped ) )
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
{
2015-01-20 09:33:54 -05:00
FError : : Throwf ( TEXT ( " No prefix or invalid identifier for base class %s. \n Class names must match Unreal prefix specifications (e.g., \" UObject \" or \" AActor \" ) " ) , * BaseClassName ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
}
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
if ( DependentOn . ContainsByPredicate ( [ & ] ( const FHeaderProvider & Dependency ) { FString DependencyStr = Dependency . GetId ( ) ; return ! DependencyStr . Contains ( TEXT ( " .generated.h " ) ) & & FPaths : : GetBaseFilename ( DependencyStr ) = = ClassNameStripped ; } ) )
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3229011 on 2016/12/09 by Steve.Robb
Licensee version updated in FWorldTileInfo::Read().
https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html
Change 3230493 on 2016/12/12 by Robert.Manuszewski
Adding a check against assembling the reference token stream while streaming without locking GC.
Change 3230515 on 2016/12/12 by Steve.Robb
GetStaticEnum and GetStaticStruct removed.
Various generated code tidy-ups.
Change 3230522 on 2016/12/12 by Steve.Robb
UHT no longer complains about bases with different prefixes.
References to obsolete DependsOn removed.
Change 3230528 on 2016/12/12 by Steve.Robb
ReferenceChainSearch tidyups.
Change 3234235 on 2016/12/14 by Robert.Manuszewski
PR #2695: fix comments (Contributed by wyhily2010)
Change 3234237 on 2016/12/14 by Robert.Manuszewski
PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC Rama (Contributed by EverNewJoy)
Change 3236214 on 2016/12/15 by Robert.Manuszewski
PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)
Change 3236582 on 2016/12/15 by Robert.Manuszewski
Allow commandline use in shipping builds
#jira UE-24613
Change 3236591 on 2016/12/15 by Robert.Manuszewski
Removed unnecessary console variable logspam
#jira UE-24614
Change 3236737 on 2016/12/15 by Steve.Robb
Fixes to non-contiguous enums in OSS.
Change 3239686 on 2016/12/19 by Chris.Wood
Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3
Change 3240687 on 2016/12/20 by Chris.Wood
Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request
Change 3246347 on 2017/01/04 by Steve.Robb
Readability, debuggability and standards improvements.
Change 3249122 on 2017/01/06 by Steve.Robb
Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.
Change 3249580 on 2017/01/06 by Steve.Robb
Fix for TArray::HeapSort when array contains pointers.
See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html
Change 3250593 on 2017/01/09 by Robert.Manuszewski
PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)
Change 3250596 on 2017/01/09 by Robert.Manuszewski
PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)
Change 3250599 on 2017/01/09 by Robert.Manuszewski
PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)
Change 3250863 on 2017/01/09 by Steve.Robb
Build configuration option to force the use of the Debug version of UnrealHeaderTool.
Change 3250994 on 2017/01/09 by Ben.Zeigler
Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them
Change 3251000 on 2017/01/09 by Ben.Zeigler
#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
Some refactors to pass in information needed by the new system that the old system didn't need
Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile
Change 3253580 on 2017/01/11 by Graeme.Thornton
Added some validation of the class index in exportmap entries
#jira UE-37873
Change 3253777 on 2017/01/11 by Graeme.Thornton
Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files
#jira UE-39946
Change 3257750 on 2017/01/13 by Ben.Zeigler
Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
Added backward compatibilty code and fixed some conflicts in the ini.
Change 3261176 on 2017/01/17 by Ben.Zeigler
#jira UE-40746 Fix redundant ini redirect
#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago
Change 3261915 on 2017/01/18 by Steve.Robb
Fixes to localized printf formats.
Change 3262142 on 2017/01/18 by Ben.Zeigler
Remove runtime code for old ActiveClassRedirects and related systems.
It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.
Change 3263596 on 2017/01/19 by Gil.Gribb
UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.
Change 3263597 on 2017/01/19 by Gil.Gribb
UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.
Change 3263922 on 2017/01/19 by Gil.Gribb
UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.
Change 3264131 on 2017/01/19 by Robert.Manuszewski
Simple app to test hard to repro bugs
Change 3264849 on 2017/01/19 by Ben.Zeigler
Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)
Change 3265232 on 2017/01/19 by Ben.Zeigler
#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
Move plugin-specific redirects to new plugin ini files
Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
Move all redirects after 4.11 to new ini format
Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects
Change 3265490 on 2017/01/20 by Steve.Robb
Prevent engine reinstancing on hot reload.
#jira UE-40765
Change 3265593 on 2017/01/20 by Gil.Gribb
UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.
Change 3266003 on 2017/01/20 by Gil.Gribb
UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.
Change 3267433 on 2017/01/22 by Gil.Gribb
UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.
Change 3267677 on 2017/01/23 by Steve.Robb
Fix for whitespace before UCLASS() causing compile errors.
#jira UE-24110
Change 3267685 on 2017/01/23 by Steve.Robb
First pass of fixes to printf-style calls to only use TCHAR[] specifiers.
Change 3267746 on 2017/01/23 by Steven.Hutton
Resolve offline work
Changes to repositories to support better handling of db connections.
Change 3267865 on 2017/01/23 by Steve.Robb
Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().
#fyi nick.darnell
Change 3268075 on 2017/01/23 by Gil.Gribb
UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.
Change 3268447 on 2017/01/23 by Gil.Gribb
Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.
Change 3269491 on 2017/01/24 by Gil.Gribb
UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.
Change 3269492 on 2017/01/24 by Gil.Gribb
UE4 - Suppressed a few EDL cook wanrings.
Change 3270085 on 2017/01/24 by Gil.Gribb
UE4 - Remove pak highwater spam.
Change 3270089 on 2017/01/24 by Gil.Gribb
UE4 - fix random bug with memory counting and some vertex buffer
Change 3271246 on 2017/01/25 by Chris.Wood
Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
[UE-40605] - Machine ID is not being shown on the crashreporter website
Change 3271827 on 2017/01/25 by Steve.Robb
C4946 warning disabled in third party headers (triggers in Clang/LLVM).
Change 3271874 on 2017/01/25 by Steve.Robb
Fix for missing error check after header preparsing.
Change 3271911 on 2017/01/25 by Steve.Robb
ObjectMacros.h now automatically included by generated headers.
#fyi jamie.dale
Change 3273125 on 2017/01/26 by Steve.Robb
Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.
#fyi james.golding
Change 3273209 on 2017/01/26 by Steve.Robb
UnrealCodeAnalyzer compilation fixes.
Change 3274917 on 2017/01/27 by Steve.Robb
GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
Now-unused field removed.
Change 3279091 on 2017/01/31 by Ben.Marsh
UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.
Change 3279195 on 2017/01/31 by Gil.Gribb
Turned EDL on for orion
Change 3279493 on 2017/01/31 by Ben.Zeigler
#jira UE-41341 Redo redirector fixups that got undone in merge from Main
Change 3280284 on 2017/01/31 by Ben.Zeigler
#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.
Change 3280299 on 2017/01/31 by Gil.Gribb
possibly fix edl at boot with orion server....though was no-repro
Change 3280386 on 2017/01/31 by Ben.Zeigler
Header include fixes for -nopch, fixes incremental build
Change 3280557 on 2017/01/31 by Ben.Zeigler
Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases
Change 3280817 on 2017/02/01 by Steve.Robb
Unused SmartCastProperty removed.
Change 3280897 on 2017/02/01 by Chris.Wood
Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes
Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.
Change 3280989 on 2017/02/01 by Gil.Gribb
New unrealpak binaries
Change 3281416 on 2017/02/01 by Michael.Trepka
Updated UnrealPak binaries for Mac
Change 3282457 on 2017/02/01 by Ben.Zeigler
#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
This code is safer in general in my local version so just doing a quick fix for now
Change 3282619 on 2017/02/01 by Arciel.Rekman
Linux: update UnrealPak.
[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
{
FError : : Throwf ( TEXT ( " Class '%s' contains a dependency (#include or base class) to itself " ) , * ClassName ) ;
}
2014-03-14 14:13:41 -04:00
}
//UE_LOG(LogCompile, Log, TEXT("Class: %s extends %s"),*ClassName,*BaseClassName);
// Handle failure and non-class headers.
if ( BaseClassName . IsEmpty ( ) & & ( ClassName ! = TEXT ( " UObject " ) ) )
{
2015-01-20 09:33:54 -05:00
FError : : Throwf ( TEXT ( " Class '%s' must inherit UObject or a UObject-derived class " ) , * ClassName ) ;
2014-03-14 14:13:41 -04:00
}
if ( ClassName = = BaseClassName )
{
2015-01-20 09:33:54 -05:00
FError : : Throwf ( TEXT ( " Class '%s' cannot inherit from itself " ) , * ClassName ) ;
2014-03-14 14:13:41 -04:00
}
// In case the file system and the class disagree on the case of the
// class name replace the fname with the one from the script class file
// This is needed because not all source control systems respect the
// original filename's case
2015-01-20 09:33:54 -05:00
FName ClassNameReplace ( * ClassName , FNAME_Replace_Not_Safe_For_Threading ) ;
2014-03-14 14:13:41 -04:00
// Use stripped class name for processing and replace as we did above
FName ClassNameStrippedReplace ( * ClassNameStripped , FNAME_Replace_Not_Safe_For_Threading ) ;
UClass * ResultClass = FindObject < UClass > ( InParent , * ClassNameStripped ) ;
// if we aren't generating headers, then we shouldn't set misaligned object, since it won't get cleared
const static bool bVerboseOutput = FParse : : Param ( FCommandLine : : Get ( ) , TEXT ( " VERBOSE " ) ) ;
2015-11-18 16:20:49 -05:00
if ( ResultClass = = nullptr | | ! ResultClass - > IsNative ( ) )
2014-03-14 14:13:41 -04:00
{
// detect if the same class name is used in multiple packages
2015-01-20 09:33:54 -05:00
if ( ResultClass = = nullptr )
2014-03-14 14:13:41 -04:00
{
UClass * ConflictingClass = FindObject < UClass > ( ANY_PACKAGE , * ClassNameStripped , true ) ;
2015-01-20 09:33:54 -05:00
if ( ConflictingClass ! = nullptr )
2014-03-14 14:13:41 -04:00
{
2016-01-27 12:09:53 -05:00
UE_LOG_WARNING_UHT ( TEXT ( " Duplicate class name: %s also exists in file %s " ) , * ClassName , * ConflictingClass - > GetOutermost ( ) - > GetName ( ) ) ;
2014-03-14 14:13:41 -04:00
}
}
// Create new class.
2015-01-30 08:30:03 -05:00
ResultClass = new ( EC_InternalUseOnlyConstructor , InParent , * ClassNameStripped , Flags ) UClass ( FObjectInitializer ( ) , nullptr ) ;
2014-03-14 14:13:41 -04:00
GClassHeaderNameWithNoPathMap . Add ( ResultClass , ClassNameStripped ) ;
// add CLASS_Interface flag if the class is an interface
// NOTE: at this pre-parsing/importing stage, we cannot know if our super class is an interface or not,
// we leave the validation to the main header parser
if ( bClassIsAnInterface )
{
ResultClass - > ClassFlags | = CLASS_Interface ;
}
2015-01-20 09:33:54 -05:00
if ( bVerboseOutput )
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
UE_LOG ( LogCompile , Log , TEXT ( " Imported: %s " ) , * ResultClass - > GetFullName ( ) ) ;
}
}
2014-03-14 14:13:41 -04:00
if ( bVerboseOutput )
{
for ( const auto & Dependency : DependentOn )
{
UE_LOG ( LogCompile , Log , TEXT ( " \t Adding %s as a dependency " ) , * Dependency . ToString ( ) ) ;
}
}
return ResultClass ;
}
2015-01-20 09:33:54 -05:00
2016-02-22 11:17:03 -05:00
TSharedRef < FUnrealSourceFile > PerformInitialParseOnHeader ( UPackage * InParent , const TCHAR * FileName , EObjectFlags Flags , const TCHAR * Buffer , FUHTMakefile & UHTMakefile )
2015-01-20 09:33:54 -05:00
{
const TCHAR * InBuffer = Buffer ;
// is the parsed class name an interface?
bool bClassIsAnInterface = false ;
TArray < FHeaderProvider > DependsOn ;
// Parse the header to extract the information needed
2015-03-27 18:10:52 -04:00
FUHTStringBuilder ClassHeaderTextStrippedOfCppText ;
2015-01-20 09:33:54 -05:00
TArray < FSimplifiedParsingClassInfo > ParsedClassArray ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3049602)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2946506 on 2016/04/18 by Steven.Hutton
Update to Crash Reporter buggs table to add new search fields and inclusion of packages needed for e-mail reports.
Change 3017807 on 2016/06/17 by Chris.Wood
Improved Crash Report Process folder delete code as it could sometimes fail.
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also added logging to Slack when stop request received instead of just when stop is complete.
Change 3019367 on 2016/06/20 by Chris.Wood
Improve Crash Report Process logging to track bad reads from S3.
Also, better logging when CleanReport fails to delete folders.
Change 3019376 on 2016/06/20 by Steve.Robb
Clarification of assert message and comments which talk about 'null' TFunctions.
Tidy-up of dead code.
Change 3019409 on 2016/06/20 by Steve.Robb
New Find and FindByPredicate algorithms for finding stuff in arbitrary containers.
Change 3022658 on 2016/06/22 by Chris.Wood
Discarding duplicated crash reports earlier in read from Data Router process to avoid clashes in the landing zone (CRP v1.1.11)
[UE-30349] - Crash Report Process is leaving crashes in the landing zone that build up and block the queue
Also improved logging to Slack with better layout, fixed event ordering and counting duplicates.
Change 3022840 on 2016/06/22 by Steve.Robb
Skipped UHT attributes removed.
Change 3022907 on 2016/06/22 by Robert.Manuszewski
Fixing crash when adding a new C++ class to project
#jira UE-32333
Change 3023169 on 2016/06/22 by Steve.Robb
Checks for UTHINGs in skipped preprocessor blocks.
Fixes for skipped UTHINGs and some other parsing accidents.
#jira UE-31627
Change 3023239 on 2016/06/22 by Steve.Robb
Fix for JSON date parsing reported here: https://udn.unrealengine.com/questions/299342/fdatetime-json-serialization-bug.html
Change 3026812 on 2016/06/24 by Mieszko.Zielinski
Marked FEnvQueryInstance::AddItemData UEnvQueryItemType_Point specialization as AIMODULE_API #UE4
Change 3028235 on 2016/06/27 by Robert.Manuszewski
PR #2535: BUGFIX: FPS pop-up updates when loading new stat file (Contributed by projectgheist)
Change 3028282 on 2016/06/27 by Steve.Robb
Fix for missing UFUNCTION check in skipped preprocessor blocks.
#jira UE-31627
Change 3028284 on 2016/06/27 by Steve.Robb
Debuggability improvements and coding standards changes.
Change 3028343 on 2016/06/27 by Steve.Robb
Fix for UHT error in WEX.
#jira UE-32464
Change 3028393 on 2016/06/27 by Steve.Robb
Fix for hot reload of enums finding the old enum.
Fix to stop SPropertyEditorNumeric caching the enum flags.
#jira UE-31658
Change 3030362 on 2016/06/28 by Robert.Manuszewski
Fixing hang when cooking.
Change 3030462 on 2016/06/28 by Steve.Robb
Assert added to PackageTools::GetFilteredPackageList() to help with catching a bug reported in the wild.
#jira UE-32001
Change 3034341 on 2016/06/30 by Robert.Manuszewski
Modified crash handling code (on Windows) to handle two threads crashing at the same time properly. Previously the second crash would force the process to exit before generating the crash report.
Added 'debug twothreadsgpf' command to test the functionality.
Change 3034342 on 2016/06/30 by John.Mahoney
Fix for crash when loading an empty cached asset registry.
#jira UE-32232
Change 3035599 on 2016/07/01 by Chris.Wood
Added support for CrashType string to Crash Report Process. CRP v1.1.12
[UE-30592] - Crash Reporter should determine crash type on client and pass string to server
Also fixes problem with reports falling back on the legacy WER metadata when a crash context exists. They now only read the error message from metadata if available and keep crash context data when possible.
Added in missing crash context parameters that have been added to clients but not known by the server.
Change 3035787 on 2016/07/01 by John.Mahoney
Fix for crash when DuplicateRedirects does not contain the DependentObject when saving dependencies. It will still fall through to the assertion below, but it will now fail with a useful error message instead of a generic 'Pair != nullptr' from Map.h.
#jira UE-30189
Change 3036933 on 2016/07/04 by Steve.Robb
Proper forwarding constructor for FAsyncTask.
Change 3036938 on 2016/07/04 by Steve.Robb
Fix for CDO hot reload corrupting memory when replacing references inside structs.
#jira UE-29335
Change 3036960 on 2016/07/04 by Steve.Robb
Fix for FAnsiAllocator::ResizeAllocation when resizing to zero.
Change 3037423 on 2016/07/05 by Steve.Robb
FModuleManager::UnloadOrAbandonModuleWithCallback split into two instead of switching behavior with a bool.
Change 3037464 on 2016/07/05 by Steve.Robb
HotReload.cpp cleanup:
Deep nesting flattened.
Linear array searches replaced with maps.
FHotReloadModule::GetGameModules made into a non-member function and split into two.
Comment and coding standard fixes.
Change 3037741 on 2016/07/05 by John.Mahoney
Fix for COTF not checking the correct timestamps on startup.
#jira UE-31023
Change 3037846 on 2016/07/05 by Steve.Robb
Fix for compile button disappearing on a bad compile.
#jira UE-31575
Change 3037994 on 2016/07/05 by Steve.Robb
Static analysis fixes:
warning C6308: 'realloc' might return null pointer: assigning null pointer to 'Data', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
Change 3039186 on 2016/07/06 by Robert.Manuszewski
Enabling crash callstack logging by default.
Change 3039220 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C28159: Consider using 'InitiateSystemShutdownEx' instead of 'ExitWindowsEx'. Reason: Legacy API. Rearchitect to avoid Reboot
warning C6001: Using uninitialized memory 'UserNameLength'
warning C6001: Using uninitialized memory 'DomainNameLength'
Change 3039230 on 2016/07/06 by Steve.Robb
Fix for VC internal compiler errors.
Change 3039237 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'Path': the readable size is '400' bytes, but 'PathCurrentDepth' bytes may be read.
Change 3039287 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6509: Invalid annotation: 'return' cannot be referenced in some contexts
warning C6101: Returning uninitialized memory '*lpdwExitCode'. A successful path through the function does not set the named _Out_ parameter.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToStorage'.
warning C6387: '_Param_(1)' could be '0': this does not adhere to the specification for the function 'IMoniker::BindToObject'.
warning C6031: Return value ignored: 'CoCreateInstance'.
Change 3039359 on 2016/07/06 by Graeme.Thornton
Compile error fix for FAsyncTask, courtesy of SteveR
Change 3039534 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6319: Use of the comma-operator in a tested expression causes the left argument to be ignored when it has no side-effects.
Change 3039545 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6297: Arithmetic overflow: 32-bit value is shifted, then cast to 64-bit value. Results might not be an expected value.
Change 3039578 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3039623 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'
warning C6308:'realloc' might return null pointer: assigning null pointer to 'X', which is passed as an argument to 'realloc', will cause the original memory block to be leaked.
warning C6385: Reading invalid data from 'X': the readable size is 'Y' bytes, but 'Z' bytes may be read.
warning C6386: Buffer overrun while writing to 'X': the writable size is 'Y' bytes, but 'Z' bytes might be written.
warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did.
Change 3039630 on 2016/07/06 by John.Mahoney
Fix for crash when spawning an actor using a template object that has instance components. UActorComponent::PostInitProperties was adding itself to the owner's InstanceComponents array, resulting in a realloc of that array and invalidating the reference that the owner's ObjectInitializer was trying to replace while instantiating that property. The new instance component will be added to the array as part of the owner's initialization anyway, so it is not necessary to do it here.
#jira UE-29123
Change 3039664 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6386: Buffer overrun while writing to 'NewKeys': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
warning C6386: Buffer overrun while writing to 'NewHeapIndexes': the writable size is 'NewIndexSize*4' bytes, but '8' bytes might be written.
Change 3039673 on 2016/07/06 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'v'.
Change 3039690 on 2016/07/06 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'.
warning C6246: Local declaration of 'X' hides declaration of the same name in outer scope.
warning C6262: Function uses '121180' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap.
warning C6263: Using _alloca in a loop: this can quickly overflow stack.
Change 3040868 on 2016/07/07 by Graeme.Thornton
Config based class stripping for server builds
Change 3040872 on 2016/07/07 by Graeme.Thornton
Remove "return false" NeedsLoadForServer functions from engine code
Change 3040997 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Landscape'.
warning C6011: Dereferencing NULL pointer 'rhs.Allocation.LayerInfo'.
warning C6011: Dereferencing NULL pointer 'lhs.Allocation.LayerInfo'.
Change 3041004 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent.
Change 3041014 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6287: Redundant code: the left and right sub-expressions are identical.
Change 3041111 on 2016/07/07 by Steve.Robb
Removal of an obsolete error message about INI file case sensitivity.
Change 3041150 on 2016/07/07 by Steve.Robb
Static analysis fix: warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead?
Change 3041274 on 2016/07/07 by Steve.Robb
Static analysis fixes: warning C6001: Using uninitialized memory 'X'.
Change 3041294 on 2016/07/07 by Chris.Wood
Fixed protocol buffer and decompression errors in Crash Report Process (v.1.1.14)
[UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack
Size of buffer received from S3 is incorrect for some records. Fixed read problems by using size header value instead of stream length.
Increased buffer size for decompression as this was sometimes too small.
Modified S3 reading code to look for multiple records in each downloaded file.
Change 3041472 on 2016/07/07 by Steve.Robb
Static analysis fixes:
warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed.
warning C6201: Index '1' is out of valid index range '0' to '0' for possibly stack allocated buffer 'NewHistory.Nodes'.
Change 3043074 on 2016/07/08 by John.Mahoney
Fix for COTF incorrectly reconstructing the original asset path based on the sandbox path when the game name differs from the game folder name.
Fix for COTF GetFiles not handling absolute GameDir paths properly.
#jira UE-31023
Change 3044461 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6386: Buffer overrun while writing to 'Attributes': the writable size is '16384' bytes, but '-8' bytes might be written.
Change 3044470 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Node.Sequence'.
Change 3044476 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6011: Dereferencing NULL pointer 'Property'.
Change 3044551 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'KeyAreaNode' did.
Change 3044664 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'ToLandscape->SplineComponent'.
warning C28182: Dereferencing NULL pointer. 'SplinesComponent' contains the same NULL value as 'Landscape->SplineComponent' did.
warning C6011: Dereferencing NULL pointer 'Landscape->SplineComponent'.
warning C6385: Reading invalid data from 'out': the readable size is 'sizeof(kiss_fft_cpx)*Dims[0]*Dims[1]' bytes, but '16' bytes may be read.
Change 3044716 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C6385: Reading invalid data from 'this->ScreenSize': the readable size is '32' bytes, but '-4' bytes may be read.
Change 3044717 on 2016/07/11 by Steve.Robb
Static analysis fix: warning C28182: Dereferencing NULL pointer. 'Window' contains the same NULL value as 'ElementType * Window=AllWindows.FindByPredicate((*FStaticMeshEditorTest::RunTest::<lambda_46fd0093f3912289e870263afe1fcb2e>(ExpectedTitle)))' did.
This appears to be a false positive.
Change 3044787 on 2016/07/11 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'FbxObject'.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'RigidMeshNode' did.
warning C28182: Dereferencing NULL pointer. 'Node' contains the same NULL value as 'Result' did.
Change 3045933 on 2016/07/12 by Steve.Robb
Overloading support for TSharedPtr, TSharedRef and TWeakPtr.
Change 3045960 on 2016/07/12 by Robert.Manuszewski
Fixing a crash in Portal (and any other program that uses UObjects and GCs, with the exception of UHT) caused by classes not having their token stream assembled.
Change 3045963 on 2016/07/12 by Steve.Robb
PLATFORM_COMPILER_HAS_EXPLICIT_OPERATORS, FORCEINLINE_EXPLICIT_OPERATOR_BOOL and SAFE_BOOL_OPERATORS macros removed.
THasOperatorEquals and THasOperatorNotEquals traits moved to their own header.
Change 3045967 on 2016/07/12 by Steve.Robb
Initializer list support for TArray and TSet.
Change 3045968 on 2016/07/12 by Robert.Manuszewski
Fixing an ensure after typing 'stat dumphitches' in console.
Change 3045992 on 2016/07/12 by Robert.Manuszewski
Making sure CoreUObject headers are included for programs that don't include the engine (fixing MinidumpDiagnostics CIS failure)
Change 3047870 on 2016/07/13 by Steven.Hutton
Updated CRW to entity framework with repository models. #rb none
Change 3047871 on 2016/07/13 by Steven.Hutton
Add repository models #rb none
Change 3049468 on 2016/07/14 by Steven.Hutton
Fix broken project files. #rb none
#lockdown Nick.Penwarden
[CL 3050320 by Robert Manuszewski in Main branch]
2016-07-14 14:54:00 -04:00
FHeaderParser : : SimplifiedClassParse ( FileName , Buffer , /*out*/ ParsedClassArray , /*out*/ DependsOn , ClassHeaderTextStrippedOfCppText ) ;
2015-01-20 09:33:54 -05:00
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 2996057)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2975196 on 2016/05/12 by Robert.Manuszewski
Garbage Collector will no longer be responsible for generating class token stream, instead the token stream will be generated on startup or when a class has finished loading.
- This way we can avoid very long GC times after new blueprints have been loaded.
- Temporarily enabled CLASS_TokenStreamAssembled check in development builds (for testing purposes)
Change 2993960 on 2016/05/30 by Robert.Manuszewski
Fixing leaked linkers created by blocking load requests during async loading.
Change 2959398 on 2016/04/28 by Steve.Robb
TMap references are strong and cannot be nulled by pending kill. This makes references in values strong too, even though we only really care about keys, which will corrupt the map when nulled.
#jira UE-20828
Change 2960723 on 2016/04/29 by Graeme.Thornton
Fix for texture asset import data being ignored when async loaded
Change 2960938 on 2016/04/29 by Robert.Manuszewski
Nulling out sql db handle after closing it.
Change 2967127 on 2016/05/05 by Steve.Robb
Move constructors explicitly disabled in generated code.
Change 2967143 on 2016/05/05 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 2967164 on 2016/05/05 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer
Change 2968650 on 2016/05/06 by Steve.Robb
Fix for HotReload copying module manager.
Change 2968915 on 2016/05/06 by Robert.Manuszewski
Fixing spelling of SetImageIntegrityStatus function name.
Change 2970406 on 2016/05/09 by Steve.Robb
Static analysis fixes:
Function uses '...' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap.
Change 2970419 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
warning C6011: Dereferencing NULL pointer '...'.
warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read.
warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written.
Change 2970431 on 2016/05/09 by Steve.Robb
Static analysis fixes:
warning C6299: Explicitly comparing a bit field to a Boolean type will yield unexpected results.
Change 2972032 on 2016/05/10 by Steven.Hutton
Workflow fixes to bugg / crashgroup filtering. Filters should now correctly persist across queries.
Change 2972085 on 2016/05/10 by Steve.Robb
Const-correctness fix for FLogCategoryBase::IsSuppressed.
Change 2972087 on 2016/05/10 by Steve.Robb
ELogVerbosity moved into its own header.
Change 2972090 on 2016/05/10 by Steve.Robb
Redundant ensure removed.
Change 2972103 on 2016/05/10 by Steve.Robb
Removal of redundant use of USING_CODE_ANALYSIS.
Change 2972139 on 2016/05/10 by Steve.Robb
Fix for ensure macros throwing C6326 warnings during static analysis.
Change 2972147 on 2016/05/10 by Steve.Robb
Fix for UE_LOG_ACTIVE macro throwing C6326 warnings during static analysis.
Change 2972162 on 2016/05/10 by Steve.Robb
SCOPE_CYCLE_COUNTER_GUARD removed.
Change 2972168 on 2016/05/10 by Steve.Robb
Compile error fix for logOrEnsureNanError in static analysis builds.
Change 2973084 on 2016/05/10 by Chris.Wood
Crash Report Server performance tweak
Change 2974030 on 2016/05/11 by Steve.Robb
Fix for IPropertyHandle::SetValue - used to take a non-const reference to a const UObject*, now it takes const references to both non-const and const UObject*.
Change 2974053 on 2016/05/11 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 2974191 on 2016/05/11 by Steve.Robb
Fix for template instantiation error in VS2013.
Change 2975298 on 2016/05/12 by Steve.Robb
Static analysis fixes:
warning C6236: (<expression> || <non-zero constant>) is always a non-zero constant.
Change 2975318 on 2016/05/12 by Steve.Robb
Fix for hot reload info being reported as warnings.
#jira UE-30586
Change 2975447 on 2016/05/12 by Steve.Robb
Static analysis fixes:
warning C6235: (<non-zero constant> || <expression>) is always a non-zero constant.
warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>. Did you intend to use the bitwise-and operator?
warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>. Did you intend to use the bitwise-and operator?
warning C6285: (<non-zero constant> || <non-zero constant>) is always a non-zero constant. Did you intend to use the bitwise-and operator?
warning C6286: (<non-zero constant> || <expression>) is always a non-zero constant. <expression> is never evaluated and might have side effects.
warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead?
warning C6316: Incorrect operator: tested expression is constant and non-zero. Use bitwise-and to determine whether bits are set.
Change 2975478 on 2016/05/12 by Steve.Robb
Static analysis fixes for lots of redundant <zero constant> and <non-zero constant> warnings.
Change 2975538 on 2016/05/12 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'StaticResource'
Change 2976640 on 2016/05/13 by Robert.Manuszewski
Fixing crashes caused by token stream generation changes. Making sure the token stream gets re-generated when a class gets re-linked.
#jira UE-30675
Change 2978320 on 2016/05/16 by Steve.Robb
Fix for static analysis warnings in XNA headers.
Change 2978329 on 2016/05/16 by Steve.Robb
Static analysis fixes:
warning C6334: sizeof operator applied to an expression with an operator might yield unexpected results: Parentheses can be used to disambiguate certain usages.
Change 2980222 on 2016/05/17 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'.
warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did.
Change 2980458 on 2016/05/17 by Chris.Wood
Attempt to fix crash report submission problems from CRP to CR website
[UE-30257] - Crashreports are sometimes missing file attachments
Passing crash GUID so that website can easily check for duplicates in future
Increased request timeout for AddCrash to be longer than website database timeout
Logging retries for future visibility
CRP v.1.1.6
Change 2980639 on 2016/05/17 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'X'.
warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did.
Change 2981750 on 2016/05/18 by Steve.Robb
check()s in ContainerAllocationPolicies.h changed to checkSlow()s, as they only exist to check that the container has been written correctly.
Change 2982106 on 2016/05/18 by John.Mahoney
Fixed a crash caused by loading two stat capture files simultaneously in the profiler.
If the user tries to load a capture file while another load is in progress, the previous load is now cancelled and cleaned up before proceeding with the new load.
Made the delegates in FNewStatsReader explicitly specify which profiler instance they are loading data for, instead of relying on the current value of LoadConnection->InstanceId.
This also fixes a crash that occurs when selecting a different capture file in the "Stats dump browser" pane of the profiler (after using Load Folder) while another file is still loading.
Cleaned up some weak pointer usage in the profiler window.
#jira UE-30741
Change 2983366 on 2016/05/19 by Steven.Hutton
Changes for passing crash type directly from CRP to CRW.
Change 2983394 on 2016/05/19 by Steven.Hutton
Minor changes to add crash with more error reporting
Change 2984685 on 2016/05/20 by Robert.Manuszewski
Merging //UE4/Dev-Main @ 2984626 to Dev-Core (//UE4/Dev-Core)
Change 2985143 on 2016/05/20 by Steve.Robb
Missing semi-colons.
Change 2986463 on 2016/05/23 by Steve.Robb
CopyTemp added to make it clear that you want to make a copy (rather than a move, or an accidental copy) at the call site of a function taking rvalue refs.
Change 2986475 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6313: Incorrect operator: zero-valued flag cannot be tested with bitwise-and.
Change 2986476 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6313: Incorrect operator: zero-valued flag cannot be tested with bitwise-and.
Change 2986480 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant
Change 2986515 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6340: Mismatch on sign: 'X' passed as _Param_(N) when some unsigned type is required in call to 'Func'
Change 2986680 on 2016/05/23 by Steve.Robb
Static analysis fixes:
warning C6386: Buffer overrun while writing to 'Ptr': the writable size is 'X' bytes, but 'Y' bytes might be written.
warning C6387: 'Ptr' could be '0': this does not adhere to the specification for the function 'Func'
warning C6031: Return value ignored: 'snprintf'.
warning C6340: Mismatch on sign: 'const unsigned int' passed as _Param_(4) when some signed type is required in call to 'snprintf'.
Change 2986865 on 2016/05/23 by Robert.Manuszewski
Removing redundand AddReferencedObjects functions
Change 2987968 on 2016/05/24 by Robert.Manuszewski
Removing redundant UPROPERTY macros from intrinsic classes.
Change 2987979 on 2016/05/24 by Steve.Robb
Optimization of some FString and FPaths operations to produce fewer temporaries.
Change 2988297 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6287: Redundant code: the left and right sub-expressions are identical.
Change 2988430 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6385: Reading invalid data from 'var': the readable size is 'X' bytes, but 'Y' bytes may be read.
Change 2988461 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6235: (<non-zero constant> || <expression>) is always a non-zero constant.
warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>.
warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>.
Change 2988464 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6262: Function uses 'X' bytes of stack: exceeds /analyze:stacksize 'Y'. Consider moving some data to heap.
Change 2988494 on 2016/05/24 by Steve.Robb
Static analysis fixes:
warning C6237: (<zero> && <expression>) is always zero. <expression> is never evaluated and might have side effects.
Change 2989411 on 2016/05/25 by Robert.Manuszewski
Splitting GC cluster index and intenral object flags to allow more UObjects in editor builds.
Change 2989429 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6387: '_Param_(X)' could be '0': this does not adhere to the specification for the function 'Func'.
Change 2989982 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6001: Using uninitialized memory 'LODPlanesMin'.
Change 2990018 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6386: Buffer overrun while writing to 'X'
Change 2990077 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>.
warning C6011: Dereferencing NULL pointer 'Ptr'.
Change 2990114 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent.
Change 2990125 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>.
Change 2990162 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed.
Change 2990193 on 2016/05/25 by Steve.Robb
Static analysis fixes:
warning C28182: Dereferencing NULL pointer. 'type' contains the same NULL value as 'type->base_type' did.
warning C6011: Dereferencing NULL pointer 'Semantic'.
Change 2991006 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C28113: Accessing a local variable dummy via an Interlocked function: This is an unusual usage which could be reconsidered.
Change 2991012 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6031: Return value ignored: 'InitializeCriticalSectionAndSpinCount'.
Change 2991013 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6287: Redundant code: the left and right sub-expressions are identical.
Change 2991016 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6236: (<expression> || <non-zero constant>) is always a non-zero constant.
Change 2991017 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6326: Potential comparison of a constant with another constant.
Change 2991019 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6292: Ill-defined for-loop: counts up from maximum.
Change 2991023 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6322: Empty _except block.
warning C28251: Inconsistent annotation for 'WinMain': this instance has no annotations.
Change 2991070 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C28182: Dereferencing NULL pointer. 'Ptr1' contains the same NULL value as 'Ptr2' did.
Change 2991416 on 2016/05/26 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Ptr'.
Change 2992738 on 2016/05/27 by Steve.Robb
Revert changes to FString::MatchesWildcard.
Change 2992916 on 2016/05/27 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Ptr'.
Change 2992960 on 2016/05/27 by Chris.Wood
Optimized P4 access in Crash Report Process and MinidumpDiagostics.
Change 2992964 on 2016/05/27 by Steve.Robb
Static analysis fixes:
warning C6011: Dereferencing NULL pointer 'Ptr'.
Change 2993956 on 2016/05/30 by Robert.Manuszewski
Fixing a crash after adding a new C++ class in the editor - made sure new classes have the token stream assembled after hot-reload.
#jira UE-31309
Change 2993977 on 2016/05/30 by Robert.Manuszewski
Don't wait for all packages to finish loading before PostLoading those which already have.
Change 2994206 on 2016/05/31 by Robert.Manuszewski
PR #2429: Three bug fixes required for script support to work properly (Contributed by pluranium)
#lockdown Nick.Penwarden
[CL 2996251 by Robert Manuszewski in Main branch]
2016-06-01 12:08:56 -04:00
FUnrealSourceFile * UnrealSourceFilePtr = new FUnrealSourceFile ( InParent , FileName , MoveTemp ( ClassHeaderTextStrippedOfCppText ) ) ;
2015-11-18 16:20:49 -05:00
TSharedRef < FUnrealSourceFile > UnrealSourceFile = MakeShareable ( UnrealSourceFilePtr ) ;
UHTMakefile . AddUnrealSourceFile ( UnrealSourceFilePtr ) ;
UHTMakefile . AddToHeaderOrder ( UnrealSourceFilePtr ) ;
2015-01-20 09:33:54 -05:00
for ( auto & ParsedClassInfo : ParsedClassArray )
{
UClass * ResultClass = ProcessParsedClass ( ParsedClassInfo . IsInterface ( ) , DependsOn , ParsedClassInfo . GetClassName ( ) , ParsedClassInfo . GetBaseClassName ( ) , InParent , Flags ) ;
2015-11-18 16:20:49 -05:00
FScope : : AddTypeScope ( ResultClass , & UnrealSourceFile - > GetScope ( ) . Get ( ) , UnrealSourceFilePtr , UHTMakefile ) ;
2015-01-20 09:33:54 -05:00
2015-11-18 16:20:49 -05:00
AddTypeDefinition ( UHTMakefile , UnrealSourceFilePtr , ResultClass , ParsedClassInfo . GetClassDefLine ( ) ) ;
2015-06-02 02:12:11 -04:00
UnrealSourceFile - > AddDefinedClass ( ResultClass , MoveTemp ( ParsedClassInfo ) ) ;
2015-01-20 09:33:54 -05:00
}
2015-11-18 16:20:49 -05:00
for ( auto & DependsOnElement : DependsOn )
2015-01-20 09:33:54 -05:00
{
UnrealSourceFile - > GetIncludes ( ) . Add ( DependsOnElement ) ;
}
return UnrealSourceFile ;
}