Files
UnrealEngineUWP/Engine/Source/Programs/UnrealHeaderTool/Private/HeaderParser.h

809 lines
27 KiB
C
Raw Normal View History

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
#pragma once
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 "ParserHelper.h"
#include "BaseParser.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/CompilationResult.h"
#include "Scope.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
class UClass;
enum class EGeneratedCodeVersion : uint8;
class FFeedbackContext;
class UPackage;
struct FManifestModule;
class IScriptGeneratorPluginInterface;
class FStringOutputDevice;
class UProperty;
class FUnrealSourceFile;
class UFunction;
class UEnum;
class UScriptStruct;
class UDelegateFunction;
class UStruct;
class FClass;
class FClasses;
class FScope;
class FHeaderProvider;
extern double GPluginOverheadTime;
extern double GHeaderCodeGenTime;
/*-----------------------------------------------------------------------------
Constants & types.
-----------------------------------------------------------------------------*/
enum {MAX_NEST_LEVELS = 16};
/* Code nesting types. */
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
enum class ENestType
{
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
GlobalScope,
Class,
FunctionDeclaration,
Interface,
NativeInterface
};
/** Types of statements to allow within a particular nesting block. */
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
enum class ENestAllowFlags
{
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
None = 0,
Function = 1, // Allow Event declarations at this level.
VarDecl = 2, // Allow variable declarations at this level.
Class = 4, // Allow class definition heading.
Return = 8, // Allow 'return' within a function.
TypeDecl = 16, // Allow declarations which do not affect memory layout, such as structs, enums, and consts, but not implicit delegates
ImplicitDelegateDecl = 32, // Allow implicit delegates (i.e. those not decorated with UDELEGATE) to be declared
};
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
ENUM_CLASS_FLAGS(ENestAllowFlags)
namespace EDelegateSpecifierAction
{
enum Type
{
DontParse,
Parse
};
}
/** The category of variable declaration being parsed */
namespace EVariableCategory
{
enum Type
{
RegularParameter,
ReplicatedParameter,
Return,
Member
};
}
/** Information for a particular nesting level. */
class FNestInfo
{
/** Link to the stack node. */
FScope* Scope;
public:
/**
* Gets nesting scope.
*/
FScope* GetScope() const
{
return Scope;
}
/**
* Sets nesting scope.
*/
void SetScope(FScope* InScope)
{
this->Scope = InScope;
}
/** Statement that caused the nesting. */
ENestType NestType;
/** Types of statements to allow at this nesting level. */
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
ENestAllowFlags Allow;
};
struct FIndexRange
{
int32 StartIndex;
int32 Count;
};
struct ClassDefinitionRange
{
ClassDefinitionRange(const TCHAR* InStart, const TCHAR* InEnd)
: Start(InStart)
, End(InEnd)
, bHasGeneratedBody(false)
{ }
ClassDefinitionRange()
: Start(nullptr)
, End(nullptr)
, bHasGeneratedBody(false)
{ }
void Validate()
{
if (End <= Start)
{
FError::Throwf(TEXT("The class definition range is invalid. Most probably caused by previous parsing error."));
}
}
const TCHAR* Start;
const TCHAR* End;
bool bHasGeneratedBody;
};
extern TMap<UClass*, ClassDefinitionRange> ClassDefinitionRanges;
struct FDocumentationPolicy
{
bool bClassOrStructCommentRequired = false;
bool bFunctionToolTipsRequired = false;
bool bMemberToolTipsRequired = false;
bool bParameterToolTipsRequired = false;
bool bFloatRangesRequired = false;
};
/////////////////////////////////////////////////////
// FHeaderParser
//
// Header parser class. Extracts metadata from annotated C++ headers and gathers enough
// information to autogenerate additional headers and other boilerplate code.
//
class FHeaderParser : public FBaseParser, public FContextSupplier
{
public:
// Default version of generated code. Defaults to oldest possible, unless specified otherwise in config.
static EGeneratedCodeVersion DefaultGeneratedCodeVersion;
// Compute the function parameter size and save the return offset
static void ComputeFunctionParametersSize(UClass* InClass);
// Parse all headers for classes that are inside LimitOuter.
static ECompilationResult::Type ParseAllHeadersInside(
FClasses& ModuleClasses,
FFeedbackContext* Warn,
UPackage* LimitOuter,
const FManifestModule& Module,
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3494741 by Steve.Robb Generated code size savings. #jira UE-43048 Change 3495484 by Steve.Robb Fix for generated indices of static arrays when saving configs. Change 3497926 by Robert.Manuszewski Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything. Change 3498077 by Robert.Manuszewski Only use the recursion guard in async loading code when the event driven loader is enabled. Change 3498112 by Ben.Marsh UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own. Change 3500239 by Robert.Manuszewski Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes. Change 3500395 by Steve.Robb Extra codegen savings when not in hot reload. Change 3501004 by Steve.Robb EObjectFlags now have constexpr operators. Change 3502079 by Ben.Marsh UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary. Change 3502527 by Steve.Robb Fix for zero-sized array compile error in generated code when all functions are editor-only. Change 3502542 by Ben.Marsh UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead. Change 3502868 by Steve.Robb Workaround for inefficient generated code with stateless lambdas on Clang. Change 3503550 by Steve.Robb Another generated code lambda optimization. Change 3503582 by Ben.Marsh BuildGraph: Add support for nullable parameter types. Change 3504424 by Steve.Robb New AllOf, AnyOf and NoneOf algorithms. Change 3504712 by Ben.Marsh UAT: Less spammy log and error output from UAT. * Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception). * Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information. * AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log) * Name of the calling function is not included in console output by default, but still included in the log. Change 3504808 by Ben.Marsh UAT: Suppress P4 output when running a recursive instance of UAT. Change 3505044 by Steve.Robb Code generation improved for TCppClassType code. Change 3505485 by Ben.Marsh Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module. Change 3505699 by Ben.Marsh Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins. Change 3506055 by Ben.Marsh UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output. Change 3507745 by Robert.Manuszewski Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses). Change 3507911 by Ben.Marsh Plugins: Minor changes to plugin descriptors. * Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors. * Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from. Change 3508669 by Ben.Marsh EC: Parse multi-line messages from UBT and UAT. Change 3508691 by Ben.Marsh Fix double-spacing of cook stats. Change 3509245 by Steve.Robb UHT makefiles removed. Flag audit removed. Change 3509275 by Steve.Robb Fix for mismatched stat categories in AudioMixer. #jira UE-46129 Change 3509289 by Robert.Manuszewski Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably. Change 3509294 by Robert.Manuszewski UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it. Change 3509312 by Steve.Robb GitHub# 3679: Add TArray constructor that takes a raw pointer and a count Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too. #jira UE-46136 Change 3509396 by Steve.Robb GitHub# 3676: Fix TUnion operator<< compile error #jira UE-46099 Change 3509633 by Steve.Robb Fix for line numbers on multiline macros. Change 3509938 by Gil.Gribb UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading. Change 3510593 by Daniel.Lamb Fixed up unsoilicited files getting populated with files which aren't finished being created yet. #test None Change 3510594 by Daniel.Lamb Fixed up temp files directory for patching. Thanks David Yerkess @ Milestone #review@Ben.Marsh Change 3511628 by Ben.Marsh PR #3707: Fixed UBT stack size (Contributed by gildor2) Change 3511808 by Ben.Marsh Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git) #jira UE-46540 Change 3512017 by Ben.Marsh Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface. Change 3513935 by Steve.Robb Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477. Change 3514142 by Steve.Robb MemoryProfiler2 added to generated solution. Change 3516463 by Ben.Marsh Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user. Change 3517860 by Ben.Marsh PR #3727: FString Dereference Fixes (Contributed by jovisgCL) Change 3517967 by Ben.Marsh Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line. Change 3518070 by Steve.Robb Disable Binned2 stats in shipping non-editor builds. Change 3520079 by Steve.Robb Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions. #jira UE-24034 Change 3520080 by Robert.Manuszewski Made max package summary size to be configurable with ini setting Change 3520083 by Steve.Robb Force a GC after hot reload to clean up reinstanced objects which may still tick. #jira UE-40421 Change 3520480 by Robert.Manuszewski Improved assert message when the initial package read request was too small. Change 3520590 by Graeme.Thornton SignedArchiveReader optimizations - Loads more stats - Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader - Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time - Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries Change 3521023 by Graeme.Thornton Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing Change 3521787 by Ben.Marsh PR #3736: Small static code analysis fixes (Contributed by jovisgCL) Change 3521789 by Ben.Marsh PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar) Change 3524721 by Ben.Marsh Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core. Change 3524741 by Ben.Marsh Move PumpMessages() into FPlatformApplicationMisc. Change 3525399 by Ben.Marsh UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment. Change 3525743 by Ben.Marsh UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds. Change 3525746 by Ben.Marsh EC: Include the clobber option on new workspaces, to allow overriding version files when syncing. Change 3526453 by Ben.Marsh UGS: Do not generate project files when syncing precompiled binaries. Change 3527045 by Ben.Marsh Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting. Change 3527420 by Ben.Marsh UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing). Config files are now read from: Engine/Programs/UnrealGameSync/UnrealGameSync.ini Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini If a project is selected: <ProjectDir>/Build/UnrealGameSync.ini <ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini If the .uprojectdirs file is selected: Engine/Programs/UnrealGameSync/DefaultProject.ini Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini Change 3528063 by Ben.Marsh Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse. Change 3528415 by Ben.Marsh UAT: Remove \r characters from the end of multiline log messages. Change 3528427 by Ben.Marsh EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent. Change 3528485 by Ben.Marsh EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places. Change 3528505 by Steve.Robb PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL) #jira UE-46819 Change 3528772 by Robert.Manuszewski Enabling actor and blueprint clustering in ShooterGame Change 3528786 by Robert.Manuszewski PR #3760: Fix typo (Contributed by jesseyeh) Change 3528792 by Steve.Robb PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL) #jira UE-46962 Change 3528941 by Robert.Manuszewski Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object. #jira UE-44996 Change 3530241 by Ben.Marsh UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value. Change 3531377 by Ben.Marsh Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it. This has several advantages over the per-module platform whitelist/blacklist: * Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore. * References to dependent plugins from platform-specific plugins can now be eliminated. * Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly). * The editor can load any plugins without having to whitelist supported editor host platforms. UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime. Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary. Change 3531502 by Jin.Zhang Add support for GPUCrash #rb Change 3531664 by Ben.Marsh UBT: Change output format from C# JSON writer to match output by the engine. Change 3531848 by Ben.Marsh UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable. Change 3531869 by Ben.Marsh UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field. Change 3532474 by Ben.Marsh UBT: Use the same mechanism as UAT for logging exceptions. Change 3532734 by Graeme.Thornton Initial VSCode Support - Tasks generated for building all game/engine/program targets - Debugging support for targets on Win64 Change 3532789 by Steve.Robb FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap. Set_Add and Map_Add no longer have a return value. FScriptSet::Find and FScriptMap::Find functions are now FindIndex. FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash. Change 3532845 by Steve.Robb Obsolete UHT settings deleted. Change 3532875 by Graeme.Thornton VSCode - Add debug targets for different target configurations - Choose between VS debugger (windows) and GDB (mac/linux) Change 3532906 by Graeme.Thornton VSCode - Point all builds directly at UBT rather than the batch files - Adjust mac build tasks to run through mono Change 3532924 by Ben.Marsh UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root. Change 3535234 by Graeme.Thornton VSCode - Pass intellisense system a list of paths to use for header resolution Change 3535247 by Graeme.Thornton UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation Change 3535376 by Graeme.Thornton VSCode - Added build jobs for C# projects - Linked launch tasks to relevant build task Change 3537083 by Ben.Marsh EC: Change P4 swarm links to start at the changelist for a build. Change 3537368 by Graeme.Thornton Fix for crash in FSignedArchiveReader when multithreading is disabled Change 3537550 by Graeme.Thornton Fixed a crash in the taskgraph when running single threaded Change 3537922 by Steve.Robb Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT. Change 3539691 by Graeme.Thornton VSCode - Various updates to get PC and Mac C++ projects building and debugging. - Some other changes to C# setup to allow compilation. Debugging doesn't work. Change 3539775 by Ben.Marsh Plugins: Various fixes to settings for enabling plugins. * Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled). * Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed. * Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them. Change 3540788 by Ben.Marsh UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile). Example usage: public class UnrealPakTarget : TargetRules { public UnrealPakTarget(TargetInfo Target) : base(Target) { Type = TargetType.Program; LinkType = TargetLinkType.Monolithic; LaunchModuleName = "UnrealPak"; if(HostPlatform == UnrealTargetPlatform.Win64) { PreBuildSteps.Add("echo Before building:"); PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); PostBuildSteps.Add("echo After building!"); PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); } } } Change 3541664 by Graeme.Thornton VSCode - Add problemMatcher tag to cpp build targets Change 3541732 by Graeme.Thornton VSCode - Change UBT command line switch to "-vscode" for simplicity Change 3541967 by Graeme.Thornton VSCode - Fixes for Mac/Linux build steps Change 3541968 by Ben.Marsh CRP: Pass through the EnabledPlugins element in crash context XML files. #jira UE-46912 Change 3542519 by Ben.Marsh UBT: Add chain of references to error messages when configuring plugins. Change 3542523 by Ben.Marsh UBT: Add more useful error message when attempt to parse a JSON object fails. Change 3542658 by Ben.Marsh UBT: Include a chain of references when reporting errors instantiating modules. Change 3543432 by Ben.Marsh Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set. Change 3543436 by Ben.Marsh UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails. Change 3543536 by Ben.Marsh UBT: Downgrade message about redundant plugin references to a warning. Change 3543871 by Gil.Gribb UE4 - Fixed a critical crash bug with non-EDL loading from pak files. Change 3543924 by Robert.Manuszewski Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes. +Small optimization to token stream generation code. Change 3544469 by Jin.Zhang Crashes page displays the list of plugins from the crash context #rb Change 3544608 by Steve.Robb Fix for nativized generated code. #jira UE-47452 Change 3544612 by Ben.Marsh Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages(). #jira UE-47449 Change 3545954 by Gil.Gribb Fixed a critical crash bug relating to a race condition in async package summary reading. Change 3545968 by Ben.Marsh UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same. #jira UE-47419 Change 3545976 by Ben.Marsh EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch. Change 3546185 by Ben.Marsh Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped. Change 3547084 by Gil.Gribb Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms. Change 3547968 by Gil.Gribb Fixed critical race which potentially could cause a crash in the pak precacher. Change 3504722 by Ben.Marsh BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run. For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as: ERROR: Unable to write to foo.txt while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" /> at Engine\Build\InstalledEngineBuild.xml(91) (see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace) Change 3512255 by Ben.Marsh Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated. Change 3512332 by Ben.Marsh Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4. Change 3512393 by Ben.Marsh Rename FPaths::GameLogDir() to FPaths::ProjectLogDir(). Change 3513452 by Ben.Marsh Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project. Change 3516262 by Ben.Marsh Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor. * Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod. * The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders). Change 3517565 by Ben.Marsh Remove fixed engine version numbers from OSS plugins. Change 3518005 by Ben.Marsh UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false. Change 3518054 by Ben.Marsh UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard. Change 3524496 by Ben.Marsh Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core. Change 3524641 by Ben.Marsh Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc. Change 3528723 by Steve.Robb MoveTemp now static asserts if passed a const reference or rvalue. MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious. Fixes to violations of these new rules. Change 3528876 by Ben.Marsh Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste. Change 3529073 by Ben.Marsh Add script to package ShooterGame for any platforms. Change 3531493 by Ben.Marsh Update platform-specific plugins to declare the target platforms they support. Change 3531611 by Ben.Marsh UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates. Change 3531868 by Ben.Marsh Resaving project descriptors to remove invalid fields. Change 3531983 by Ben.Marsh UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders. * Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer. * Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type) * Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo")) * An error is output if any restricted folder names other than the output platform are in the staged output. Change 3540315 by Ben.Marsh UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers. Change 3542410 by Ben.Marsh UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already. Change 3543018 by Ben.Marsh UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions. Change 3544371 by Steve.Robb Fixes to TSet_Add and TMap_Add BPs. #jira UE-47441 [CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
TArray<class IScriptGeneratorPluginInterface*>& ScriptPlugins
);
// Performs a preliminary parse of the text in the specified buffer, pulling out:
// Class name and parent class name
// Is it an interface
// The list of other classes/interfaces it is dependent on
//
// It also splits the buffer up into:
// ScriptText (text outside of #if CPP and #if DEFAULTS blocks)
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
static void SimplifiedClassParse(const TCHAR* Filename, const TCHAR* Buffer, TArray<FSimplifiedParsingClassInfo>& OutParsedClassArray, TArray<FHeaderProvider>& DependentOn, FStringOutputDevice& ScriptText);
/**
* Returns True if the given class name includes a valid Unreal prefix and matches up with the given original class Name.
*
* @param InNameToCheck - Name w/ potential prefix to check
* @param OriginalClassName - Name of class w/ no prefix to check against
*/
static bool ClassNameHasValidPrefix(const FString InNameToCheck, const FString OriginalClassName);
/**
* Tries to convert the header file name to a class name (with 'U' prefix)
*
* @param HeaderFilename Filename.
* @param OutClass The resulting class name (if successfull)
* @return true if the filename was a header filename (.h), false otherwise (in which case OutClassName is unmodified).
*/
static bool DependentClassNameFromHeader(const TCHAR* HeaderFilename, FString& OutClassName);
/**
* Transforms CPP-formated string containing default value, to inner formated string
* If it cannot be transformed empty string is returned.
*
* @param Property The property that owns the default value.
* @param CppForm A CPP-formated string.
* @param out InnerForm Inner formated string
* @return true on success, false otherwise.
*/
static bool DefaultValueStringCppFormatToInnerFormat(const UProperty* Property, const FString& CppForm, FString &InnerForm);
/**
* Parse Class's annotated headers and optionally its child classes. Marks the class as CLASS_Parsed.
*
* @param AllClasses the class tree containing all classes in the current package
* @param HeaderParser the header parser
* @param SourceFile Source file info.
*
* @return Result enumeration.
*/
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3494741 by Steve.Robb Generated code size savings. #jira UE-43048 Change 3495484 by Steve.Robb Fix for generated indices of static arrays when saving configs. Change 3497926 by Robert.Manuszewski Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything. Change 3498077 by Robert.Manuszewski Only use the recursion guard in async loading code when the event driven loader is enabled. Change 3498112 by Ben.Marsh UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own. Change 3500239 by Robert.Manuszewski Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes. Change 3500395 by Steve.Robb Extra codegen savings when not in hot reload. Change 3501004 by Steve.Robb EObjectFlags now have constexpr operators. Change 3502079 by Ben.Marsh UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary. Change 3502527 by Steve.Robb Fix for zero-sized array compile error in generated code when all functions are editor-only. Change 3502542 by Ben.Marsh UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead. Change 3502868 by Steve.Robb Workaround for inefficient generated code with stateless lambdas on Clang. Change 3503550 by Steve.Robb Another generated code lambda optimization. Change 3503582 by Ben.Marsh BuildGraph: Add support for nullable parameter types. Change 3504424 by Steve.Robb New AllOf, AnyOf and NoneOf algorithms. Change 3504712 by Ben.Marsh UAT: Less spammy log and error output from UAT. * Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception). * Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information. * AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log) * Name of the calling function is not included in console output by default, but still included in the log. Change 3504808 by Ben.Marsh UAT: Suppress P4 output when running a recursive instance of UAT. Change 3505044 by Steve.Robb Code generation improved for TCppClassType code. Change 3505485 by Ben.Marsh Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module. Change 3505699 by Ben.Marsh Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins. Change 3506055 by Ben.Marsh UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output. Change 3507745 by Robert.Manuszewski Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses). Change 3507911 by Ben.Marsh Plugins: Minor changes to plugin descriptors. * Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors. * Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from. Change 3508669 by Ben.Marsh EC: Parse multi-line messages from UBT and UAT. Change 3508691 by Ben.Marsh Fix double-spacing of cook stats. Change 3509245 by Steve.Robb UHT makefiles removed. Flag audit removed. Change 3509275 by Steve.Robb Fix for mismatched stat categories in AudioMixer. #jira UE-46129 Change 3509289 by Robert.Manuszewski Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably. Change 3509294 by Robert.Manuszewski UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it. Change 3509312 by Steve.Robb GitHub# 3679: Add TArray constructor that takes a raw pointer and a count Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too. #jira UE-46136 Change 3509396 by Steve.Robb GitHub# 3676: Fix TUnion operator<< compile error #jira UE-46099 Change 3509633 by Steve.Robb Fix for line numbers on multiline macros. Change 3509938 by Gil.Gribb UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading. Change 3510593 by Daniel.Lamb Fixed up unsoilicited files getting populated with files which aren't finished being created yet. #test None Change 3510594 by Daniel.Lamb Fixed up temp files directory for patching. Thanks David Yerkess @ Milestone #review@Ben.Marsh Change 3511628 by Ben.Marsh PR #3707: Fixed UBT stack size (Contributed by gildor2) Change 3511808 by Ben.Marsh Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git) #jira UE-46540 Change 3512017 by Ben.Marsh Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface. Change 3513935 by Steve.Robb Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477. Change 3514142 by Steve.Robb MemoryProfiler2 added to generated solution. Change 3516463 by Ben.Marsh Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user. Change 3517860 by Ben.Marsh PR #3727: FString Dereference Fixes (Contributed by jovisgCL) Change 3517967 by Ben.Marsh Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line. Change 3518070 by Steve.Robb Disable Binned2 stats in shipping non-editor builds. Change 3520079 by Steve.Robb Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions. #jira UE-24034 Change 3520080 by Robert.Manuszewski Made max package summary size to be configurable with ini setting Change 3520083 by Steve.Robb Force a GC after hot reload to clean up reinstanced objects which may still tick. #jira UE-40421 Change 3520480 by Robert.Manuszewski Improved assert message when the initial package read request was too small. Change 3520590 by Graeme.Thornton SignedArchiveReader optimizations - Loads more stats - Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader - Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time - Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries Change 3521023 by Graeme.Thornton Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing Change 3521787 by Ben.Marsh PR #3736: Small static code analysis fixes (Contributed by jovisgCL) Change 3521789 by Ben.Marsh PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar) Change 3524721 by Ben.Marsh Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core. Change 3524741 by Ben.Marsh Move PumpMessages() into FPlatformApplicationMisc. Change 3525399 by Ben.Marsh UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment. Change 3525743 by Ben.Marsh UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds. Change 3525746 by Ben.Marsh EC: Include the clobber option on new workspaces, to allow overriding version files when syncing. Change 3526453 by Ben.Marsh UGS: Do not generate project files when syncing precompiled binaries. Change 3527045 by Ben.Marsh Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting. Change 3527420 by Ben.Marsh UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing). Config files are now read from: Engine/Programs/UnrealGameSync/UnrealGameSync.ini Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini If a project is selected: <ProjectDir>/Build/UnrealGameSync.ini <ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini If the .uprojectdirs file is selected: Engine/Programs/UnrealGameSync/DefaultProject.ini Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini Change 3528063 by Ben.Marsh Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse. Change 3528415 by Ben.Marsh UAT: Remove \r characters from the end of multiline log messages. Change 3528427 by Ben.Marsh EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent. Change 3528485 by Ben.Marsh EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places. Change 3528505 by Steve.Robb PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL) #jira UE-46819 Change 3528772 by Robert.Manuszewski Enabling actor and blueprint clustering in ShooterGame Change 3528786 by Robert.Manuszewski PR #3760: Fix typo (Contributed by jesseyeh) Change 3528792 by Steve.Robb PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL) #jira UE-46962 Change 3528941 by Robert.Manuszewski Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object. #jira UE-44996 Change 3530241 by Ben.Marsh UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value. Change 3531377 by Ben.Marsh Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it. This has several advantages over the per-module platform whitelist/blacklist: * Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore. * References to dependent plugins from platform-specific plugins can now be eliminated. * Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly). * The editor can load any plugins without having to whitelist supported editor host platforms. UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime. Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary. Change 3531502 by Jin.Zhang Add support for GPUCrash #rb Change 3531664 by Ben.Marsh UBT: Change output format from C# JSON writer to match output by the engine. Change 3531848 by Ben.Marsh UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable. Change 3531869 by Ben.Marsh UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field. Change 3532474 by Ben.Marsh UBT: Use the same mechanism as UAT for logging exceptions. Change 3532734 by Graeme.Thornton Initial VSCode Support - Tasks generated for building all game/engine/program targets - Debugging support for targets on Win64 Change 3532789 by Steve.Robb FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap. Set_Add and Map_Add no longer have a return value. FScriptSet::Find and FScriptMap::Find functions are now FindIndex. FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash. Change 3532845 by Steve.Robb Obsolete UHT settings deleted. Change 3532875 by Graeme.Thornton VSCode - Add debug targets for different target configurations - Choose between VS debugger (windows) and GDB (mac/linux) Change 3532906 by Graeme.Thornton VSCode - Point all builds directly at UBT rather than the batch files - Adjust mac build tasks to run through mono Change 3532924 by Ben.Marsh UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root. Change 3535234 by Graeme.Thornton VSCode - Pass intellisense system a list of paths to use for header resolution Change 3535247 by Graeme.Thornton UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation Change 3535376 by Graeme.Thornton VSCode - Added build jobs for C# projects - Linked launch tasks to relevant build task Change 3537083 by Ben.Marsh EC: Change P4 swarm links to start at the changelist for a build. Change 3537368 by Graeme.Thornton Fix for crash in FSignedArchiveReader when multithreading is disabled Change 3537550 by Graeme.Thornton Fixed a crash in the taskgraph when running single threaded Change 3537922 by Steve.Robb Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT. Change 3539691 by Graeme.Thornton VSCode - Various updates to get PC and Mac C++ projects building and debugging. - Some other changes to C# setup to allow compilation. Debugging doesn't work. Change 3539775 by Ben.Marsh Plugins: Various fixes to settings for enabling plugins. * Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled). * Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed. * Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them. Change 3540788 by Ben.Marsh UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile). Example usage: public class UnrealPakTarget : TargetRules { public UnrealPakTarget(TargetInfo Target) : base(Target) { Type = TargetType.Program; LinkType = TargetLinkType.Monolithic; LaunchModuleName = "UnrealPak"; if(HostPlatform == UnrealTargetPlatform.Win64) { PreBuildSteps.Add("echo Before building:"); PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); PostBuildSteps.Add("echo After building!"); PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); } } } Change 3541664 by Graeme.Thornton VSCode - Add problemMatcher tag to cpp build targets Change 3541732 by Graeme.Thornton VSCode - Change UBT command line switch to "-vscode" for simplicity Change 3541967 by Graeme.Thornton VSCode - Fixes for Mac/Linux build steps Change 3541968 by Ben.Marsh CRP: Pass through the EnabledPlugins element in crash context XML files. #jira UE-46912 Change 3542519 by Ben.Marsh UBT: Add chain of references to error messages when configuring plugins. Change 3542523 by Ben.Marsh UBT: Add more useful error message when attempt to parse a JSON object fails. Change 3542658 by Ben.Marsh UBT: Include a chain of references when reporting errors instantiating modules. Change 3543432 by Ben.Marsh Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set. Change 3543436 by Ben.Marsh UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails. Change 3543536 by Ben.Marsh UBT: Downgrade message about redundant plugin references to a warning. Change 3543871 by Gil.Gribb UE4 - Fixed a critical crash bug with non-EDL loading from pak files. Change 3543924 by Robert.Manuszewski Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes. +Small optimization to token stream generation code. Change 3544469 by Jin.Zhang Crashes page displays the list of plugins from the crash context #rb Change 3544608 by Steve.Robb Fix for nativized generated code. #jira UE-47452 Change 3544612 by Ben.Marsh Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages(). #jira UE-47449 Change 3545954 by Gil.Gribb Fixed a critical crash bug relating to a race condition in async package summary reading. Change 3545968 by Ben.Marsh UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same. #jira UE-47419 Change 3545976 by Ben.Marsh EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch. Change 3546185 by Ben.Marsh Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped. Change 3547084 by Gil.Gribb Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms. Change 3547968 by Gil.Gribb Fixed critical race which potentially could cause a crash in the pak precacher. Change 3504722 by Ben.Marsh BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run. For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as: ERROR: Unable to write to foo.txt while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" /> at Engine\Build\InstalledEngineBuild.xml(91) (see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace) Change 3512255 by Ben.Marsh Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated. Change 3512332 by Ben.Marsh Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4. Change 3512393 by Ben.Marsh Rename FPaths::GameLogDir() to FPaths::ProjectLogDir(). Change 3513452 by Ben.Marsh Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project. Change 3516262 by Ben.Marsh Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor. * Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod. * The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders). Change 3517565 by Ben.Marsh Remove fixed engine version numbers from OSS plugins. Change 3518005 by Ben.Marsh UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false. Change 3518054 by Ben.Marsh UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard. Change 3524496 by Ben.Marsh Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core. Change 3524641 by Ben.Marsh Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc. Change 3528723 by Steve.Robb MoveTemp now static asserts if passed a const reference or rvalue. MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious. Fixes to violations of these new rules. Change 3528876 by Ben.Marsh Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste. Change 3529073 by Ben.Marsh Add script to package ShooterGame for any platforms. Change 3531493 by Ben.Marsh Update platform-specific plugins to declare the target platforms they support. Change 3531611 by Ben.Marsh UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates. Change 3531868 by Ben.Marsh Resaving project descriptors to remove invalid fields. Change 3531983 by Ben.Marsh UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders. * Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer. * Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type) * Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo")) * An error is output if any restricted folder names other than the output platform are in the staged output. Change 3540315 by Ben.Marsh UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers. Change 3542410 by Ben.Marsh UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already. Change 3543018 by Ben.Marsh UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions. Change 3544371 by Steve.Robb Fixes to TSet_Add and TMap_Add BPs. #jira UE-47441 [CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
static ECompilationResult::Type ParseHeaders(FClasses& AllClasses, FHeaderParser& HeaderParser, FUnrealSourceFile* SourceFile);
protected:
friend struct FScriptLocation;
// For compiling messages and errors.
FFeedbackContext* Warn;
// Filename currently being parsed
FString Filename;
// Was the first include in the file a validly formed auto-generated header include?
bool bSpottedAutogeneratedHeaderInclude;
// Current nest level, starts at 0.
int32 NestLevel;
// Top nesting level.
FNestInfo* TopNest;
/**
* Gets current nesting scope.
*/
FScope* GetCurrentScope() const
{
return TopNest->GetScope();
}
/**
* Gets current file scope.
*/
FFileScope* GetCurrentFileScope() const
{
int32 Index = 0;
Copying //UE4/Dev-Blueprints to //UE4/Dev-Main (Source: //UE4/Dev-Blueprints @ 3042808) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3026763 on 2016/06/24 by Phillip.Kavan [UE-32259] Fix missing heat map coloration on pure nodes. change summary: - modified FScriptExecutionNode::RefreshStats() to ensure that child nodes are updated for 'standard' exec node types. #jira UE-32259 Change 3026829 on 2016/06/24 by Mike.Beach Mirroring CL 3025832 from Release-4.12 Guarding GetClassDefault nodes against asserts while loading cyclically dependent content. Regenerating one Blueprint could trigger a ReconstructNode() in a separate Blueprint (that had already been regenerated). However, not all objects in that Blueprint's package have been post-loaded, so object Rename() will assert is you try to reset loaders with it. #jira UE-32356 Change 3026888 on 2016/06/24 by Mike.Beach PR #2460: Functionality to flag blueprint as abstract (Contributed by Pierdek) Change 3027245 on 2016/06/24 by Phillip.Kavan [UEBP-180] Alternate treatment for Blueprint profiler tree view node expander icon (to differentiate from exec pin icons). change summary: - added SProfilerStatExpander (from BenC) - modified original to replace indicator icons w/ FontAwesome glyphs (they're a bit clearer) - see screenshot attached to JIRA #jira UEBP-180 Change 3027279 on 2016/06/24 by Ryan.Rauschkolb Fixed issue where unsupported pins could be added to custom Event nodes which can lead to a crash #jira UE-31148 Change 3027606 on 2016/06/25 by Dan.Oconnor Back out changelist 3027279, this change breaks custom events coupled to multicast delegate nodes (see ProjRocket.uasset in shooter game for an example) Change 3028731 on 2016/06/27 by Ben.Cosh Minor change to the spacing around the new expander icons for the blueprint profiler. #Jira UEBP-180 - Pin icons are too similar to the tree expander icons in the node execution graph display. #Proj Kismet Change 3028740 on 2016/06/27 by Ben.Cosh This change modifies the way the blueprint profiler detects and maps delegate events that are created at blueprint compile time. #Jira UE-32055 - Assert when profiling timelines in the blueprint profiler #Proj BlueprintProfiler, KismetCompiler, BlueprintGraph, LiveEditor, Kismet, Engine Change 3028844 on 2016/06/27 by Maciej.Mroz #jira UE-32470 Nativized Orion: Sparrow has no Rentless ability. Better way to find Placeholder classes in BlueprintNativeCodeGenModule. Change 3029573 on 2016/06/27 by Ryan.Rauschkolb Fixed issue where Preview Connection would be drawn incorrectly when an input and output pin share the same name #jira UE-32211 Change 3030335 on 2016/06/28 by Maciej.Mroz #jira UE-30858 Nativized Orion - Some particle effects are not rendering List of AssetRegistrySearchable properties, that should be stored for DynamicClasses in moved to .ini file. Added SearchDynamicClassCues function in GameplayCueManager.cpp Change 3030492 on 2016/06/28 by Ben.Cosh CIS Mac Build fix Change 3030494 on 2016/06/28 by Ben.Cosh This change reworks the way the blueprint profiler maps latent re-entry points to address problems that could be triggered when multiple re-entries happenned within close proximity. #Jira UE-32452 - Blueprint profiler asserts when a second latent entry is triggered #Proj BlueprintProfiler, CoreUObject, Engine, Kismet Change 3030612 on 2016/06/28 by Maciej.Mroz typo fixed Change 3031461 on 2016/06/28 by Dan.Oconnor Fixed for crash involving a stale UEdGraphPin after performing an undo/redo operation inolving UEdGraphNode(s) #jira UE-32553 Change 3031537 on 2016/06/28 by Ben.Cosh Fix for a problem introduced in CL 3030494 and recent graph pin changes that caused problems uniquely naming tunnel entry/exit pins. #Jira UE-32578 - Crash when profiling blueprint containing a for-loop #Proj BlueprintProfiler Change 3031556 on 2016/06/28 by Ben.Cosh This fixes a problem with the profiler tracking of PIE actor instances adding a mechanism to refresh the actor references when a subsequent PIE session is started. #Jira UE-32595 - Running two subsequent PIE sessions with a latent entry point causes an assert. #Proj BlueprintProfiler, Kismet Change 3031588 on 2016/06/28 by Ryan.Rauschkolb Fixed issue where unsupported pins could be added to custom Event nodes which can lead to a crash #jira UE-31148 Change 3031887 on 2016/06/28 by Dan.Oconnor Fix for crash caused by stale pin access in SGraphPin, also fixes 'double opacity' effect when ctrl+dragging off of a macro #jira UE-32604 Change 3031932 on 2016/06/28 by Dan.Oconnor Fix for major regression in pin value visibility #jira UE-32614 Change 3032568 on 2016/06/29 by Phillip.Kavan [UE-31681] Ensure that cached component data cache template objects are referenced during garbage collection. change summary: - modified AActor::AddReferencedObjects() to include CurrentTransactionAnnotation - added UChildActorComponent::AddReferencedObjects() to include CachedInstanceData - also added FChildActorComponentInstanceData::AddReferencedObjects() to include ComponentInstanceData (just in case some future task happens to trigger a reference gather during its lifetime) additional notes: - should also resolve UE-32558 #jira UE-31681 Change 3032998 on 2016/06/29 by Dan.Oconnor Fixing shutdown crash after LinkedTo lists are corrupted. An ensure couldn't fire when a node had already been destroyed. UE-32631 tracks the actual ensure. #jira UE-32634 Change 3033448 on 2016/06/29 by Ryan.Rauschkolb Discard Return Nodes that have no outputs when collapsing to function #jira UE-23381 Change 3034407 on 2016/06/30 by Phillip.Kavan [UE-32675] Fix no-editor compile issue. Change 3034691 on 2016/06/30 by Ryan.Rauschkolb Fixed issue where Macro nodes with ambiguous links could be collapsed into a function Change 3034701 on 2016/06/30 by Ryan.Rauschkolb Cleaned up UEdGraphSchema_K2::GetVariableTypeTree to use a filter rather than several booleans Change 3035093 on 2016/06/30 by Maciej.Mroz #jira UE-32683 BP_Hero Blueprint failing to compile in Orion - K2Node_CustomEvent_1050 is out of date Temporary fix. Change 3035440 on 2016/07/01 by Maciej.Mroz #jira UE-32706 Nativized Orion crash - Cannot find "Root" subobject in ABP_HeroPedestal_C... Make sure, the CDO of DynamicClass (and its subobjects) have AsyncLoading flag cleared. Change 3035442 on 2016/07/01 by Maciej.Mroz Added UDynamicClass::FindArchetype #jira UE-30667 Ground material in Agora incorrect in Nativized Orion Change 3036233 on 2016/07/01 by Dan.Oconnor Proper handling of null pin references in compiler results logs Change 3036541 on 2016/07/01 by Dan.Oconnor Fix for more assymetry in LinkedTo after undo/redo. This solution addresses both UE-32645 and UE-32553. The key to correct behavior is to explictly detect the case where only one of the two nodes in a peer (LinkedTo) relationship are in the transaction buffer. Added IsObjectTransacting to transaction interface to detect this. #jira UE-32645 Change 3036581 on 2016/07/02 by Dan.Oconnor Non-editor fix Change 3036632 on 2016/07/02 by Maciej.Mroz Removed too strict check in BlueprintNativeCodeGenModule Change 3036715 on 2016/07/02 by Maciej.Mroz #jira UE-32612 Odin emits a error when nativized - attempting to access a hidden boolean bitfield property - Private bitfield can be used as LHS expression in generated code. - Refactoring. Introduced ENativizedTermUsage. Change 3037014 on 2016/07/04 by Maciej.Mroz #jira UE-32729 Orion failing to package for PS4 with Nativization Make sure that temporary variable used in ternary operator: "context ? context->variable : temp-variable", has exactly the same type as the wanted variable. Change 3037300 on 2016/07/05 by Maciej.Mroz #jira UE-31756 Fixup hardcoded function names in BP=>Cpp backend Change 3037303 on 2016/07/05 by Maciej.Mroz #jira UE-31756 Nativization - fixed hardcoded string. Change 3037307 on 2016/07/05 by Maciej.Mroz AutomationTool: Fixed issue: A nativized client was compiled with both client and server NativizedAssets plugins. Paths to nativized BP plugin is stored in a map. Change 3037712 on 2016/07/05 by Mike.Beach Adding a non-const version of MultiFindPointer() for TMultiMap. Change 3037790 on 2016/07/05 by Mike.Beach Fixing a bug where overridden components in Blueprints could load with cleared properties - this could happen in cyclically dependent parent/child Blueprints (where the child's component would be zeroed). In this case, the Blueprint's CDO would be deferred, so to solve this new issue we now defer the Blueprint's sub-object overrides as well. #jira UE-32693 Change 3038014 on 2016/07/05 by Ben.Cosh Refactor of the blueprint profiler tunnel mapping and playback to address issues blocking MVP #Jira UE-32056 - The blueprint profiler can still get hung up with cyclic links in the graph #Proj Kismet, BlueprintProfiler, KismetCompiler, BlueprintGraph, UnrealEd Change 3038533 on 2016/07/05 by Mike.Beach PR #2558: Stopping Zoom-to-Fit On User Input (Fixed) (Contributed by MichaelSchoell) Change 3038608 on 2016/07/05 by Dan.Oconnor Fix for crash when altering ConstructObjectFromClass nodes, removed now unused InvalidateAndTrash function from UEdGraphPin, removed subpin leak counter #jira FORT-26495 Change 3038770 on 2016/07/05 by Dan.Oconnor Hiding TThreadSingleton<FBlueprintExceptionTracker>::Get() to fix clang for windows link error #jira UE-31935 Change 3038841 on 2016/07/05 by Dan.Oconnor Simple null check to prevent crash after loading a blueprint to diff. The diff'd blueprint is ending up in other blueprint's DependentBlueprintsToRecompile, for now this is the safest fix #jira UE-31115 Change 3039179 on 2016/07/06 by Maciej.Mroz #jira UE-31987 Editor crashes when transforming actor after applying instances changes Selected (in Level editor) instance components are still selected after they are converted to regular components. Change 3039216 on 2016/07/06 by Maciej.Mroz #jira UE-31767 [CrashReport] UE4Editor_Engine!AActor::GetLevel() [actor.cpp:1663] FIxed unsafe code. Change 3040046 on 2016/07/06 by Ben.Cosh This fixes a problem found where tunnel instances inside tunnel graphs fail to map correctly in the blueprint profiler #Jira UE-32862 - Tunnel instances inside tunnels do not map correctly in the blueprint profiler #Proj BlueprintProfiler Change 3040061 on 2016/07/06 by Ben.Cosh fix for bad unshelve before submit in CL 3040046 - Phillip already reviewed this version of the file and not what was actually submitted. Change 3040346 on 2016/07/06 by Maciej.Mroz #jira UE-32840 //UE4/Dev-Blueprints: UE4_StaticAnalysis completed with Warnings - 2 Warnings Fix(?) for warning C28182 Change 3040349 on 2016/07/06 by Dan.Oconnor Updating test data Change 3040473 on 2016/07/06 by Dan.Oconnor Fix SMyBlueprint in blueprint diff tool so that kismet inspector is updated with the object selected in SMyBlueprint, needed to investigate UE-18200 Change 3040536 on 2016/07/06 by Dan.Oconnor Call to APITestFunction Change 3040565 on 2016/07/06 by Dan.Oconnor Clone saved GeneratedClass when not doing COL. Groundwork to fix for UE-17268. Change 3040603 on 2016/07/06 by Dan.Oconnor PR #2539: Option to disable Grid in the blueprint and material editor and change grid colors (Contributed by CelPlays) #jira UE-32497 Change 3040798 on 2016/07/07 by Maciej.Mroz Fixed warning C6011: Dereferencing NULL pointer 'Object'. Added some comments. #jira UE-32840 Change 3041185 on 2016/07/07 by Ben.Cosh This fixes problems with the blueprint profiler with name collisions for nodes in different graphs and improves nested tunnel detection. #Jira UE-32862 - Tunnel instances inside tunnels do not map correctly in the blueprint profiler #Jira UE-32889 - Name collisions can now occur in the blueprint profiler for stat nodes. #Proj BlueprintProfiler, Kismet Notes: This attempts to continue to address fall out from CL 3040046 to improve stability. Previously execution nodes were patched into the function contexts that called a tunnel instance. However this proved problematic after spotting a rare case where node names collide between between event and tunnel graphs and caused havok in the node mapping. This change moves to an approach that patches in tunnel contexts and any dependent contexts and instead attempts to locate critical path nodes using a new node search system making use of these child function contexts. CL 3040046 also modified TunnelContext's to be actually more representative of a tunnel instance context, I have updated naming conventions to reflect this for clarity. The changes here also add a single function context for tunnel graphs which contain the bulk of the nodes in the graph and the tunnel instance contexts reference this and make use of it to create non boundary / tunnel instance nodes so they are located in a single place for all instances of that tunnel graph. Change 3041603 on 2016/07/07 by Dan.Oconnor Fix for check failure: PreviousCDO != nullptr, when loading blueprints that have circularly dependent interfaces #jira UE-31639 Change 3042058 on 2016/07/07 by Dan.Oconnor Ensures that the correct ComponentClass is assigned to our template node. This pins are normally allocated lazilly in BlueprintActionFilterImpl::HasMatchingPin, so not a huge change #jira UE-32769 Change 3042468 on 2016/07/08 by Maciej.Mroz #jira UE-32882, UE-32887 Fixed Crash in UHT. Fixed "Ambiguous search" error, when delegate has owner class declared. Change 3042739 on 2016/07/08 by Maciej.Mroz Nativization. Included headers for native subobjects. Change 3042747 on 2016/07/08 by Maciej.Mroz Minor changes in Orion code, necessary to compile the project with nativized Blueprints Change 3042758 on 2016/07/08 by Maciej.Mroz "OrionGame.h" is included in NativizedAssets module. [CL 3043181 by Mike Beach in Main branch]
2016-07-08 14:59:19 -04:00
if (!TopNest)
{
check(!NestLevel);
return nullptr;
}
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
while (TopNest[Index].NestType != ENestType::GlobalScope)
{
--Index;
}
return (FFileScope*)TopNest[Index].GetScope();
}
/**
* Gets current source file.
*/
FUnrealSourceFile* GetCurrentSourceFile() const
{
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 GC and WeakObjectPtr performance optimizations. - Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray - Moved WeakObjectPtr serial numbersto FUObjectArray - Added pre-allocated UObject array Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved. Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920 UHT will now use makefiles to speed up iterative runs. Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963 Hot-reload performance optimizations: 1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier). 2. Parallelized search for old CDOs referencers. Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster Dependency preloading improvements - Asset registry dependencies now resolve asset redirectors - Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1 Allow UnfocusedVolumeMultiplier to be set programmatically Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1 When cooking, don't add imports that are outers of objects excluded from the current cook target. Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core Inline storage for TFunction. Fix for delegate inline storage on Win64. Some build fixes. Visualizer fixes for new TFunction format. Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReporter Web - Search by Platform Added initial support for streams (GetBranchesAsListItems, CopyToJira) Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString. Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core Some TSet function optimisations: Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent). Taking local copies of HashSize during iterations. Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core BulkData zero byte allocations are now handled by an RAII object which owns the memory. Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core FName::operator== and != optimised to be a single comparison. Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro) Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360) Also fixed starting condition. Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1 PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus) Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core PR #1540 - Specifying a different Saved folder at launch through a command line parameter Integrated and optimized. #lockdown Nick.Penwarden [CL 2772222 by Robert Manuszewski in Main branch]
2015-11-18 16:20:49 -05:00
return CurrentSourceFile;
}
void SetCurrentSourceFile(FUnrealSourceFile* UnrealSourceFile)
{
CurrentSourceFile = UnrealSourceFile;
}
/**
* Gets current class scope.
*/
FStructScope* GetCurrentClassScope() const
{
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
check(TopNest->NestType == ENestType::Class || TopNest->NestType == ENestType::Interface || TopNest->NestType == ENestType::NativeInterface);
return (FStructScope*)TopNest->GetScope();
}
/**
* Tells if parser is currently in a class.
*/
bool IsInAClass() const
{
int32 Index = 0;
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
while (TopNest[Index].NestType != ENestType::GlobalScope)
{
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
if (TopNest[Index].NestType == ENestType::Class || TopNest->NestType == ENestType::Interface || TopNest->NestType == ENestType::NativeInterface)
{
return true;
}
--Index;
}
return false;
}
/**
* Gets current class.
*/
UClass* GetCurrentClass() const
{
return (UClass*)GetCurrentClassScope()->GetStruct();
}
/**
* Gets current class's metadata.
*/
FClassMetaData* GetCurrentClassData()
{
return GScriptHelper.FindClassData(GetCurrentClass());
}
// Information about all nesting levels.
FNestInfo Nest[MAX_NEST_LEVELS];
// enum for complier directives used to build up the directive stack
struct ECompilerDirective
{
enum Type
{
// this directive is insignificant and does not change the code generation at all
Insignificant = 0,
// this indicates we are in a WITH_EDITOR #if-Block
WithEditor = 1<<0,
// this indicates we are in a WITH_EDITORONLY_DATA #if-Block
WithEditorOnlyData = 1<<1,
};
};
/**
* Compiler directive nest in which the parser currently is
* NOTE: compiler directives are combined when more are added onto the stack, so
* checking the only the top of stack is enough to determine in which #if-Block(s) the current code
* is.
*
* ex. Stack.Num() == 1 while entering #if WITH_EDITOR:
* CompilerDirectiveStack[1] == CompilerDirectiveStack[0] | ECompilerDirective::WithEditor ==
* CompilerDirecitveStack[1] == CompilerDirectiveStack.Num()-1 | ECompilerDirective::WithEditor
*
* ex. Stack.Num() == 2 while entering #if WITH_EDITOR:
* CompilerDirectiveStack[3] == CompilerDirectiveStack[0] | CompilerDirectiveStack[1] | CompilerDirectiveStack[2] | ECompilerDirective::WithEditor ==
* CompilerDirecitveStack[3] == CompilerDirectiveStack.Num()-1 | ECompilerDirective::WithEditor
*/
TArray<uint32> CompilerDirectiveStack;
// Pushes the Directive specified to the CompilerDirectiveStack according to the rules described above
void FORCEINLINE PushCompilerDirective(ECompilerDirective::Type Directive)
{
CompilerDirectiveStack.Push(CompilerDirectiveStack.Num()>0 ? (CompilerDirectiveStack[CompilerDirectiveStack.Num()-1] | Directive) : Directive);
}
/**
* The starting class flags (i.e. the class flags that were set before the
* CLASS_RecompilerClear mask was applied) for the class currently being compiled
*/
uint32 PreviousClassFlags;
// For new-style classes, used to keep track of an unmatched {} pair
bool bEncounteredNewStyleClass_UnmatchedBrackets;
// Indicates that UCLASS/USTRUCT/UINTERFACE has already been parsed in this .h file..
bool bHaveSeenUClass;
// Indicates that a GENERATED_UCLASS_BODY or GENERATED_BODY has been found in the UClass.
bool bClassHasGeneratedBody;
// Indicates that a GENERATED_UINTERFACE_BODY has been found in the UClass.
bool bClassHasGeneratedUInterfaceBody;
// Indicates that a GENERATED_IINTERFACE_BODY has been found in the UClass.
bool bClassHasGeneratedIInterfaceBody;
// public, private, etc at the current parse spot
EAccessSpecifier CurrentAccessSpecifier;
////////////////////////////////////////////////////
// Special parsed struct names that do not require a prefix
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324) #lockdown Nick.Penwarden #rb none #rnx ============================ MAJOR FEATURES & CHANGES ============================ Change 3431439 by Marc.Audy Editor only subobjects shouldn't exist in PIE world #jira UE-43186 Change 3457323 by Marc.Audy Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world #jira UE-45087 Change 3499927 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker #jira UE-43458 Change 3502939 by Michael.Noland Back out changelist 3499927 Change 3522783 by Zak.Middleton #ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before). Change 3544641 by Dan.Oconnor Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names #jira OR-38176 Change 3544645 by Dan.Oconnor In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional #jira UE-45248 Change 3545023 by Marc.Audy Properly encapsulate FPinDeletionQueue Fix ensure during deletion of split pins when not clearing links Fix split pins able to end up in delete queue twice during undo/redo Change 3545025 by Marc.Audy Properly allow changing the pin type from a struct that is split on the node #jira UE-47328 Change 3545455 by Ben.Zeigler Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them Copy of CL#3544474 Change 3545456 by Ben.Zeigler Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets. Copy of CL #3544374 Change 3545547 by Ben.Zeigler CIS Fix Change 3545568 by Michael.Noland PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema) #jira UE-46845 Change 3545582 by Michael.Noland Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error) Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles [Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework] Change 3546528 by Ben.Zeigler #jira UE-47548 Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance Change 3546544 by Marc.Audy Fix split pin restoration logic to deal with wildcards and variations in const/refness Change 3546551 by Marc.Audy Don't crash if the struct type is missing for whatever reason Change 3547152 by Marc.Audy Fix array exporting so you don't end up getting none instead of defaults #jira UE-47320 Change 3547438 by Marc.Audy Fix split pins on class defaults Don't cause a structural change when reapplying a split pin as part of node reconstruction #jira UE-46935 Change 3547501 by Ben.Zeigler Fix ensure, it's valid to pass a null path for a dynamic asset Change 3551185 by Ben.Zeigler #jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated Change 3551723 by Ben.Zeigler Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors Change 3553216 by Phillip.Kavan #jira UE-39303, UE-46268, UE-47519 - Nativized UDS now support external asset dependencies and will construct their own linker import tables on load. Change summary: - Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types. - Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields. - Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types. - Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time. - Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same. - Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above). - Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData. - Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types. - Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519). Change 3553301 by Ben.Zeigler Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead Change 3553631 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize. #jira UE-43458 Change 3553799 by Ben.Zeigler Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work Copy of CL #3553781 Change 3553896 by Michael.Noland Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made) #jira UE-31031 Change 3553897 by Michael.Noland Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets #jira UE-37862 Change 3553898 by Michael.Noland Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph) Change 3553909 by Michael.Noland Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full #jira UE-19710 Change 3554517 by Michael.Noland Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out #jira UE-21810 Change 3554664 by Michael.Noland Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere) #jira UE-27121 Change 3554831 by Dan.Oconnor Non editor build fix Change 3554834 by Dan.Oconnor Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on #jira UE-40438 Change 3556157 by Ben.Zeigler Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups Change 3557775 by Michael.Noland Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure #jira UE-36090 Change 3557777 by Michael.Noland Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist) #jira UE-47024 Change 3560510 by Michael.Noland Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up #jira UE-38912 Change 3560563 by Michael.Noland Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed) Change 3561443 by Ben.Zeigler Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header. Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change Change 3561658 by Michael.Noland Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually - Added a key binding for Goto Definition (Alt+G) - Added a key binding for Find References (Shift+Alt+F) - Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands - Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject - Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition Change 3562291 by Ben.Zeigler Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case Change 3562292 by Ben.Zeigler #jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name Change 3564814 by Ben.Zeigler #jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves Change 3566707 by Dan.Oconnor Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles) #jira None Change 3566717 by Michael.Noland Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile) Change 3566771 by Michael.Noland Editor: Fixing deprecation warning #jira UE-47922 Change 3567023 by Michael.Noland Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts Adapted from PR #3708: Fast construction of bp (Contributed by gildor2) #jira UE-46473 Change 3567304 by Ben.Zeigler Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class. This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code Change 3567398 by Ben.Zeigler Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance Change 3567729 by Michael.Noland Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)" Change 3567739 by Ben.Zeigler Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter Change 3567741 by Ben.Zeigler Disable optimization for a path test that was crashing in VC2015 in a monolithic build Change 3568332 by Mieszko.Zielinski Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4 #jira UE-47948 Change 3568676 by Michael.Noland Blueprints: Allow editing the tooltip of each enum value in a user defined enum #jira UE-20036 Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata Change 3569128 by Michael.Noland Blueprints: Removing the experimental profiler as we won't be returning to it any time soon #jira UE-46852 Change 3569207 by Michael.Noland Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint #jira UE-8708 Change 3569208 by Michael.Noland Blueprints: Allow specifying a description for user defined enums (shown in the content browser) #jira UE-20036 Change 3569209 by Michael.Noland Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials #jira UE-16085 Change 3570177 by Michael.Noland Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor) #jira UE-47962 Change 3570179 by Michael.Noland Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited Change 3570192 by Michael.Noland Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug #jira UE-20709 Change 3571203 by Michael.Noland Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature - Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters - Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes - Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible - Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes Change 3571224 by Michael.Noland Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs) Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist) #jira UE-29848 #jira UE-34698 Change 3571279 by Michael.Noland Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well) Change 3571282 by Michael.Noland Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint Change 3571284 by Michael.Noland Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists) Change 3571311 by Ben.Zeigler Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible. All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator Change 3571313 by Ben.Zeigler Several fixes to automation framework to allow it to work better with Cooked builds. Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time. Change 3571485 by mason.seay Test map for Make Set bug Change 3571501 by Ben.Zeigler Accidentally undid the UHT fixup for TAssetPtr during my bulk rename Change 3571531 by Ben.Zeigler Fix warning messages Change 3571591 by Michael.Noland Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone) #jira UE-48024 Change 3572938 by Michael.Noland Blueprints: Fixed a typo in a set function comment #jira UE-48036 Change 3572941 by Michael.Noland Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols #jira UE-38624 Change 3574816 by mason.seay Renamed asset to better reflect name of object reference Change 3574985 by mason.seay Updated comments and string outputs to list Soft Object Reference Change 3575740 by Ben.Zeigler #jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate Change 3575795 by Ben.Zeigler #jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds Change 3576374 by mason.seay Forgot to submit the deleting of a redirector Change 3576966 by Ben.Zeigler #jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands Change 3577002 by Marc.Audy Prevent wildcard pins from being connected to exec pins #jira UE-48148 Change 3577232 by Phillip.Kavan #jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset. Change summary: - Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially). Change 3577710 by Dan.Oconnor Mirror of 3576977: Fix for crash when loading cooked uassets that reference functions that are not present #jira UE-47644 Change 3577723 by Dan.Oconnor Prevent deferring of classes that are needed to load subobjects #jira UE-47726 Change 3577741 by Dan.Oconnor Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17 Change 3578938 by Ben.Zeigler #jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure. Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems Change 3578947 by Marc.Audy (4.17) Properly expose members of DialogueContext to blueprints #jira UE-48175 Change 3578952 by Ben.Zeigler Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating Change 3579315 by mason.seay Test map for Make Container nodes Change 3579600 by Ben.Zeigler Disable window test on non-desktop platforms as they cannot be resized post launch Change 3579601 by Ben.Zeigler #jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue Change 3579713 by Dan.Oconnor Prevent crashes when bluepints implement an interface that was deleted #jira UE-48223 Change 3579719 by Dan.Oconnor Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data #jira UE-48240 Change 3579745 by Michael.Noland Blueprints: Improve categorization and reordering support in 'My Blueprints' - Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables) - Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions) - Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers) - Added support for renaming categories using F2 Known issues (none are regressions): - Timelines cannot be moved to other categories or reordered - Renaming a nested category will result in it becoming a top level category (discarding the parent category chain) - Some actions do not support undo #jira UE-31557 Change 3579795 by Michael.Noland PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames) #jira UE-48105 Change 3580463 by Marc.Audy (4.17) Don't crash if calling PostEditUndo on an Actor in the transient package #jira UE-47523 Change 3581073 by Marc.Audy Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code. Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes Change 3581156 by Ben.Zeigler #jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins Change 3581473 by Ben.Zeigler Properly turn off optimization for PS4 test Change 3582094 by Marc.Audy Fix anim nodes not navigating to their graph on double click #jira UE-48333 Change 3582157 by Marc.Audy Fix double-clicking on animation asset nodes not opening the asset editors Change 3582289 by Marc.Audy (4.17) Don't crash when adding a streaming level that's already in the level #jira UE-48928 Change 3545435 by Ben.Zeigler #jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table: FStringAssetReference -> FSoftObjectPath FStringClassReference -> FSoftClassPath TAssetPtr -> TSoftObjectPtr TAssetSubclassOf -> TSoftClassPtr The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath. This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds Change 3567760 by Ben.Zeigler Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests Change actor merging tests to be editor only, this stops them from cooking Several individual tests crash on cooked builds, I started threads with the owners of those Change 3575737 by Ben.Zeigler #jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely. As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features #jira UE-27124 Fix several possible crashes with changing levels while in PIE Change 3578806 by Marc.Audy Fix Construct Object not working correctly with split pins. Add Construct Object test cases to functional tests. Added split pin expose on spawn test cases. #jira UE-33924 [CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
static TArray<FString> StructsWithNoPrefix;
// Special parsed struct names that have a 'T' prefix
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324) #lockdown Nick.Penwarden #rb none #rnx ============================ MAJOR FEATURES & CHANGES ============================ Change 3431439 by Marc.Audy Editor only subobjects shouldn't exist in PIE world #jira UE-43186 Change 3457323 by Marc.Audy Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world #jira UE-45087 Change 3499927 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker #jira UE-43458 Change 3502939 by Michael.Noland Back out changelist 3499927 Change 3522783 by Zak.Middleton #ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before). Change 3544641 by Dan.Oconnor Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names #jira OR-38176 Change 3544645 by Dan.Oconnor In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional #jira UE-45248 Change 3545023 by Marc.Audy Properly encapsulate FPinDeletionQueue Fix ensure during deletion of split pins when not clearing links Fix split pins able to end up in delete queue twice during undo/redo Change 3545025 by Marc.Audy Properly allow changing the pin type from a struct that is split on the node #jira UE-47328 Change 3545455 by Ben.Zeigler Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them Copy of CL#3544474 Change 3545456 by Ben.Zeigler Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets. Copy of CL #3544374 Change 3545547 by Ben.Zeigler CIS Fix Change 3545568 by Michael.Noland PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema) #jira UE-46845 Change 3545582 by Michael.Noland Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error) Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles [Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework] Change 3546528 by Ben.Zeigler #jira UE-47548 Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance Change 3546544 by Marc.Audy Fix split pin restoration logic to deal with wildcards and variations in const/refness Change 3546551 by Marc.Audy Don't crash if the struct type is missing for whatever reason Change 3547152 by Marc.Audy Fix array exporting so you don't end up getting none instead of defaults #jira UE-47320 Change 3547438 by Marc.Audy Fix split pins on class defaults Don't cause a structural change when reapplying a split pin as part of node reconstruction #jira UE-46935 Change 3547501 by Ben.Zeigler Fix ensure, it's valid to pass a null path for a dynamic asset Change 3551185 by Ben.Zeigler #jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated Change 3551723 by Ben.Zeigler Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors Change 3553216 by Phillip.Kavan #jira UE-39303, UE-46268, UE-47519 - Nativized UDS now support external asset dependencies and will construct their own linker import tables on load. Change summary: - Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types. - Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields. - Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types. - Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time. - Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same. - Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above). - Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData. - Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types. - Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519). Change 3553301 by Ben.Zeigler Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead Change 3553631 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize. #jira UE-43458 Change 3553799 by Ben.Zeigler Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work Copy of CL #3553781 Change 3553896 by Michael.Noland Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made) #jira UE-31031 Change 3553897 by Michael.Noland Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets #jira UE-37862 Change 3553898 by Michael.Noland Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph) Change 3553909 by Michael.Noland Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full #jira UE-19710 Change 3554517 by Michael.Noland Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out #jira UE-21810 Change 3554664 by Michael.Noland Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere) #jira UE-27121 Change 3554831 by Dan.Oconnor Non editor build fix Change 3554834 by Dan.Oconnor Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on #jira UE-40438 Change 3556157 by Ben.Zeigler Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups Change 3557775 by Michael.Noland Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure #jira UE-36090 Change 3557777 by Michael.Noland Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist) #jira UE-47024 Change 3560510 by Michael.Noland Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up #jira UE-38912 Change 3560563 by Michael.Noland Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed) Change 3561443 by Ben.Zeigler Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header. Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change Change 3561658 by Michael.Noland Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually - Added a key binding for Goto Definition (Alt+G) - Added a key binding for Find References (Shift+Alt+F) - Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands - Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject - Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition Change 3562291 by Ben.Zeigler Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case Change 3562292 by Ben.Zeigler #jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name Change 3564814 by Ben.Zeigler #jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves Change 3566707 by Dan.Oconnor Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles) #jira None Change 3566717 by Michael.Noland Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile) Change 3566771 by Michael.Noland Editor: Fixing deprecation warning #jira UE-47922 Change 3567023 by Michael.Noland Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts Adapted from PR #3708: Fast construction of bp (Contributed by gildor2) #jira UE-46473 Change 3567304 by Ben.Zeigler Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class. This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code Change 3567398 by Ben.Zeigler Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance Change 3567729 by Michael.Noland Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)" Change 3567739 by Ben.Zeigler Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter Change 3567741 by Ben.Zeigler Disable optimization for a path test that was crashing in VC2015 in a monolithic build Change 3568332 by Mieszko.Zielinski Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4 #jira UE-47948 Change 3568676 by Michael.Noland Blueprints: Allow editing the tooltip of each enum value in a user defined enum #jira UE-20036 Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata Change 3569128 by Michael.Noland Blueprints: Removing the experimental profiler as we won't be returning to it any time soon #jira UE-46852 Change 3569207 by Michael.Noland Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint #jira UE-8708 Change 3569208 by Michael.Noland Blueprints: Allow specifying a description for user defined enums (shown in the content browser) #jira UE-20036 Change 3569209 by Michael.Noland Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials #jira UE-16085 Change 3570177 by Michael.Noland Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor) #jira UE-47962 Change 3570179 by Michael.Noland Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited Change 3570192 by Michael.Noland Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug #jira UE-20709 Change 3571203 by Michael.Noland Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature - Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters - Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes - Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible - Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes Change 3571224 by Michael.Noland Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs) Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist) #jira UE-29848 #jira UE-34698 Change 3571279 by Michael.Noland Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well) Change 3571282 by Michael.Noland Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint Change 3571284 by Michael.Noland Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists) Change 3571311 by Ben.Zeigler Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible. All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator Change 3571313 by Ben.Zeigler Several fixes to automation framework to allow it to work better with Cooked builds. Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time. Change 3571485 by mason.seay Test map for Make Set bug Change 3571501 by Ben.Zeigler Accidentally undid the UHT fixup for TAssetPtr during my bulk rename Change 3571531 by Ben.Zeigler Fix warning messages Change 3571591 by Michael.Noland Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone) #jira UE-48024 Change 3572938 by Michael.Noland Blueprints: Fixed a typo in a set function comment #jira UE-48036 Change 3572941 by Michael.Noland Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols #jira UE-38624 Change 3574816 by mason.seay Renamed asset to better reflect name of object reference Change 3574985 by mason.seay Updated comments and string outputs to list Soft Object Reference Change 3575740 by Ben.Zeigler #jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate Change 3575795 by Ben.Zeigler #jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds Change 3576374 by mason.seay Forgot to submit the deleting of a redirector Change 3576966 by Ben.Zeigler #jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands Change 3577002 by Marc.Audy Prevent wildcard pins from being connected to exec pins #jira UE-48148 Change 3577232 by Phillip.Kavan #jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset. Change summary: - Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially). Change 3577710 by Dan.Oconnor Mirror of 3576977: Fix for crash when loading cooked uassets that reference functions that are not present #jira UE-47644 Change 3577723 by Dan.Oconnor Prevent deferring of classes that are needed to load subobjects #jira UE-47726 Change 3577741 by Dan.Oconnor Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17 Change 3578938 by Ben.Zeigler #jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure. Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems Change 3578947 by Marc.Audy (4.17) Properly expose members of DialogueContext to blueprints #jira UE-48175 Change 3578952 by Ben.Zeigler Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating Change 3579315 by mason.seay Test map for Make Container nodes Change 3579600 by Ben.Zeigler Disable window test on non-desktop platforms as they cannot be resized post launch Change 3579601 by Ben.Zeigler #jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue Change 3579713 by Dan.Oconnor Prevent crashes when bluepints implement an interface that was deleted #jira UE-48223 Change 3579719 by Dan.Oconnor Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data #jira UE-48240 Change 3579745 by Michael.Noland Blueprints: Improve categorization and reordering support in 'My Blueprints' - Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables) - Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions) - Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers) - Added support for renaming categories using F2 Known issues (none are regressions): - Timelines cannot be moved to other categories or reordered - Renaming a nested category will result in it becoming a top level category (discarding the parent category chain) - Some actions do not support undo #jira UE-31557 Change 3579795 by Michael.Noland PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames) #jira UE-48105 Change 3580463 by Marc.Audy (4.17) Don't crash if calling PostEditUndo on an Actor in the transient package #jira UE-47523 Change 3581073 by Marc.Audy Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code. Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes Change 3581156 by Ben.Zeigler #jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins Change 3581473 by Ben.Zeigler Properly turn off optimization for PS4 test Change 3582094 by Marc.Audy Fix anim nodes not navigating to their graph on double click #jira UE-48333 Change 3582157 by Marc.Audy Fix double-clicking on animation asset nodes not opening the asset editors Change 3582289 by Marc.Audy (4.17) Don't crash when adding a streaming level that's already in the level #jira UE-48928 Change 3545435 by Ben.Zeigler #jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table: FStringAssetReference -> FSoftObjectPath FStringClassReference -> FSoftClassPath TAssetPtr -> TSoftObjectPtr TAssetSubclassOf -> TSoftClassPtr The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath. This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds Change 3567760 by Ben.Zeigler Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests Change actor merging tests to be editor only, this stops them from cooking Several individual tests crash on cooked builds, I started threads with the owners of those Change 3575737 by Ben.Zeigler #jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely. As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features #jira UE-27124 Fix several possible crashes with changing levels while in PIE Change 3578806 by Marc.Audy Fix Construct Object not working correctly with split pins. Add Construct Object test cases to functional tests. Added split pin expose on spawn test cases. #jira UE-33924 [CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
static TArray<FString> StructsWithTPrefix;
// Mapping from 'human-readable' macro substring to # of parameters for delegate declarations
// Index 0 is 1 parameter, Index 1 is 2, etc...
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324) #lockdown Nick.Penwarden #rb none #rnx ============================ MAJOR FEATURES & CHANGES ============================ Change 3431439 by Marc.Audy Editor only subobjects shouldn't exist in PIE world #jira UE-43186 Change 3457323 by Marc.Audy Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world #jira UE-45087 Change 3499927 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker #jira UE-43458 Change 3502939 by Michael.Noland Back out changelist 3499927 Change 3522783 by Zak.Middleton #ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before). Change 3544641 by Dan.Oconnor Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names #jira OR-38176 Change 3544645 by Dan.Oconnor In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional #jira UE-45248 Change 3545023 by Marc.Audy Properly encapsulate FPinDeletionQueue Fix ensure during deletion of split pins when not clearing links Fix split pins able to end up in delete queue twice during undo/redo Change 3545025 by Marc.Audy Properly allow changing the pin type from a struct that is split on the node #jira UE-47328 Change 3545455 by Ben.Zeigler Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them Copy of CL#3544474 Change 3545456 by Ben.Zeigler Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets. Copy of CL #3544374 Change 3545547 by Ben.Zeigler CIS Fix Change 3545568 by Michael.Noland PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema) #jira UE-46845 Change 3545582 by Michael.Noland Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error) Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles [Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework] Change 3546528 by Ben.Zeigler #jira UE-47548 Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance Change 3546544 by Marc.Audy Fix split pin restoration logic to deal with wildcards and variations in const/refness Change 3546551 by Marc.Audy Don't crash if the struct type is missing for whatever reason Change 3547152 by Marc.Audy Fix array exporting so you don't end up getting none instead of defaults #jira UE-47320 Change 3547438 by Marc.Audy Fix split pins on class defaults Don't cause a structural change when reapplying a split pin as part of node reconstruction #jira UE-46935 Change 3547501 by Ben.Zeigler Fix ensure, it's valid to pass a null path for a dynamic asset Change 3551185 by Ben.Zeigler #jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated Change 3551723 by Ben.Zeigler Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors Change 3553216 by Phillip.Kavan #jira UE-39303, UE-46268, UE-47519 - Nativized UDS now support external asset dependencies and will construct their own linker import tables on load. Change summary: - Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types. - Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields. - Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types. - Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time. - Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same. - Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above). - Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData. - Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types. - Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519). Change 3553301 by Ben.Zeigler Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead Change 3553631 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize. #jira UE-43458 Change 3553799 by Ben.Zeigler Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work Copy of CL #3553781 Change 3553896 by Michael.Noland Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made) #jira UE-31031 Change 3553897 by Michael.Noland Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets #jira UE-37862 Change 3553898 by Michael.Noland Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph) Change 3553909 by Michael.Noland Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full #jira UE-19710 Change 3554517 by Michael.Noland Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out #jira UE-21810 Change 3554664 by Michael.Noland Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere) #jira UE-27121 Change 3554831 by Dan.Oconnor Non editor build fix Change 3554834 by Dan.Oconnor Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on #jira UE-40438 Change 3556157 by Ben.Zeigler Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups Change 3557775 by Michael.Noland Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure #jira UE-36090 Change 3557777 by Michael.Noland Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist) #jira UE-47024 Change 3560510 by Michael.Noland Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up #jira UE-38912 Change 3560563 by Michael.Noland Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed) Change 3561443 by Ben.Zeigler Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header. Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change Change 3561658 by Michael.Noland Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually - Added a key binding for Goto Definition (Alt+G) - Added a key binding for Find References (Shift+Alt+F) - Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands - Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject - Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition Change 3562291 by Ben.Zeigler Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case Change 3562292 by Ben.Zeigler #jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name Change 3564814 by Ben.Zeigler #jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves Change 3566707 by Dan.Oconnor Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles) #jira None Change 3566717 by Michael.Noland Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile) Change 3566771 by Michael.Noland Editor: Fixing deprecation warning #jira UE-47922 Change 3567023 by Michael.Noland Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts Adapted from PR #3708: Fast construction of bp (Contributed by gildor2) #jira UE-46473 Change 3567304 by Ben.Zeigler Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class. This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code Change 3567398 by Ben.Zeigler Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance Change 3567729 by Michael.Noland Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)" Change 3567739 by Ben.Zeigler Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter Change 3567741 by Ben.Zeigler Disable optimization for a path test that was crashing in VC2015 in a monolithic build Change 3568332 by Mieszko.Zielinski Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4 #jira UE-47948 Change 3568676 by Michael.Noland Blueprints: Allow editing the tooltip of each enum value in a user defined enum #jira UE-20036 Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata Change 3569128 by Michael.Noland Blueprints: Removing the experimental profiler as we won't be returning to it any time soon #jira UE-46852 Change 3569207 by Michael.Noland Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint #jira UE-8708 Change 3569208 by Michael.Noland Blueprints: Allow specifying a description for user defined enums (shown in the content browser) #jira UE-20036 Change 3569209 by Michael.Noland Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials #jira UE-16085 Change 3570177 by Michael.Noland Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor) #jira UE-47962 Change 3570179 by Michael.Noland Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited Change 3570192 by Michael.Noland Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug #jira UE-20709 Change 3571203 by Michael.Noland Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature - Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters - Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes - Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible - Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes Change 3571224 by Michael.Noland Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs) Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist) #jira UE-29848 #jira UE-34698 Change 3571279 by Michael.Noland Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well) Change 3571282 by Michael.Noland Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint Change 3571284 by Michael.Noland Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists) Change 3571311 by Ben.Zeigler Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible. All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator Change 3571313 by Ben.Zeigler Several fixes to automation framework to allow it to work better with Cooked builds. Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time. Change 3571485 by mason.seay Test map for Make Set bug Change 3571501 by Ben.Zeigler Accidentally undid the UHT fixup for TAssetPtr during my bulk rename Change 3571531 by Ben.Zeigler Fix warning messages Change 3571591 by Michael.Noland Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone) #jira UE-48024 Change 3572938 by Michael.Noland Blueprints: Fixed a typo in a set function comment #jira UE-48036 Change 3572941 by Michael.Noland Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols #jira UE-38624 Change 3574816 by mason.seay Renamed asset to better reflect name of object reference Change 3574985 by mason.seay Updated comments and string outputs to list Soft Object Reference Change 3575740 by Ben.Zeigler #jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate Change 3575795 by Ben.Zeigler #jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds Change 3576374 by mason.seay Forgot to submit the deleting of a redirector Change 3576966 by Ben.Zeigler #jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands Change 3577002 by Marc.Audy Prevent wildcard pins from being connected to exec pins #jira UE-48148 Change 3577232 by Phillip.Kavan #jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset. Change summary: - Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially). Change 3577710 by Dan.Oconnor Mirror of 3576977: Fix for crash when loading cooked uassets that reference functions that are not present #jira UE-47644 Change 3577723 by Dan.Oconnor Prevent deferring of classes that are needed to load subobjects #jira UE-47726 Change 3577741 by Dan.Oconnor Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17 Change 3578938 by Ben.Zeigler #jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure. Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems Change 3578947 by Marc.Audy (4.17) Properly expose members of DialogueContext to blueprints #jira UE-48175 Change 3578952 by Ben.Zeigler Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating Change 3579315 by mason.seay Test map for Make Container nodes Change 3579600 by Ben.Zeigler Disable window test on non-desktop platforms as they cannot be resized post launch Change 3579601 by Ben.Zeigler #jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue Change 3579713 by Dan.Oconnor Prevent crashes when bluepints implement an interface that was deleted #jira UE-48223 Change 3579719 by Dan.Oconnor Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data #jira UE-48240 Change 3579745 by Michael.Noland Blueprints: Improve categorization and reordering support in 'My Blueprints' - Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables) - Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions) - Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers) - Added support for renaming categories using F2 Known issues (none are regressions): - Timelines cannot be moved to other categories or reordered - Renaming a nested category will result in it becoming a top level category (discarding the parent category chain) - Some actions do not support undo #jira UE-31557 Change 3579795 by Michael.Noland PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames) #jira UE-48105 Change 3580463 by Marc.Audy (4.17) Don't crash if calling PostEditUndo on an Actor in the transient package #jira UE-47523 Change 3581073 by Marc.Audy Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code. Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes Change 3581156 by Ben.Zeigler #jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins Change 3581473 by Ben.Zeigler Properly turn off optimization for PS4 test Change 3582094 by Marc.Audy Fix anim nodes not navigating to their graph on double click #jira UE-48333 Change 3582157 by Marc.Audy Fix double-clicking on animation asset nodes not opening the asset editors Change 3582289 by Marc.Audy (4.17) Don't crash when adding a streaming level that's already in the level #jira UE-48928 Change 3545435 by Ben.Zeigler #jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table: FStringAssetReference -> FSoftObjectPath FStringClassReference -> FSoftClassPath TAssetPtr -> TSoftObjectPtr TAssetSubclassOf -> TSoftClassPtr The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath. This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds Change 3567760 by Ben.Zeigler Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests Change actor merging tests to be editor only, this stops them from cooking Several individual tests crash on cooked builds, I started threads with the owners of those Change 3575737 by Ben.Zeigler #jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely. As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features #jira UE-27124 Fix several possible crashes with changing levels while in PIE Change 3578806 by Marc.Audy Fix Construct Object not working correctly with split pins. Add Construct Object test cases to functional tests. Added split pin expose on spawn test cases. #jira UE-33924 [CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
static TArray<FString> DelegateParameterCountStrings;
// Types that have been renamed, treat the old deprecated name as the new name for code generation
static TMap<FString, FString> TypeRedirectMap;
// List of all used identifiers for net service function declarations (every function must be unique)
TMap<int32, FString> UsedRPCIds;
// List of all net service functions with undeclared response functions
TMap<int32, FString> RPCsNeedingHookup;
// Constructor.
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3494741 by Steve.Robb Generated code size savings. #jira UE-43048 Change 3495484 by Steve.Robb Fix for generated indices of static arrays when saving configs. Change 3497926 by Robert.Manuszewski Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything. Change 3498077 by Robert.Manuszewski Only use the recursion guard in async loading code when the event driven loader is enabled. Change 3498112 by Ben.Marsh UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own. Change 3500239 by Robert.Manuszewski Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes. Change 3500395 by Steve.Robb Extra codegen savings when not in hot reload. Change 3501004 by Steve.Robb EObjectFlags now have constexpr operators. Change 3502079 by Ben.Marsh UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary. Change 3502527 by Steve.Robb Fix for zero-sized array compile error in generated code when all functions are editor-only. Change 3502542 by Ben.Marsh UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead. Change 3502868 by Steve.Robb Workaround for inefficient generated code with stateless lambdas on Clang. Change 3503550 by Steve.Robb Another generated code lambda optimization. Change 3503582 by Ben.Marsh BuildGraph: Add support for nullable parameter types. Change 3504424 by Steve.Robb New AllOf, AnyOf and NoneOf algorithms. Change 3504712 by Ben.Marsh UAT: Less spammy log and error output from UAT. * Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception). * Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information. * AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log) * Name of the calling function is not included in console output by default, but still included in the log. Change 3504808 by Ben.Marsh UAT: Suppress P4 output when running a recursive instance of UAT. Change 3505044 by Steve.Robb Code generation improved for TCppClassType code. Change 3505485 by Ben.Marsh Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module. Change 3505699 by Ben.Marsh Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins. Change 3506055 by Ben.Marsh UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output. Change 3507745 by Robert.Manuszewski Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses). Change 3507911 by Ben.Marsh Plugins: Minor changes to plugin descriptors. * Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors. * Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from. Change 3508669 by Ben.Marsh EC: Parse multi-line messages from UBT and UAT. Change 3508691 by Ben.Marsh Fix double-spacing of cook stats. Change 3509245 by Steve.Robb UHT makefiles removed. Flag audit removed. Change 3509275 by Steve.Robb Fix for mismatched stat categories in AudioMixer. #jira UE-46129 Change 3509289 by Robert.Manuszewski Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably. Change 3509294 by Robert.Manuszewski UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it. Change 3509312 by Steve.Robb GitHub# 3679: Add TArray constructor that takes a raw pointer and a count Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too. #jira UE-46136 Change 3509396 by Steve.Robb GitHub# 3676: Fix TUnion operator<< compile error #jira UE-46099 Change 3509633 by Steve.Robb Fix for line numbers on multiline macros. Change 3509938 by Gil.Gribb UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading. Change 3510593 by Daniel.Lamb Fixed up unsoilicited files getting populated with files which aren't finished being created yet. #test None Change 3510594 by Daniel.Lamb Fixed up temp files directory for patching. Thanks David Yerkess @ Milestone #review@Ben.Marsh Change 3511628 by Ben.Marsh PR #3707: Fixed UBT stack size (Contributed by gildor2) Change 3511808 by Ben.Marsh Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git) #jira UE-46540 Change 3512017 by Ben.Marsh Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface. Change 3513935 by Steve.Robb Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477. Change 3514142 by Steve.Robb MemoryProfiler2 added to generated solution. Change 3516463 by Ben.Marsh Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user. Change 3517860 by Ben.Marsh PR #3727: FString Dereference Fixes (Contributed by jovisgCL) Change 3517967 by Ben.Marsh Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line. Change 3518070 by Steve.Robb Disable Binned2 stats in shipping non-editor builds. Change 3520079 by Steve.Robb Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions. #jira UE-24034 Change 3520080 by Robert.Manuszewski Made max package summary size to be configurable with ini setting Change 3520083 by Steve.Robb Force a GC after hot reload to clean up reinstanced objects which may still tick. #jira UE-40421 Change 3520480 by Robert.Manuszewski Improved assert message when the initial package read request was too small. Change 3520590 by Graeme.Thornton SignedArchiveReader optimizations - Loads more stats - Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader - Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time - Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries Change 3521023 by Graeme.Thornton Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing Change 3521787 by Ben.Marsh PR #3736: Small static code analysis fixes (Contributed by jovisgCL) Change 3521789 by Ben.Marsh PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar) Change 3524721 by Ben.Marsh Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core. Change 3524741 by Ben.Marsh Move PumpMessages() into FPlatformApplicationMisc. Change 3525399 by Ben.Marsh UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment. Change 3525743 by Ben.Marsh UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds. Change 3525746 by Ben.Marsh EC: Include the clobber option on new workspaces, to allow overriding version files when syncing. Change 3526453 by Ben.Marsh UGS: Do not generate project files when syncing precompiled binaries. Change 3527045 by Ben.Marsh Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting. Change 3527420 by Ben.Marsh UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing). Config files are now read from: Engine/Programs/UnrealGameSync/UnrealGameSync.ini Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini If a project is selected: <ProjectDir>/Build/UnrealGameSync.ini <ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini If the .uprojectdirs file is selected: Engine/Programs/UnrealGameSync/DefaultProject.ini Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini Change 3528063 by Ben.Marsh Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse. Change 3528415 by Ben.Marsh UAT: Remove \r characters from the end of multiline log messages. Change 3528427 by Ben.Marsh EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent. Change 3528485 by Ben.Marsh EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places. Change 3528505 by Steve.Robb PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL) #jira UE-46819 Change 3528772 by Robert.Manuszewski Enabling actor and blueprint clustering in ShooterGame Change 3528786 by Robert.Manuszewski PR #3760: Fix typo (Contributed by jesseyeh) Change 3528792 by Steve.Robb PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL) #jira UE-46962 Change 3528941 by Robert.Manuszewski Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object. #jira UE-44996 Change 3530241 by Ben.Marsh UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value. Change 3531377 by Ben.Marsh Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it. This has several advantages over the per-module platform whitelist/blacklist: * Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore. * References to dependent plugins from platform-specific plugins can now be eliminated. * Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly). * The editor can load any plugins without having to whitelist supported editor host platforms. UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime. Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary. Change 3531502 by Jin.Zhang Add support for GPUCrash #rb Change 3531664 by Ben.Marsh UBT: Change output format from C# JSON writer to match output by the engine. Change 3531848 by Ben.Marsh UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable. Change 3531869 by Ben.Marsh UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field. Change 3532474 by Ben.Marsh UBT: Use the same mechanism as UAT for logging exceptions. Change 3532734 by Graeme.Thornton Initial VSCode Support - Tasks generated for building all game/engine/program targets - Debugging support for targets on Win64 Change 3532789 by Steve.Robb FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap. Set_Add and Map_Add no longer have a return value. FScriptSet::Find and FScriptMap::Find functions are now FindIndex. FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash. Change 3532845 by Steve.Robb Obsolete UHT settings deleted. Change 3532875 by Graeme.Thornton VSCode - Add debug targets for different target configurations - Choose between VS debugger (windows) and GDB (mac/linux) Change 3532906 by Graeme.Thornton VSCode - Point all builds directly at UBT rather than the batch files - Adjust mac build tasks to run through mono Change 3532924 by Ben.Marsh UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root. Change 3535234 by Graeme.Thornton VSCode - Pass intellisense system a list of paths to use for header resolution Change 3535247 by Graeme.Thornton UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation Change 3535376 by Graeme.Thornton VSCode - Added build jobs for C# projects - Linked launch tasks to relevant build task Change 3537083 by Ben.Marsh EC: Change P4 swarm links to start at the changelist for a build. Change 3537368 by Graeme.Thornton Fix for crash in FSignedArchiveReader when multithreading is disabled Change 3537550 by Graeme.Thornton Fixed a crash in the taskgraph when running single threaded Change 3537922 by Steve.Robb Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT. Change 3539691 by Graeme.Thornton VSCode - Various updates to get PC and Mac C++ projects building and debugging. - Some other changes to C# setup to allow compilation. Debugging doesn't work. Change 3539775 by Ben.Marsh Plugins: Various fixes to settings for enabling plugins. * Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled). * Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed. * Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them. Change 3540788 by Ben.Marsh UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile). Example usage: public class UnrealPakTarget : TargetRules { public UnrealPakTarget(TargetInfo Target) : base(Target) { Type = TargetType.Program; LinkType = TargetLinkType.Monolithic; LaunchModuleName = "UnrealPak"; if(HostPlatform == UnrealTargetPlatform.Win64) { PreBuildSteps.Add("echo Before building:"); PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); PostBuildSteps.Add("echo After building!"); PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); } } } Change 3541664 by Graeme.Thornton VSCode - Add problemMatcher tag to cpp build targets Change 3541732 by Graeme.Thornton VSCode - Change UBT command line switch to "-vscode" for simplicity Change 3541967 by Graeme.Thornton VSCode - Fixes for Mac/Linux build steps Change 3541968 by Ben.Marsh CRP: Pass through the EnabledPlugins element in crash context XML files. #jira UE-46912 Change 3542519 by Ben.Marsh UBT: Add chain of references to error messages when configuring plugins. Change 3542523 by Ben.Marsh UBT: Add more useful error message when attempt to parse a JSON object fails. Change 3542658 by Ben.Marsh UBT: Include a chain of references when reporting errors instantiating modules. Change 3543432 by Ben.Marsh Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set. Change 3543436 by Ben.Marsh UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails. Change 3543536 by Ben.Marsh UBT: Downgrade message about redundant plugin references to a warning. Change 3543871 by Gil.Gribb UE4 - Fixed a critical crash bug with non-EDL loading from pak files. Change 3543924 by Robert.Manuszewski Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes. +Small optimization to token stream generation code. Change 3544469 by Jin.Zhang Crashes page displays the list of plugins from the crash context #rb Change 3544608 by Steve.Robb Fix for nativized generated code. #jira UE-47452 Change 3544612 by Ben.Marsh Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages(). #jira UE-47449 Change 3545954 by Gil.Gribb Fixed a critical crash bug relating to a race condition in async package summary reading. Change 3545968 by Ben.Marsh UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same. #jira UE-47419 Change 3545976 by Ben.Marsh EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch. Change 3546185 by Ben.Marsh Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped. Change 3547084 by Gil.Gribb Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms. Change 3547968 by Gil.Gribb Fixed critical race which potentially could cause a crash in the pak precacher. Change 3504722 by Ben.Marsh BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run. For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as: ERROR: Unable to write to foo.txt while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" /> at Engine\Build\InstalledEngineBuild.xml(91) (see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace) Change 3512255 by Ben.Marsh Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated. Change 3512332 by Ben.Marsh Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4. Change 3512393 by Ben.Marsh Rename FPaths::GameLogDir() to FPaths::ProjectLogDir(). Change 3513452 by Ben.Marsh Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project. Change 3516262 by Ben.Marsh Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor. * Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod. * The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders). Change 3517565 by Ben.Marsh Remove fixed engine version numbers from OSS plugins. Change 3518005 by Ben.Marsh UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false. Change 3518054 by Ben.Marsh UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard. Change 3524496 by Ben.Marsh Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core. Change 3524641 by Ben.Marsh Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc. Change 3528723 by Steve.Robb MoveTemp now static asserts if passed a const reference or rvalue. MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious. Fixes to violations of these new rules. Change 3528876 by Ben.Marsh Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste. Change 3529073 by Ben.Marsh Add script to package ShooterGame for any platforms. Change 3531493 by Ben.Marsh Update platform-specific plugins to declare the target platforms they support. Change 3531611 by Ben.Marsh UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates. Change 3531868 by Ben.Marsh Resaving project descriptors to remove invalid fields. Change 3531983 by Ben.Marsh UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders. * Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer. * Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type) * Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo")) * An error is output if any restricted folder names other than the output platform are in the staged output. Change 3540315 by Ben.Marsh UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers. Change 3542410 by Ben.Marsh UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already. Change 3543018 by Ben.Marsh UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions. Change 3544371 by Steve.Robb Fixes to TSet_Add and TMap_Add BPs. #jira UE-47441 [CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
explicit FHeaderParser(FFeedbackContext* InWarn, const FManifestModule& InModule);
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3420477) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3386262 on 2017/04/10 by Ben.Marsh Add app-local deployment of DirectX components that are no longer included with newer versions of Windows by default (XAudio 2.7, XInput 1.3). Also add a one-click button to the packaging settings to include the default app-local dependencies, rather than having to specify the path. Change 3386999 on 2017/04/10 by Ben.Marsh Plugins: Add support for explicit dependencies from one plugin onto another. Required plugins can be configured in an identical manner to project files, by adding a "Plugins" key to the .uplugin file. Dependencies are automatically built and loaded, and the plugin browser will warn if you try to disable a plugin that something else has a dependency on. Change 3387073 on 2017/04/10 by Ben.Marsh Move FLightPropagationRuntimeSettings into the Renderer module, to remove engine dependency on a plugin. Change 3387988 on 2017/04/11 by Steve.Robb Comments added to clarify the role of DestructItem and DestructItems. Change 3388085 on 2017/04/11 by Ben.Marsh UBT: Fix bEnabled flag on plugin references being ignored. Now collect up all the plugin references in order of priority before creating plugin instances for them. Fixes CIS fail for UT. Change 3390048 on 2017/04/12 by Richard.Hinckley #jira UE-43876 Fixed description of Streaming settings (within Project Settings). Change 3390697 on 2017/04/12 by Steve.Robb CLASS_PointersDefaultToAutoWeak and CLASS_PointersDefaultToWeak removed. Change 3390711 on 2017/04/12 by Steve.Robb AGRESSIVE_ARRAY_FORCEINLINE removed. Change 3392167 on 2017/04/13 by Robert.Manuszewski UObject can be added to GC cluster only if all of its Outers can also be added to it. Fixing asserts caused by components that are added to GC clusters even if their owner actors that can't be in GC clusters. #jira UE-42948 Change 3392309 on 2017/04/13 by Robert.Manuszewski When adding objects to clusters after these clusters have been created it's possible to come across objects that are already in the cluster we're adding the object to so instead of crashing, allow it. Change 3392620 on 2017/04/13 by Ben.Marsh UGS: Only check for updates every 5 minutes. Change 3392623 on 2017/04/13 by Ben.Marsh UGS: Only poll for new changes every 60 seconds. Change 3392744 on 2017/04/13 by Ben.Marsh UGS: Query changelist descriptions individually to determine whether changes affect code or content, to hopefully reduce Perforce server load. Change 3392874 on 2017/04/13 by Ben.Marsh UGS: Allow specifying regexes in the project config file which filters which changes to be displayed. Useful for changes submitted by build machines, updates to collections, etc... Change 3392878 on 2017/04/13 by Ben.Marsh Update UGS to version 1.96 Change 3395635 on 2017/04/17 by Ben.Marsh UAT: Prefix log output from executing UAT commands through BuildGraph with the name of that command. Change 3395655 on 2017/04/17 by Ben.Marsh UAT: Add a command for syncing a DDC over the network (SyncDDC). Allows specifying a maximum size to copy, number of days worth of modified files to copy, and time limit not to be exceeded. Change 3396989 on 2017/04/17 by Wes.Hunt CrashReporter configurable tweaks. * Added QueueWaitingTimeAlertThreshold (used to be hardcoded to 1 min). - When the queue waiting time gets beyond this many seconds, trigger a slack alert message. Default is 10 min. - Zero means never alert. * Added DiskSpaceAvailableAlertInterval (used to be hardcoded to 1 day). - Interval by which to report disk space availability. - Default is never (Zero) * Updated config file to match production config. #codereview:jin.zhang Change 3397656 on 2017/04/18 by Ben.Marsh UBT: Allow modules to opt-out of getting the default include paths from being added, by setting bAddDefaultIncludePaths = false from their build.cs file. Change 3397677 on 2017/04/18 by Robert.Manuszewski PR #3167 : Adding more descriptive error text to DetatchLinker error check (by rooneym) Change 3397722 on 2017/04/18 by Robert.Manuszewski PR #2252: Increase linker reporting for failed imports (Contributed by FineRedMist) Change 3397739 on 2017/04/18 by Richard.Hinckley #jira UE-44100 Fixed SanitizePackageName() to remove double-slash, triple-slash, etc. from package names. Also updated CreatePackage() to call SanitizePackageName() before creating. Change 3398023 on 2017/04/18 by Ben.Marsh PR #3105: Cook/package with editor and debugger attached (Contributed by projectgheist) Change 3398095 on 2017/04/18 by Ben.Marsh PR #3051: Generate map file from UAT (Contributed by projectgheist) Change 3398212 on 2017/04/18 by Ben.Marsh PR #2915: UE-38232: Removed duplicate stats (Contributed by projectgheist) Change 3399304 on 2017/04/19 by Ben.Marsh UGS: Prevent editor target files being removed when running custom tools. Change 3399306 on 2017/04/19 by Robert.Manuszewski Moved InitPropertiesFromCustomList to UbLueprintGeneratedClass and made it thread safe Change 3399729 on 2017/04/19 by Steve.Robb Simple optimization to TBitArray::RemoveAt() when all removed bits are at the end of the array. RemoveAtSwap() now simply decrements the count instead of calling RemoveAt(). Checks for a positive count added to RemoveAt() and RemoveAtSwap(). Change 3399750 on 2017/04/19 by Jin.Zhang Order branch alphabetically #RB Change 3400186 on 2017/04/19 by Steve.Robb Per-header generated code. Change 3401458 on 2017/04/20 by Steve.Robb Static log categories moved out of headers to prevent duplicates when the header is included multiple times. #jira UE-37507 Change 3401657 on 2017/04/20 by Gil.Gribb UE4 - Simplified and reworked lock free lists and the task graph bringing all platforms under the same scheme. Change 3401735 on 2017/04/20 by Gil.Gribb UE4 - Updated apple platform atomics with a new clang version which is intended to be shared among all clang platforms. Change 3403362 on 2017/04/21 by Steve.Robb Algo::Sort() fixed to support C arrays. Size+count versions of Also::IsSorted() deprecated. Algo::IsSortedBy() added. Algo::FindBy() added to allow an element to be found by projection. Simplifications and generalizations. Change 3404017 on 2017/04/21 by Ben.Marsh Fix issue where referenced plugin descriptors were missing from console builds, and prevent monolithic builds from offering to disable missing plugins. Change 3405299 on 2017/04/24 by Steve.Robb Clarified the class of the incompatible function in the error message about incompatible BP event specifiers. #jira UE-35106 Change 3405302 on 2017/04/24 by Ben.Marsh UBT: Allow excluding documentation from generated project files, by setting <ProjectFileGenerator><bIncludeDocumentation>false</bIncludeDocumentation></ProjectFileGenerator> in the XML configuration file. Change 3405629 on 2017/04/24 by Ben.Marsh Rename CPPEnvironment to CppCompileEnvironment, to reflect the class name. Change 3406431 on 2017/04/24 by Ben.Marsh UAT: Fix incorrect handling of P4SubmitOptions when multiple values are present. Change 3406670 on 2017/04/24 by Ben.Marsh UBT: Enable warnings for classes with virtual functions and no virtual destructor (C4265 on Windows, -fdelete-non-virtual-dtor on Clang). Change 3407080 on 2017/04/25 by Gil.Gribb UE4 - Critical fix: Propoerly disambiguate imports with the same name and the same outer name. This fixes an assert: LocalExportIndex.IsNull. Change 3407486 on 2017/04/25 by Gil.Gribb UE4 - Made changes so that servers, programs and non-engine executables do not create background or high priority threads. Change 3407495 on 2017/04/25 by Gil.Gribb UE4 - Tweaked out XBox and Windows low level file IO. Change 3407497 on 2017/04/25 by Gil.Gribb UE4 - Fixed bug in the pak precacher that would result in blocks being discarded too soon, which, in turn, resulted in redudnant reads. Change 3407705 on 2017/04/25 by Ben.Marsh Removing most of the junk in DotNETUtilities. Change 3409701 on 2017/04/26 by Ben.Marsh Disable another static analyzer warning for third party libraries. Change 3410074 on 2017/04/26 by Daniel.Lamb Network platform file runs heart beats and responds to modified file changes. Cook on the fly server in the editor (COTS) now detects changes to content and notifies client. Fixed issue with network platform file not using correct sandbox. #test cook on the side shootergame Change 3411131 on 2017/04/27 by Steve.Robb TIsTriviallyDestructible now supports forward-declared enums. Change 3411186 on 2017/04/27 by Steve.Robb Fix for #includes in generated code for Within classes which are in a different module from the generated class. Change 3411917 on 2017/04/27 by Steve.Robb Fixes to pushing/popping the CPP macro. Change 3411966 on 2017/04/27 by Steve.Robb Include spam reduced in generated code. Change 3412155 on 2017/04/27 by Ben.Marsh Fix for PVS Studio warning: VFOVInRadians used instead of HFOVInRadians. Change 3412223 on 2017/04/27 by Ben.Marsh Fix for PVS-Studio warning: Calling SetHelperA.Num() twice. Change 3412273 on 2017/04/27 by Ben.Marsh Fix for PVS-Studio warning: Duplicated variable name. Change 3412511 on 2017/04/27 by Ben.Marsh PR #3462: Fixed PVS-Studio issues (Part 1) (Contributed by PaulEremeeff) Change 3412582 on 2017/04/27 by Ben.Marsh Fix for PVS-Studio warning: Incorrect variable name in copy/pasted code Change 3413136 on 2017/04/28 by Robert.Manuszewski Helper functions for dissolving specific GC clusters Change 3413310 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Incorrect variable name in copy/pasted code. Change 3413341 on 2017/04/28 by Gil.Gribb UE4 - Add prestream capability to allow us to preload always loaded sublevels. Only turned on for Shootergame. Change 3413351 on 2017/04/28 by Ben.Marsh Include code analysis macros directly from Platform.h, so that macros are available to everything. Change 3413352 on 2017/04/28 by Ben.Marsh Fixing a few more PVS studio warnings. Change 3413437 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Comparison is always true. Change 3413759 on 2017/04/28 by Ben.Marsh Suppressing warnings for PVS-Studio. Change 3413784 on 2017/04/28 by Ben.Marsh Fix PVS-Studio warning. Change 3413898 on 2017/04/28 by Ben.Marsh Fix PVS-Studio warning: Same conditional is checked twice. Change 3413915 on 2017/04/28 by Ben.Marsh Fix PVS-Studio warning: LHS of expression is identical to RHS. Change 3413989 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: If CurrentGraph->SubGraphs.Num() == 1, it will always enter the first conditional block. Change 3414053 on 2017/04/28 by Ben.Marsh More PVS-Studio fixes. Change 3414062 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Pointer to object goes out of scope without being freed. Change 3414070 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Fix incorrect condition. Change 3414071 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Array index is always zero. Change 3414116 on 2017/04/28 by Ben.Marsh BuildGraph: Allow marking compile tasks as unsuitable for use with the parallel executor, via an AllowParallelExecutor="false" attribute. Change 3414160 on 2017/04/28 by Ben.Marsh Add support for running PVS-Studio through UnrealBuildTool. To use, pass -StaticAnalyzer=PVSStudio to the build command line (similarly, the Visual C++ analyzer can now be invoked using -StaticAnalyzer=VisualCpp). A log file will be written to the Engine/Saved/PVS-Studio or <Project>/Saved/PVS-Studio directory containing diagnostics, which can be opened using the "unparsed output" filter in the PVS-Studio standalone application. High priority warnings are printed to stdout. Change 3414237 on 2017/04/28 by Ben.Marsh EC: Allow disabling and enabling the log preprocessor via special markers in the log. To disable: <-- Suspend Log Parsing --> To enable: <-- Resume Log Parsing --> Change 3414343 on 2017/04/28 by Ben.Marsh UBT: Exclude ThirdParty folders from PVS output. Change 3414392 on 2017/04/28 by Ben.Marsh Fix regular strings being casted to BSTRs; BSTRs have a hidden length prefix in the two bytes before the first character, so passing a regular TCHAR* is reading random memory. Change 3414459 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Object goes out of scope without being freed. Change 3414495 on 2017/04/28 by Ben.Marsh Suppress some more PVS-Studio warnings. Change 3414514 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Testing WorldType being equal to EditorPreview and not equal to Inactive is redundant; changing to match description in comment instead. Change 3414526 on 2017/04/28 by Ben.Marsh Fix for PVS-Studio warning: Variable assigned to itself has no effect. Change 3415183 on 2017/04/29 by Ben.Marsh Fix conflict in macro definitions for ENABLE_HTTP_FOR_NFS - rename the macro defined by NetworkFile to ENABLE_HTTP_FOR_NF. Hopefully fix CIS. Change 3415765 on 2017/05/01 by Ben.Marsh Suppressing PVS-Studio warning to get things building cleanly. Not sure if FContentHelper is being leaked or not. Change 3415853 on 2017/05/01 by Ben.Marsh EC: Fix jobs never completing if a "Sync & Build" step fails. Dependent jobs should evaluate their run conditions as soon as the parent step finishes, rather than waiting for child job steps to be created. Change 3416138 on 2017/05/01 by Ben.Marsh Fix Fortnite cook failures. Not sure what the exact problem is here, but my hunch is that discarded "const" causes blueprint compile failures due to not being able to connect output pins between nodes for overloaded functions, or something like that. Change 3416309 on 2017/05/01 by Ben.Marsh Build: Fix node names for static analysis. Change 3416360 on 2017/05/01 by Ben.Marsh UBT: Remove unused arguments to PrepForUATPackageOrDeploy for Windows. Change 3416398 on 2017/05/01 by Daniel.Lamb Cook on the fly NetworkFileServerConnection Remove FileModifiedCallback delegate when the connection is closed. #test Cook on the side shootergame. Change 3416826 on 2017/05/01 by Daniel.Lamb Added callback to game when files are requested reload from networkfileserver. Game will need to unload / reload effected objects. Working on simple reload capability in shootergame. #test Cook on the side shootergame with reloading Change 3417983 on 2017/05/02 by Ben.Marsh EC: Remove warning for lines not matching p4 tag syntax when running preflights; multi-line descriptions in shelved changelists break this pattern. Change 3418747 on 2017/05/02 by Steve.Robb Fix for const pointer properties. Fix for UHT debugging manifest. Test added for pointer properties. Change 3420477 on 2017/05/03 by Gil.Gribb UE4 - Removed check from windows async IO layer. [CL 3421020 by Ben Marsh in Main branch]
2017-05-03 14:18:32 -04:00
virtual ~FHeaderParser()
{
if ( FScriptLocation::Compiler == this )
{
FScriptLocation::Compiler = NULL;
}
}
// Returns true if the token is a dynamic delegate declaration
bool IsValidDelegateDeclaration(const FToken& Token) const;
// Returns true if the current token is a bitfield type
bool IsBitfieldProperty();
// Parse the parameter list of a function or delegate declaration
void ParseParameterList(FClasses& AllClasses, UFunction* Function, bool bExpectCommaBeforeName = false, TMap<FName, FString>* MetaData = NULL);
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3582324) #lockdown Nick.Penwarden #rb none #rnx ============================ MAJOR FEATURES & CHANGES ============================ Change 3431439 by Marc.Audy Editor only subobjects shouldn't exist in PIE world #jira UE-43186 Change 3457323 by Marc.Audy Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world #jira UE-45087 Change 3499927 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker #jira UE-43458 Change 3502939 by Michael.Noland Back out changelist 3499927 Change 3522783 by Zak.Middleton #ue4 - Imported new simple collision for Engine/Content/BasicShaps/Cylinder.uasset which is a single convex shape (rather than being 4 shapes as before). Change 3544641 by Dan.Oconnor Remove conditional that is no longer needed, replace with ensure. It is unsafe to change CDO names #jira OR-38176 Change 3544645 by Dan.Oconnor In addition to marking nodes as not transient, FBlueprintEditor::ExpandNode needs to mark them as transactional #jira UE-45248 Change 3545023 by Marc.Audy Properly encapsulate FPinDeletionQueue Fix ensure during deletion of split pins when not clearing links Fix split pins able to end up in delete queue twice during undo/redo Change 3545025 by Marc.Audy Properly allow changing the pin type from a struct that is split on the node #jira UE-47328 Change 3545455 by Ben.Zeigler Fix issue where combined streamable handles could be freed before their complete callback is called if nothing external referenced them Copy of CL#3544474 Change 3545456 by Ben.Zeigler Allow PrimaryAssets to update their AssetData based on in-memory changes when launching 'Standalone Game' and 'Mobile Preview' from the editor. As it was, changes could be detected and propagated through UPrimaryDataAsset::PostLoad, but the changes would always reapply whatever already exists in the AssetRegistry. The primary use-case for this: making AssetBundle tag changes and allowing them to propagate without resaving/recooking all affected assets. Copy of CL #3544374 Change 3545547 by Ben.Zeigler CIS Fix Change 3545568 by Michael.Noland PR #3758: Fixing a comment typo from Transistion to Transition (Contributed by gsfreema) #jira UE-46845 Change 3545582 by Michael.Noland Blueprints: Prevent duplicate messages from being added to the compiler results log (fixes a crash when resizing the results log while a math expression node has an error) Blueprints: Fixed the tooltip of math expression nodes not showing up, and error messages getting cleared on subsequent compiles [Duplicating fixes for UE-47491 and UE-47512 from 4.17 to Dev-Framework] Change 3546528 by Ben.Zeigler #jira UE-47548 Fix crash when a map's key type has changed but value has not, it was passing the UStruct defaults in when serialize was expecting the default instance, so pass null instead as we don't have the instance Change 3546544 by Marc.Audy Fix split pin restoration logic to deal with wildcards and variations in const/refness Change 3546551 by Marc.Audy Don't crash if the struct type is missing for whatever reason Change 3547152 by Marc.Audy Fix array exporting so you don't end up getting none instead of defaults #jira UE-47320 Change 3547438 by Marc.Audy Fix split pins on class defaults Don't cause a structural change when reapplying a split pin as part of node reconstruction #jira UE-46935 Change 3547501 by Ben.Zeigler Fix ensure, it's valid to pass a null path for a dynamic asset Change 3551185 by Ben.Zeigler #jira UE-42835 Fix it so SoftObjectPaths work correctly when inside levels loaded for the first time from PIE. Added code to do in-place PIE fixup for levels that are loaded instead of duplicated, and changed the fixup logic to fix all level references, not just ones being explicitly duplicated Change 3551723 by Ben.Zeigler Improve UI for displaying actor soft references. Add an error/warning icon if the cross level reference is broken or unloaded, and fix various display and copy/paste behaviors Change 3553216 by Phillip.Kavan #jira UE-39303, UE-46268, UE-47519 - Nativized UDS now support external asset dependencies and will construct their own linker import tables on load. Change summary: - Modified FCompactBlueprintDependencyData and FFakeImportTableHelper to be more relevant to UStruct and not just UClass-derivative types. - Modified FBlueprintDependencyData to accept a single FCompactBlueprintDependencyData struct rather than its individual fields. - Modified FBlueprintCompilerCppBackendBase::GenerateCodeFromStruct() to emit dependency assignment and static type registration functions for nativized UStruct types. - Modified FBlueprintNativeCodeGenModule::FStatePerPlatform to include an array for tracking UDS assets that need to be converted during the nativization pass at cook time. - Modified FBlueprintNativeCodeGenModule::GenerateFullyConvertedClasses() to generate nativized code for UDS assets. This ensures that UDS conversion falls under the same scope as BPGC conversion, so that they both feed into the same NativizationSummary context for asset dependency tracking (i.e. since we only have a single global dependency table in the codegen). Also modified InitializeForRerunDebugOnly() to do the same. - Modified FBlueprintNativeCodeGenModule::Convert() to defer UDS conversion so that it's done at the same time as BPGC conversion (see note above). - Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to include support for UStruct types and to conform to changes made to FCompactBlueprintDependencyData. - Modified FEmitDefaultValueHelper::AddRegisterHelper() to include support for UStruct types. - Modified FBlueprintNativeCodeGenModule::FindReplacedClassForObject() to ensure that converted User-Defined Enum types are switched to a UEnumProperty at package save time so that any import tables contain the proper class. This is necessary because we nativize User-Defined Enum types as 'enum class' types, and UHT will generate code for those as a UEnumProperty with an "underlying" property. However, non-nativized User-Defined Enum types are referenced as a UByteProperty with a UEnum reference, so we have to fix up all the import tables before saving. Otherwise, EDL will assert on load (see UE-47519). Change 3553301 by Ben.Zeigler Fix ensure when passing literal None to SoftObjectPath, it now treats them as empty instead Change 3553631 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker. This change was originally submitted in 3499927, but it was incorrectly clearing the UField::Next pointer in UField::Serialize. #jira UE-43458 Change 3553799 by Ben.Zeigler Fix issue where calling WaitUntilComplete on a combined handle with Stalled children wouldn't work properly. It now forces all stalled children to start immediately. I also added a warning log when this happens and an ensure if somehow the force didn't work Copy of CL #3553781 Change 3553896 by Michael.Noland Blueprints: Allow the autowiring logic to better break and replace existing connections when made (e.g., when dragging a variable onto a compatible pin with an existing connection, break the old connection to allow the new connection to be made) #jira UE-31031 Change 3553897 by Michael.Noland Blueprints: Adjust search query when doing 'Find References' on variables from My Blueprints so that bound event nodes show up for components and widgets #jira UE-37862 Change 3553898 by Michael.Noland Blueprints: Add the name of the variable directly in the get/set menu options (when dragging from My Blueprints into the graph) Change 3553909 by Michael.Noland Blueprints: Added the full name of the type, container type (and value type for maps) to the tooltips for the type picker elements, so long names can be read in full #jira UE-19710 Change 3554517 by Michael.Noland Blueprints: Added an option to disable the comment bubble on comment boxes that appears when zoomed out #jira UE-21810 Change 3554664 by Michael.Noland Editor: Renamed "Find in CB" command to "Browse" and renamed "Search" (in BP) to "Find", so terminology is consistent and keyboard shortcuts make sense (Ctrl+B for Browse, Ctrl+F for find, not using the term Search anywhere) #jira UE-27121 Change 3554831 by Dan.Oconnor Non editor build fix Change 3554834 by Dan.Oconnor Actor bound event related warnings now show up in blueprint status when opening level blueprint for first time, improved warning message. Removed unused delegate and return value from FixLevelScriptActorBindings. Can now pass raw strings to blueprint results log (no need for Printf, although padding is not great), UClasses in compiler results log will open the generated blueprint when clicked on #jira UE-40438 Change 3556157 by Ben.Zeigler Convert LevelSequenceBindingReference to use FSoftObjectPath so it works properly with redirectors and fixups Change 3557775 by Michael.Noland Blueprints: Fixed swapped transaction messages when converting a cast node between pure and impure #jira UE-36090 Change 3557777 by Michael.Noland Blueprints: Allow 'Goto Definition' and 'Find References' to be used while stopped at a breakpoint PR #3774: Expose GotoFunctionDefinition during BP debugging (Contributed by projectgheist) #jira UE-47024 Change 3560510 by Michael.Noland Blueprints: Add support for 'goto definition' on Create Event nodes when the Object pin is not hooked up #jira UE-38912 Change 3560563 by Michael.Noland Blueprints: Disallow converting a variable get node to impure/back when debugging (no graph mutating operations should be allowed) Change 3561443 by Ben.Zeigler Restore code to support gc.DumpPoolStats, was accidentally removed when FGCArrayPool was moved to a header. Clean up comments around Cleanup function, the functionality to trim the memory pools was integrated into ClearWeakReferences on a prior change Change 3561658 by Michael.Noland Blueprints: Refactored 'Goto Definition' so there is no per-class logic in the Blueprint editor or schema any more; any node can opt in individually - Added a key binding for Goto Definition (Alt+G) - Added a key binding for Find References (Shift+Alt+F) - Collapsed 'Goto Code Definition' for variables and functions into the same path, so there aren't separate menu items and commands - Added new methods CanJumpToDefinition and JumpToDefinition to UEdGraphNode, the default behavior for UK2Node subclasses is to call GetJumpTargetForDoubleClick and call into FKismetEditorUtilities::BringKismetToFocusAttentionOnObject - Going to a native function now goes thru a better code path that will actually put the source code editor on the function definition, rather than just opening the file containing the definition Change 3562291 by Ben.Zeigler Fix issue where calling FSoftObjectPtr::Get during a package save would result in that ptr being forever marked broken, because the ResolveObject fails during save. It's too risky to change that behavior, so change it so the TagAtLastTest doesn't get updated in that case Change 3562292 by Ben.Zeigler #jira UE-39042 When renaming or moving actors between levels it now attempts to fix any soft object references from blueprints or sequencer When deleting actors that are soft referenced by actor/sequencer it will now warn the same way it does for level script. Added IAssetTools::FindSoftReferencesToObject to perform this search Change it so saving a non-primary world does not result it being dirtied due to the temporary physics scene fixup Fix issue where the actor name was shown incorrectly in the SSCS tree for actor instances, which meant that if you renamed it you would end up renaming it to the BP's name Change 3564814 by Ben.Zeigler #jira UE-47843 Don't set InputKey output pins to AnyKey if empty, this was causing blueprints with key events to constantly dirty themselves Change 3566707 by Dan.Oconnor Remove unused code, UClassGenerateCDODuplicatesForHotReload was attempting to create a CDO with a special name, which triggered an ensure. The Duplicated CDO was never used (callign code removed in 3289276 as it was a waste of cycles) #jira None Change 3566717 by Michael.Noland Core: Remove all defintions that contain "_API" from the command line when compiling .rc files (they do not support repsonse files and a too-long command line will fail the compile) Change 3566771 by Michael.Noland Editor: Fixing deprecation warning #jira UE-47922 Change 3567023 by Michael.Noland Blueprints: Change various TArray<> uses to TSet<> throughout name validation and related code to enable it to scale better to high component or variable counts Adapted from PR #3708: Fast construction of bp (Contributed by gildor2) #jira UE-46473 Change 3567304 by Ben.Zeigler Add bCheckRecursive option to IsEditorOnlyObject that is enabled by default and will check outer/archetype/class. This is needed for places that call this function from outside of SavePackage.cpp when the editor only mark is set, such as the automation test code Change 3567398 by Ben.Zeigler Fix crash when spawning a widget that has no editor WidgetTree, but does have a cooked widget tree template due to tree inheritance Change 3567729 by Michael.Noland Blueprints: Clarified message about "{VariableName} is not blueprint visible" to define what that means "(BlueprintReadOnly or BlueprintReadWrite)" Change 3567739 by Ben.Zeigler Don't crash if PropertyStruct cannot find it's struct. The function half handled this before, but Preload crashes with a null parameter Change 3567741 by Ben.Zeigler Disable optimization for a path test that was crashing in VC2015 in a monolithic build Change 3568332 by Mieszko.Zielinski Prevented UAIPerceptionSystem::GetCurrent causing a BP error when WorldContextObject is null #UE4 #jira UE-47948 Change 3568676 by Michael.Noland Blueprints: Allow editing the tooltip of each enum value in a user defined enum #jira UE-20036 Known issue: Undo/redo is not currently possible on the tooltip as it is directly stored in package metadata Change 3569128 by Michael.Noland Blueprints: Removing the experimental profiler as we won't be returning to it any time soon #jira UE-46852 Change 3569207 by Michael.Noland Blueprints: Allow drag-dropping component Blueprint assets into the graph to create Add Component nodes and improved the error message when dragging something that cannot be dropped into an actor Blueprint #jira UE-8708 Change 3569208 by Michael.Noland Blueprints: Allow specifying a description for user defined enums (shown in the content browser) #jira UE-20036 Change 3569209 by Michael.Noland Editor: Allow adjusting the font size for each individual comment box node in Blueprints and Materials #jira UE-16085 Change 3570177 by Michael.Noland Blueprints: Fixed discrepancy between the Structure tab name and the menu option for the tab in the user defined structure editor (now both say Structure Editor) #jira UE-47962 Change 3570179 by Michael.Noland Blueprints: Fixed the tooltip of a user defined structure not updating immediately in the content browser after being edited Change 3570192 by Michael.Noland Blueprints: Added "(selected)" after the label (in the 'debug filter' dropdown in the Blueprint editor) for actors that are selected in the level editor, which should make it easier to choose the specific actor you want to debug #jira UE-20709 Change 3571203 by Michael.Noland Blueprints: Cleanup and refactoring to prepare for turning commented out nodes into an official feature - Made EnabledState and bUserSetEnabledState private on UEdGraphNode and added new getters/setters - Introduced IsAutomaticallyPlacedGhostNode() and MakeAutomaticallyPlacedGhostNode() to start decoupling the concept from commented out nodes - Updated a couple of places that used a hardcoded UberGraphPages[0] into instead editing the most recently interacted with event graph if possible - Updated 'is data only blueprint' logic to allow multiple ubergraph pages, as long as they're all empty of non-disabled nodes Change 3571224 by Michael.Noland Blueprints: Draw banners on development-only and user disabled nodes (excluding 'ghost' nodes like autogenerated event entries in new BPs) Adapted from PR #2701: Differentiate development nodes in BP (Contributed by projectgheist) #jira UE-29848 #jira UE-34698 Change 3571279 by Michael.Noland Blueprints: Changed UK2Node::GetPassThroughPin so that only the execution wire on nodes with exactly one input and one output exec wire will have a corresponding pass-through pin (when there is ambiguity in which exec would be used, e.g., with a branch or sequence or timeline node, the subsequent nodes are now effectively disabled as well) Change 3571282 by Michael.Noland Blueprints: Fixed the tooltip for dragging a variable onto an inherited category not showing the 'move to category' hint Change 3571284 by Michael.Noland Blueprints: Made wires into/out of a user-disabled node draw verly dimly (other than the passthrough exec if it exists) Change 3571311 by Ben.Zeigler Add ActorIteratorFlags which allows overriding which types of actors/levels are iterated by ActorIterator, to allow iterating levels that are not visible. All of the iteration logic is now in the base and the children just set different flags, which fixes it so TActorIterator does the same level collection check as FActorIterator Change 3571313 by Ben.Zeigler Several fixes to automation framework to allow it to work better with Cooked builds. Change it so the automation test list is a single message. There is no guarantee on order of message packets, so several tests were being missed each time. Change 3571485 by mason.seay Test map for Make Set bug Change 3571501 by Ben.Zeigler Accidentally undid the UHT fixup for TAssetPtr during my bulk rename Change 3571531 by Ben.Zeigler Fix warning messages Change 3571591 by Michael.Noland Blueprints: Made drag-dropping assets into a graph to create a component transactional (allowing the action to be undone) #jira UE-48024 Change 3572938 by Michael.Noland Blueprints: Fixed a typo in a set function comment #jira UE-48036 Change 3572941 by Michael.Noland Blueprints: Made the compact node title for cross and dot product the words cross and dot rather than hard to see . and x symbols #jira UE-38624 Change 3574816 by mason.seay Renamed asset to better reflect name of object reference Change 3574985 by mason.seay Updated comments and string outputs to list Soft Object Reference Change 3575740 by Ben.Zeigler #jira UE-48061 Change it so Editor builds work like cooked builds and always try to reuse existing packages when loading them instead of recreating them in place. Recreating in place does not work well for levels and blueprints, and blueprints already had a hack that was causing this behavior to not activate Change 3575795 by Ben.Zeigler #jira UE-48118 Call into the AssetManager as part of the DistillPackages commandlet. This makes sure that ShooterGame and EngineTest end up with the correct content in launcher builds Change 3576374 by mason.seay Forgot to submit the deleting of a redirector Change 3576966 by Ben.Zeigler #jira UE-48153 Fix issue where actors in streaming levels weren't properly replicating in PIE. It now does the remap path on both send and receive for the manual PC level streaming commands Change 3577002 by Marc.Audy Prevent wildcard pins from being connected to exec pins #jira UE-48148 Change 3577232 by Phillip.Kavan #jira UE-48034 - Fix EDL assert on load caused by a native reference to a nativized BP class that also references a nativized UDS asset. Change summary: - Modified FNativeClassHeaderGenerator::ExportGeneratedStructBodyMacros() to emit the 'ReplaceConverted' package name for the FCompiledInDeferStruct global associated with the nativized UDS asset in the UHT codegen. This brings nativized UDS to parity with nativized BP class assets (it was likely just an oversight initially). Change 3577710 by Dan.Oconnor Mirror of 3576977: Fix for crash when loading cooked uassets that reference functions that are not present #jira UE-47644 Change 3577723 by Dan.Oconnor Prevent deferring of classes that are needed to load subobjects #jira UE-47726 Change 3577741 by Dan.Oconnor Back out changelist 3577723 - causes crash when starting QAGame in Dev-Framework - not in Release-4.17 Change 3578938 by Ben.Zeigler #jira UE-27124 Fix issue where renaming a map with legacy map build data would end up with a half-loaded redirector package, becuase the old map build data was still in use. It's possible the call to HandleLegacyMapBuildData should just be in World PostLoad instead of piecemeal in several other places but I am unsure. Fix it so the redirector cleanup code on map change will not be stopped by non-standalone top level objects, which could be left behind by issues in other systems Change 3578947 by Marc.Audy (4.17) Properly expose members of DialogueContext to blueprints #jira UE-48175 Change 3578952 by Ben.Zeigler Fix ensure where ParentHandles on a StreamableHandle could be modified while iterating Change 3579315 by mason.seay Test map for Make Container nodes Change 3579600 by Ben.Zeigler Disable window test on non-desktop platforms as they cannot be resized post launch Change 3579601 by Ben.Zeigler #jira UE-48236 Disable optimizations on PS4 for certain math tests pending fixing of platform issue Change 3579713 by Dan.Oconnor Prevent crashes when bluepints implement an interface that was deleted #jira UE-48223 Change 3579719 by Dan.Oconnor Fix two compilation manager issues: Make sure CDOs are not renamed under a UClass, because they will be considered as possible subobjects, which has bad side effects and make sure that we update references even on empty functions, so that empty UFunctions are not left with references to REINST data #jira UE-48240 Change 3579745 by Michael.Noland Blueprints: Improve categorization and reordering support in 'My Blueprints' - Allow drag-dropping functions, macros, delegates, etc... to reorder them within a category or to change categories (bringing them to parity with variables) - Make category ordering on all categories sticky so you can reorder categories (the relative ordering will be the same within different sections like variables and functions) - Added hover cues when drag dropping some items that were missing them (e.g., event dispatchers) - Added support for renaming categories using F2 Known issues (none are regressions): - Timelines cannot be moved to other categories or reordered - Renaming a nested category will result in it becoming a top level category (discarding the parent category chain) - Some actions do not support undo #jira UE-31557 Change 3579795 by Michael.Noland PR #3867: Fix for not releasing Local Notification Delegate. (Contributed by enginevividgames) #jira UE-48105 Change 3580463 by Marc.Audy (4.17) Don't crash if calling PostEditUndo on an Actor in the transient package #jira UE-47523 Change 3581073 by Marc.Audy Make UK2Node_SpawnActorFromClass inherit from K2Node_ConstructObjectFromClass and eliminate duplicate code. Correctly reconnect split pins when changing class on create widget, construct object, and spawn actor nodes Change 3581156 by Ben.Zeigler #jira UE-48161 Fix issue where split pins would not be restored if a Struct type was changed due to refactoring of parent variables/functions. For structs we want to copy the pins, if they're invalid due to other changes they will be individual orphaned Also fix bug where the category of parent pins was being set incorrectly while changing variable type, we only want to override type for wildcard pins Change 3581473 by Ben.Zeigler Properly turn off optimization for PS4 test Change 3582094 by Marc.Audy Fix anim nodes not navigating to their graph on double click #jira UE-48333 Change 3582157 by Marc.Audy Fix double-clicking on animation asset nodes not opening the asset editors Change 3582289 by Marc.Audy (4.17) Don't crash when adding a streaming level that's already in the level #jira UE-48928 Change 3545435 by Ben.Zeigler #jira UE-47509 Rename and refactor internals StringAssetReferences and AssetPtrs to become SoftObjectPath/Ptr. This is to prepare them for use for subobjects like actors. Here is the rename table: FStringAssetReference -> FSoftObjectPath FStringClassReference -> FSoftClassPath TAssetPtr -> TSoftObjectPtr TAssetSubclassOf -> TSoftClassPtr The old headers are deprecated, and FSoftClassPath is now in the same header has FSoftObjectPath. This change increments the UE4 version because FSoftObjectPaths are now stored as a name + substring instead of one giant name, which in practice will improve performance and memory while manipulating them. Also the package table of soft referenced packages is now stored as FNames instead of FStrings as these packages names will already be in the name table due to the AssetRegistry Remove automatic support for loading Objectpaths starting with engine-ini:, as it was only partially supported and is very outdated. ResolveIniObjectsReference can still be called manually Changed TPersistentObjectPtr and TLazyObjectPtr to be structs instead of classes Change UnrealHeaderTool to read configuration such as StructsWithNoPrefix out of inis instead of using a hardcoded list. Add support for TypeRedirects, which is used to make the old type names automatically remap to the new ones Clean up FRedirectCollector to remove some of the functionality that is no longer used by the cooker, and disable tracking of redirects in standalone -game builds Change 3567760 by Ben.Zeigler Fix it so EngineTest can be cooked by moving some utility functions to EditorTestsUtilityLibrary and adding an EditorFunctionalTest. The core EngineTest module is safely runtime-only now and can run it's tests locally in windows cooked Merge FuncTestManager into FunctionalTestModule to avoid confusion with FunctionalTestingManager UObject Add EngineTestAssetManager and override the cook function to cook all maps with runtime functional tests Change actor merging tests to be editor only, this stops them from cooking Several individual tests crash on cooked builds, I started threads with the owners of those Change 3575737 by Ben.Zeigler #jira UE-48042 Change it so playing via PIE Standalone, multiprocess networked PIE and external cook launch on does not save temporary levels to UEDPC and instead prompts the user to save. This is how launch on works by default already, and this fixes cross level references/sequencer. The UEDPC code has been removed entirely. As part of this change, connecting a -game client to a PIE server and vice versa is much more likely to work. You may still have game-side problems, look at UEditorEngine::NetworkRemapPath for an example of how to do the PIE prefix conversion Remove advanced CreateTemporaryCopiesOfLevels option from sequencer capture, it has not been tested in multiple years and does not work with newer sequencer features #jira UE-27124 Fix several possible crashes with changing levels while in PIE Change 3578806 by Marc.Audy Fix Construct Object not working correctly with split pins. Add Construct Object test cases to functional tests. Added split pin expose on spawn test cases. #jira UE-33924 [CL 3582334 by Marc Audy in Main branch]
2017-08-11 12:43:42 -04:00
// Modify token to fix redirected types if needed
void RedirectTypeIdentifier(FToken& Token) const;
public:
// Throws if a specifier value wasn't provided
static void RequireSpecifierValue(const FPropertySpecifier& Specifier, bool bRequireExactlyOne = false);
static FString RequireExactlyOneSpecifierValue(const FPropertySpecifier& Specifier);
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3967517) #rb none #lockdown Nick.Penwarden #rnx ============================ MAJOR FEATURES & CHANGES ============================ Change 3804281 by Fred.Kimberley Improve contrast on watches in blueprints. Change 3804322 by Fred.Kimberley First pass at adding a watch window for blueprint debugging. Change 3804737 by mason.seay Added some Descriptions to tests that didn't have any, and fixed some typos Change 3806103 by mason.seay Moved and Renamed Timers test map and content appropriately Change 3806164 by Fred.Kimberley Add missing property types to GetDebugInfoInternal. #jira UE-53355 Change 3806617 by Dan.Oconnor Function Terminator (and derived types) now use FMemberReference instead of a UClass/FName pair. This fixes various bugs when resolving the UFunction referenced by the function terminator #jira UE-31754, UE-42431, UE-53315, UE-53172 Change 3808541 by Fred.Kimberley Add support for redirecting user defined enums. This is in response to the following UDN thread: https://udn.unrealengine.com/questions/404141/is-is-possible-to-create-a-redirector-from-a-bluep.html Change 3808565 by mason.seay Added a few more struct tests Change 3809840 by mason.seay Renamed CharacterMovement.umap to CharacterCollision. Fixed up content to reflect this change. Change 3809847 by mason.seay Added Object Timer tests. Fixed up existing timer test to remove delay dependency Change 3811704 by Ben.Zeigler Fix issue where identical enum redirects registered to different initial names would throw an incorrect error, it's fine if the value change maps are identical Change 3811946 by Ben.Zeigler #jira UE-53511 Fix it so it is possible to set a user defined struct value back to it's default. The UDS hack in PropertyValueToString is no longer needed, but this could affect some other user struct editor operations Change 3812061 by Dan.Oconnor Stepping over or in to nodes that are expanded at compile time (e.g. event nodes, spawn actor nodes) no longer requires multiple 'steps' #jira UE-52854 Change 3812259 by Dan.Oconnor Fix asset broken by removal of an unkown enum #jira UE-51419 Change 3812904 by Ben.Zeigler Make ResolveRedirects on StreamableManager public as it can be used to validate things Change 3812958 by Ben.Zeigler #jira UE-52977 Fix crashes when binding blueprint editor commands to keys and using from invalid contexts Change 3812975 by Mieszko.Zielinski Added contraptions to catch a rare eidtor-time EQS crash #UE4 #jira UE-53468 Change 3818530 by Phillip.Kavan Fix incorrect access to nested instanced subobjects in nativized Blueprint ctor codegen. Change summary: - Modified FEmitDefaultValueHelper::HandleInstancedSubobject() to properly reference the outer and check ptr validity when creating/obtaining nested default subobjects. - Modified FEmitDefaultValueHelper::HandleClassSubobject() to better guard against code generation based on an invalid local variable name. #jira UE-52167 Change 3819733 by Mieszko.Zielinski Marked UAISenseConfig_Blueprint and UAISense_Blueprint as hidedropdown #UE4 #jira UE-15089 Change 3821776 by Marc.Audy Remove redundent code in SpawnActorFromClass that already exists in ConstructObjectFromClass parent class Change 3823851 by mason.seay Moved and renamed blueprints used for Object Reference testing Change 3824165 by Phillip.Kavan Ensure that subobject class types are constructed prior to accessing a subobject CDO in a nativized Blueprint class's generated ctor at runtime. Change summary: - Modified FFakeImportTableHelper to tag subobject class types as a preload dependency of the outer converted Blueprint class type and not of the CDO. #jira UE-53111 Change 3830309 by mason.seay Created Literal Gameplay Tag Container test Change 3830562 by Phillip.Kavan Blueprint nativization bug fixes (reviewed/taken from PR). Change summary: - Modified FSafeContextScopedEmitter::ValidationChain() to ensure that generated code calls the global IsValid() utility function on objects. - Modified FBlueprintCompilerCppBackend::EmitCreateArrayStatement() to generate a proper cast on MakeArray node inputs for enum class types. - Modified FBlueprintCompilerCppBackend::EnimCallStatementInner() to more correctly identify an interface function call site. - Modified FEmitHelper::GenerateAutomaticCast() to properly handle automatic casts of enum arrays. - (Modified from PR source) Added new FComponentDataUtils statics to consolidate custom init code generation for converted special-case component types (e.g. BodyInstance). Ties native component DSOs to the same pre/post as converted non-native component templates around the OuterGenerate() loop. - Modified FExposeOnSpawnValidator::IsSupported() to include CPT_SoftObjectReference property types. - Modified UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides() to no longer break out of the loop before finding additional ICH override record matches. #4202 #jira UE-52188 Change 3830579 by Fred.Kimberley Add support for turning off multiple watches at once in the watch window. #jira UE-53852 Change 3836047 by Zak.Middleton #ue4 - Dev test maps for overlaps perf tests. Change 3836768 by Phillip.Kavan Fix for a build failure that could occur with Blueprint nativization enabled and EDL disabled. This was a regression introduced in 4.18. Change summary: - Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to emit the correct signature for constructing FBlueprintDependencyData elements when the EDL boot time optimization is disabled. #jira UE-53908 Change 3838085 by mason.seay Functional tests around basic blueprint functions Change 3840489 by Ben.Zeigler #jira UE-31662 Fix regression with renaming parent inherited function. It was not correctly searching the parent's skeleton class during the child's recompile so it was erroneously detecting the parent function as missing Change 3840648 by mason.seay Updated Descriptions on tests Change 3842914 by Ben.Zeigler Improve comments around stremable handle cancel/release Change 3850413 by Ben.Zeigler Fix asset registry memory reporting, track some newer fields and correctly report the state size instead of static size twice Copy of CL #3849610 Change 3850426 by Ben.Zeigler Reduce asset registry memory in cooked build by stripping out searchable names and empty dependency nodes by default Add option to strip dependency data for asset data with no tags, this was always true before but isn't necessarily safe Copy of CL #3850389 Change 3853449 by Phillip.Kavan Fix a scoping issue for local instanced subobject references in nativized Blueprint C++ code. Also, don't emit redundant assignment statements for instanced subobject reference properties. Change summary: - Consolidated FComponentDataUtils into FDefaultSubobjectData and extended FNonativeComponentData from it in order to handle both native & non-native DSO initialization codegen through a more common interface. - Exposed FEmitDefaultValueHelper::HandleInstancedSubobject() as a public API and added a 'SubobjectData' parameter to allow initialization codegen to be deferred until after all default subobjects have been mapped to local variables within the current scope. - Modified FEmitDefaultValueHelper::GenerateConstructor() to first map all default subobjects to local variables and then emit any delta initialization code for property values. - Modified FEmitDefaultValueHelper::HandleSpecialTypes() to return an empty string for an instanced reference to a default subobject. This allows us to avoid emitting initialization statements to unnecessarily reassign instances back to the same property. - Modified FEmitDefaultValueHelper::InnerGenerate() to better handle instanced references to default subobjects, ensuring that we don't emit unnecessary assignment statements and array initialization code to the converted class constructor in C++. - Fixed a few typos. #jira UE-53960 Change 3853465 by Phillip.Kavan Fix plugin module C++ source template to conform to recent public include path changes. Change 3857599 by Marc.Audy PR #4438: UE-54281: Make None a valid default value to select (Contributed by projectgheist) #jira UE-54281 #jira UE-54399 Change 3863259 by Zak.Middleton #ue4 - Save bandwidth for replicated characters by only replicating 4 byte timestamp value to clients if it's actually needed for Linear smoothing. Added option to always replicate the timestamp ("bNetworkAlwaysReplicateTransformUpdateTimestamp", default off), in case users still want this timestamp for some reason, or if smoothing mode changes dynamically and the server won't know. #jira UE-46293 Change 3863491 by Zak.Middleton #ue4 - Reduce network RPC overhead for players that are not moving. Added ClientNetSendMoveDeltaTimeStationary (default 12Hz) to supplement existing ClientNetSendMoveDeltaTime and ClientNetSendMoveDeltaTimeThrottled. UCharacterMovementComponent::GetClientNetSendDeltaTime() now uses this time if Acceleration and Velocity are zero, and the control rotation matches the last ack'd control rotation from the server. Also fixed up code default for ClientNetSendMoveDeltaTime to match default INI value. #jira UE-21264 Change 3865325 by Zak.Middleton #ue4 - Fix static analysis warning about possible null PC pointer. #jira none Change 3869828 by Ben.Zeigler #jira UE-54786 Fix it so -cookonthefly cooperates with -iterate by writing out a development asset registry Change 3869969 by mason.seay Character Movement Functional Tests Change 3870099 by Mason.Seay Submitted asset deletes Change 3870105 by mason.seay Removed link to anim blueprint to fix errors Change 3870238 by mason.seay Test map for Async Loading in a Loop Change 3870479 by Ben.Zeigler Add code to check CoreRedirects for SoftObjectPaths when saving or resolving in the editor. This is a bit slow so we don't want to do it on load We don't have any good way to know the type of a path so I check both Object and Class redirectors, which will also pickup Module renames Change 3875224 by mason.seay Functional tests for Event BeginPlay execution order Change 3875409 by mason.seay Optimized and fixed up character movement tests (because a potential bug in FunctionalTestActor is always passing a test when it can fail) Change 3878947 by Mieszko.Zielinski CIS fixes #UE4 Change 3879000 by Mieszko.Zielinski More CIS fixes #UE4 Change 3879139 by Mieszko.Zielinski Even moar CIS fixes #UE4 Change 3879742 by mason.seay Added animation to Nativization Widget asset Change 3880198 by Zak.Middleton #ue4 - CanCrouchInCurrentState() returns false when character capsule is simulating physics. #jira UE-54875 github #4479 Change 3880266 by Zak.Middleton #ue4 - Optimize UpdateCharacterStateBeforeMovement() to do cheaper tests earlier (avoid CanCrouchInCurrentState() unless necessary, now that it tests IsSimulatingPhysics() which is not trivial). #jira UE-54875 Change 3881546 by Mieszko.Zielinski *.Build.cs files clean up - removed redundant dependencies from NavigationSystem and AIModule #UE4 Change 3881547 by Mieszko.Zielinski Removed a bunch of DEPRECATED functions from the new NavigationSystem module #UE4 Removed all deprecates prior 4.15 (picked this one because I do know some licencees are still using it). Change 3881742 by mason.seay Additional crouch test to cover UE-54875 Change 3881794 by Mieszko.Zielinski Fixed a bug in FVisualLoggerHelpers::GetCategories resulting in losing verbosity information #UE4 Change 3884503 by Mieszko.Zielinski Fixed TopDown code template to make it compile after navsys refactor #UE4 #jira UE-55039 Change 3884507 by Mieszko.Zielinski Switched ensures in UNavigationSystemV1:SimpleMoveToX to error-level logs #UE4 It's an error rather than a warning because the functions no longer do anything. Making it work would require a cyclic dependency between NavigationSystem and AIModule. #jira UE-55033 Change 3884594 by Mieszko.Zielinski Added a const FNavigationSystem::GetCurrent version #UE4 lack of it was causing KiteDemo to not compile. Change 3884602 by Mieszko.Zielinski Mac editor compilation fix #UE4 Change 3884615 by Mieszko.Zielinski Fixed FAIDataProviderValue::GetRawValuePtr not being accessible from outside of AIModule #UE4 Change 3885254 by Mieszko.Zielinski Guessfix for UE-55030 #UE4 The name of NavigationSystem module was put in wrong in the IMPLEMENT_MODULE macro #jira 55030 Change 3885286 by Mieszko.Zielinski Changed how NavigationSystem module includes DerivedDataCache module #UE4 #jira UE-55035 Change 3885492 by mason.seay Minor tweaks to animation Change 3885773 by mason.seay Resaving assets to clear out warning Change 3886433 by Mieszko.Zielinski Fixed TP_TopDownBP's player controller BP to not use deprecated nav functions #UE4 #jira UE-55108 Change 3886783 by Mieszko.Zielinski Removed silly inclusion of NavigationSystemTypes.h from NavigationSystemTypes.h #UE4 Change 3887019 by Mieszko.Zielinski Fixed accessing unchecked pointer in ANavigationData::OnNavAreaAdded #UE4 Change 3891031 by Mieszko.Zielinski Fixed missing includes in NavigationSystem.cpp #UE4 Change 3891037 by Mieszko.Zielinski ContentEample's navigation fix #UE4 #jira UE-55109 Change 3891044 by Mieszko.Zielinski PR #4456: Fix bug in UAISense_Sight::OnListenerForgetsActor (Contributed by maxtunel) #UE4 Change 3891598 by mason.seay Resaving assets to clear out "empty engine version" spam Change 3891612 by mason.seay Fixed deprecated Set Text warnings Change 3893334 by Mieszko.Zielinski Fixed a bug in navmesh generation resulting in not removing layers that ended up empty after rebuilding #UE4 #jira UE-55041 Change 3893394 by Mieszko.Zielinski Fixed navmesh debug drawing to properly display octree elements with "per instance transforms" (like instanced SMs) #UE4 Also, added a more detailed debug drawing of navoctree contents (optional, but on by default). Change 3893395 by Mieszko.Zielinski Added a bit of code to navigation system's initialization that checks the enegine ini for sections refering to the moved navigation classes, and complain about it #UE4 The message is printed as an error-level log line and it says what should the offending section be renamed to. Change 3895563 by Dan.Oconnor Mirror 3895535 Append history from previous branches in source control history view #jira none Change 3896930 by Mieszko.Zielinski Added an option to tick navigation system while the game is paused #UE4 Controlled via NavigationSystemV1.bTickWhilePaused, ini- and ProjectSettings-configurable. #jira UE-39275 Change 3897554 by Mieszko.Zielinski Unified how NavMeshRenderingComponent draws navmesh and octree collision's polys #UE4 Change 3897556 by Mieszko.Zielinski Fixed what kind of nav tile bounds we're sending to nav-colliding elements when calling 'per-instance transform' delegate #UE4 #jira UE-45261 Change 3898064 by Mieszko.Zielinski Made SM Editor display AI-navigation-related whenever bHasNavigationData is set to true #UE4 #jira UE-50436 Change 3899004 by Mieszko.Zielinski Fixed UEnvQueryItemType_Actor::GetItemLocation and UEnvQueryItemType_Actor::GetItemRotation to return FAISystem::InvalidLocation and FAISystem::InvalidRotation respectively instead of '0' when hosted Actor ptr is null #UE4 Note for programmers: this changes the default behavior of this edge case. You might want to go through your code and check if you're comparing UEnvQueryItemType_Actor::GetItem*'s results to 0. Change 3901733 by Mieszko.Zielinski Made FEnvQueryInstance::PrepareContext implementations returning vectors and rotators ignore InvalidLocation and InvalidRotation (respectively) #UE4 Change 3901925 by Ben.Zeigler #jira UE-55395 Fix issue where the cooker could load asset registry caches made in -game that do not have dependency data, leading to broken cooks Change 3902166 by Marc.Audy Make ULevel::GetWorld final Change 3902749 by Ben.Zeigler Fix it so pressing refresh button in asset audit window actually refreshes the asset management database Change 3902763 by Ben.Zeigler #jira UE-55407 Fix it so editor tutorials are not cooked unless referenced, by correctly marking soft object paths imported from editor project settings as editor-only Change 3905578 by Phillip.Kavan The UX to add a new parameter on a Blueprint delegate is now at parity with Blueprint functions. #4392 #jira UE-53779 Change 3905848 by Phillip.Kavan First pass of the experimental Blueprint graph bookmarks feature. #jira UE-10052 Change 3906025 by Phillip.Kavan CIS fix. Change 3906195 by Phillip.Kavan Add missing icon file. Change 3906356 by Phillip.Kavan Moved Blueprint bookmarks enable flag into EditorExperimentalSettings for consistency with other options. Change 3910628 by Ben.Zeigler Partial fix for UE-55363, this allows references to ObjectRedirectors to be switched from parent class to a child class on load as this should always be safe This does not actually fix UE-55363 because that case is changing from UMaterial to UMaterialInstanceConstant, and those are siblings instead of parent/child Change 3912470 by Ben.Zeigler #jira UE-55586 Fix issue with saving redirected soft object paths where the export sort could accidentally cause the parent CDO to get modified between name tagging and writing exports, which is unsafe because due to delta serialization it would try to write names that were not previously tagged Change 3913045 by Marc.Audy Fix issues where recursion in to child actors wasn't being handled correctly Change 3913398 by Fred.Kimberley Fixes a misspelled name for one of the classes in the ability system. PR #4430: Fixed spelling of FGameplayAbilityInputBinds. (Contributed by IntegralLee) #github #jira UE-54327 Change 3918016 by Fred.Kimberley Ensure AllocGameplayEffectContext is being used in all cases where FGameplayeEffectContext is being created. #jira UE-52668 PR #4250: Only create FGameplayEffectContext via AbilitySystemGlobals::.AllocGameplayEffectContext (Contributed by slonopotamus) #github Change 3924653 by Mieszko.Zielinski Fixed LoadEngineClass local to UnrealEngine.cpp to check class redirects before falling back to default class instance #UE4 #jira UE-55378 Change 3925614 by Phillip.Kavan Fix ForEachEnum node to skip over hidden enum values in new placements by default. Change summary: - Added FKismetNodeHelperLibrary::ShouldHideEnumeratorIndex() as an internal-only Blueprint node support API. - Modified FForExpandNodeHelper::AllocateDefaultPins() to add a "Skip Hidden" input pin (advanced). Pin default value is false. - Added a UK2Node_ForEachElementInEnum::PostPlacedNewNode() override to set the default value of the "Skip Hidden" input pin to 'true' for all new node placements. - Modified UK2Node_ForEachElementInEnum::ExpandNode() to include additional expansion logic based on the "Skip Hidden" input pin. For new placements (i.e. when the pin defaults to 'true'), an intermediate branch node will now be inserted into the compiled execution sequence to test for "hidden" metadata on the value before executing the loop body. If the input pin is linked, another intermediate branch will be inserted into the execution sequence prior to the "hidden" metadata test. All existing placements of the node will remain as-is after compilation (i.e. no additional intermediate branch nodes will be included in the expansion). #jira UE-34563 Change 3925649 by Marc.Audy Fix up issue post merge from Main with navigation system refactor Change 3926293 by Phillip.Kavan Temp fix to unblock CIS. #jira UE-34563 Change 3926523 by Marc.Audy Ensure that a renamed Actor is in the correct Actors array #jira UE-46718 Change 3928732 by Fred.Kimberley Unshelved from pending changelist '3793298': #jira UE-53136 PR #4287: virtual additions for AttributeSet extendability (Contributed by TWIDan) #github Change 3928780 by Marc.Audy PR #4309: The display names of the functions. (Contributed by SertacOgan) #jira UE-53334 Change 3929730 by Joseph.Wysosky Submitting test assets for the new Blueprint Structure test cases Change 3931919 by Joseph.Wysosky Deleting BasicStructure asset to rest MemberVariables back to default settings Change 3931922 by Joseph.Wysosky Adding BasicStructure test asset back with default members Change 3932083 by Phillip.Kavan Fix Compositing plugin source files to conform to updated relative include path specifications. - Encountered while testing Blueprint nativization of assets with dependencies on Composure/LensDistortion APIs. Change 3932196 by Dan.Oconnor Resetting a property to default now uses the same codepath as assigning the value from the slate control #jira UE-55909 Change 3932408 by Lukasz.Furman fixed behavior tree services attached to task nodes being sometimes recognized as root level #jira nope Change 3932808 by Marc.Audy PR #4083: Change to UK2Node_BaseAsyncTask to have pin tooltips on latent nodes (Contributed by dwrpayne) #jira UE-50871 Change 3934101 by Phillip.Kavan Revise ForEachEnum node expansion logic to exclude hidden values at compile time. Change summary: - Removed UKismetNodeHelperLibrary::ShouldHideEnumeratorIndex() (no longer in use). - Modified UK2Node_ForEachElementInEnum::ExpandNode() to include an enum switch node in the expansion, which will exclude hidden values when constructed. The additional expansion will occur if the enum type contains at least one hidden value. #jira UE-34563 Change 3934106 by Phillip.Kavan Mirrored 4.19 fixes to allow for EngineTest iteration w/ nativization enabled. Change summary: - Mirrored CLs 3876918, 3878968, 3883257, 3885566, 3912161 and 3920519. Change 3934116 by Phillip.Kavan UBT: Explicitly define the DEPRECATED_FORGAME macro only for non-engine modules. Change summary: - Modified UEBuildModule.SetupPrivateCompileEnvironment() to check the 'bTreatAsEngineModule' flag from the rules assembly rather than testing the module's build type. Change 3934382 by Phillip.Kavan Avoid inclusion of monolothic engine header files in nativized Blueprint codegen. Change 3936387 by Mieszko.Zielinski Added a flag to NavModifierComponent to control whether agent's height is being used while expadning modifier's bounds during navmesh generation #UE4 Change 3936905 by Ben.Marsh Disable IncludeTool warning for DEPRECATED_FORGAME macro; we expect this to be different for game modules. Change 3940537 by Marc.Audy Don't allow maps, sets, or arrays with an actor inner type in user defined structs to select an actor from the currently open level as default value. #jira UE-55938 Change 3940901 by Marc.Audy Properly name CVar global to reflect what it is for Change 3943043 by Marc.Audy Fix world context functions not being able to be used in CheatManager derived blueprints #jira UE-55787 Change 3943075 by Mieszko.Zielinski Moved path-following related delegats' interface from NavigationSystemBase over to a new IPathFollowingManagerInterface #UE4 Change 3943089 by Mieszko.Zielinski Fixed how WorldSettings.NavigationSystemConfig gets created #UE4 Made it so that there's always a NavigationSystemConfig instance present, but added a 'Null' config - this was required due to issues with creation/serialization of instanced subobjects. The change required adding copying constructors to FNavAgentProperties and FNavDataConfig. Also, fixed FNavAgentProperties.IsEquivalent to be symetrical. Change 3943225 by Marc.Audy Fix spelling of Implements Change 3950813 by Marc.Audy Include owner in attachment mismatch ensure #jira UE-56148 Change 3950996 by Marc.Audy Fix cases where bit packed properties used the entire byte not just the bit when interacting with boolean arrays #jira UE-55482 Change 3952086 by Marc.Audy PR #4483: Add Missing Radial Damage Multicast Delegate (Contributed by error454) #jira UE-54974 Change 3952720 by Marc.Audy PR #4575: Check if *Pawn* is a null Pointer (Contributed by dani9bma) #jira UE-56248 Change 3952804 by Richard.Hinckley Changes to BP API export commandlet to support better plugin exporting. Contributed by Harry Wang of Google. Change 3952962 by Marc.Audy UHT now validates that ExpandEnumAsExecs references a valid parameter to the function. #jira UE-49610 Change 3952977 by Phillip.Kavan Fix EDL cycle at load time in nativized cooked builds when a circular dependency exists between converted and unconverted assets. Change summary: - Added FGatherConvertedClassDependencies::MarkUnconvertedClassAsNecessary(). - Modified FFindAssetsToInclude::MaybeIncludeObjectAsDependency() to mark unconverted BPGCs (e.g. DOBPs) as necessary for conversion when the potential for a circular dependency exists so that we generate stub wrappers rather than depend on them directly. - Fixed a few typos in existing API names. #jira UE-48233 Change 3953658 by Marc.Audy (4.19.1) Fix inserting a reroute node causing connections to break on a GetClassDefaults node #jira UE-56270 Change 3954727 by Marc.Audy Add friendly name to custom version mismatch message Change 3954906 by Marc.Audy (4.19.1) Fix crash when undoing changes related to reroute nodes connected to a GetClassDefaults node #jira UE-56313 Change 3954997 by Marc.Audy Ensure and return null if GetOuter<WithinClass> is called on a CDO for uclasses declared as within another so we don't get a UPackage c-style cast to the expected outer type Change 3955091 by Marc.Audy Do not register subcomponents that are not auto register #jira UE-52878 Change 3955943 by Marc.Audy Make AbilitySystemComponent pass parameters by const& instead of ref as no state is being changed Change 3956185 by Zak.Middleton #ue4 - Fix Characters using scoped movement updates (the default) not visually rotating when rotated at small rates at high framerate. This was caused by FScopedMovementUpdate::IsTransformDirty() using a larger FTransform comparison tolerance than USceneComponent::UpdateComponentToWorldWithParent(). #jira none Change 3958102 by Marc.Audy Clean out dead code path from k2node_select Select node now resets pins to wildcard if none of the pins are in use Change 3958113 by Lukasz.Furman added OnSearchStart call to root level behavior tree services #jira UE-56257 Change 3958361 by Marc.Audy Fix literal input pins on select being set to wildcard during compilation Change 3961148 by Dan.Oconnor Mirror 3961139 from Release 4.19 Fix for placeholder objects being left behind when loading certain UMG assets - this could causea crash when loading UMG assets #jira UE-55742 Change 3961640 by Marc.Audy Select node now displays Add Pin button Undo of changing select node index type now works correctly. Connections to option pins now maintained across change of index pin type #jira UE-20742 Change 3962262 by Marc.Audy Display "Object Reference" instead of "Object Object Reference" and "Soft Object Reference" instead of "Object Soft Object Reference" Change 3962795 by Phillip.Kavan Fix for a crash when cooking with Blueprint nativization enabled after encountering a nested instanced editor-only default subobject inherited from a native C++ base class. - Mirrored from //UE4/Release-4.19 (3962782) #jira UE-56316 Change 3962991 by Marc.Audy Modify Negate/Increment/Decrement Int/Float so that the output is always the desired result even if a non-mutable pin is passed in. Note that this can mean the result being returned and the value of the pin passed in if queried again will not be the same (in the case of pure nodes). #jira UE-54807 Change 3963114 by Marc.Audy Fix ensures/crash as a result of UClass expecting to be able to access the UPackage of CDOs via the GetOuterUPackage call. Change 3963427 by Marc.Audy Fix initialization order Initialize bUseBackwardsCompatForEmptyAutogeneratedValue Change 3963781 by Marc.Audy Fix without editor compiles Change 3964576 by Marc.Audy PR #4599: : Working category for timelines (Contributed by projectgheist) #jira UE-56460 #jira UE-26053 Change 3964782 by Dan.Oconnor Mirror 3964772 from Release 4.19 Fix crash when force deleting certain blueprints, we can only check for authoritativeness while reinstancing #jira UE-56447 Change 3965156 by Mieszko.Zielinski PR #4592: Visual Logger optimization to fix rapid FPS drop when many items are hidden (Contributed by tstaples) #jira UE-56435 Change 3965173 by Marc.Audy (4.19.1) Fix incorrectly switching a cooling down tick to be an enabled tick when marking it enabled. #jira UE-56431 Change 3966117 by Marc.Audy Fix select nodes inside macros using wildcard array inputs having issues resolving type. #jira UE-56484 Change 3878901 by Mieszko.Zielinski NavigationSystem's code refactored out of the engine and into a new separate module #UE4 The CL contains required changes to all of our internal projects. Fortnite and Paragon have been tested, while the rest have been only compiled. Change 3879409 by Mieszko.Zielinski Further fallout fixes after ripping out NavigationSystem out of the engine #UE4 - Fixed bad ini redirects (had NavigationSystem.NavigationSystem instead of NavigationSystem.NavigationSystemV1) - Added missing FNavigationSystem::GetDefaultNavDataClass binding (resulting in QAGame's func tests failing) Change 3897655 by Ben.Zeigler #jira UE-55211 Fix it so literal soft object pins on blueprint nodes get correctly cooked/referenced It now sets the thread context to skip internal serialize and calls the archive's serialize function instead of bypassing it, which allows it to pick up references Change 3962780 by Marc.Audy When preventing a split pin from being orphaned, all sub pins must also be prevented. #jira UE-56328 Repack members of UEdGraphPin to avoid wasted space (saves 16bytes) [CL 3967553 by Marc Audy in Main branch]
2018-03-27 14:27:07 -04:00
/**
* Find a field in the specified context. Starts with the specified scope, then iterates
* through the Outer chain until the field is found.
*
* @param InScope scope to start searching for the field in
* @param InIdentifier name of the field we're searching for
* @param bIncludeParents whether to allow searching in the scope of a parent struct
* @param FieldClass class of the field to search for. used to e.g. search for functions only
* @param Thing hint text that will be used in the error message if an error is encountered
*
* @return a pointer to a UField with a name matching InIdentifier, or NULL if it wasn't found
*/
static UField* FindField( UStruct* InScope, const TCHAR* InIdentifier, bool bIncludeParents=true, UClass* FieldClass=UField::StaticClass(), const TCHAR* Thing=nullptr );
protected:
/**
* Parse rest of the module's source files.
*
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 GC and WeakObjectPtr performance optimizations. - Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray - Moved WeakObjectPtr serial numbersto FUObjectArray - Added pre-allocated UObject array Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved. Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920 UHT will now use makefiles to speed up iterative runs. Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963 Hot-reload performance optimizations: 1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier). 2. Parallelized search for old CDOs referencers. Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster Dependency preloading improvements - Asset registry dependencies now resolve asset redirectors - Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1 Allow UnfocusedVolumeMultiplier to be set programmatically Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1 When cooking, don't add imports that are outers of objects excluded from the current cook target. Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core Inline storage for TFunction. Fix for delegate inline storage on Win64. Some build fixes. Visualizer fixes for new TFunction format. Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReporter Web - Search by Platform Added initial support for streams (GetBranchesAsListItems, CopyToJira) Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString. Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core Some TSet function optimisations: Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent). Taking local copies of HashSize during iterations. Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core BulkData zero byte allocations are now handled by an RAII object which owns the memory. Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core FName::operator== and != optimised to be a single comparison. Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro) Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360) Also fixed starting condition. Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1 PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus) Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core PR #1540 - Specifying a different Saved folder at launch through a command line parameter Integrated and optimized. #lockdown Nick.Penwarden [CL 2772222 by Robert Manuszewski in Main branch]
2015-11-18 16:20:49 -05:00
* @param AllClasses The class tree containing all classes in the current package.
* @param ModulePackage Current package.
* @param HeaderParser The header parser.
*
* @return Result enumeration.
*/
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3494741 by Steve.Robb Generated code size savings. #jira UE-43048 Change 3495484 by Steve.Robb Fix for generated indices of static arrays when saving configs. Change 3497926 by Robert.Manuszewski Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything. Change 3498077 by Robert.Manuszewski Only use the recursion guard in async loading code when the event driven loader is enabled. Change 3498112 by Ben.Marsh UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own. Change 3500239 by Robert.Manuszewski Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes. Change 3500395 by Steve.Robb Extra codegen savings when not in hot reload. Change 3501004 by Steve.Robb EObjectFlags now have constexpr operators. Change 3502079 by Ben.Marsh UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary. Change 3502527 by Steve.Robb Fix for zero-sized array compile error in generated code when all functions are editor-only. Change 3502542 by Ben.Marsh UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead. Change 3502868 by Steve.Robb Workaround for inefficient generated code with stateless lambdas on Clang. Change 3503550 by Steve.Robb Another generated code lambda optimization. Change 3503582 by Ben.Marsh BuildGraph: Add support for nullable parameter types. Change 3504424 by Steve.Robb New AllOf, AnyOf and NoneOf algorithms. Change 3504712 by Ben.Marsh UAT: Less spammy log and error output from UAT. * Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception). * Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information. * AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log) * Name of the calling function is not included in console output by default, but still included in the log. Change 3504808 by Ben.Marsh UAT: Suppress P4 output when running a recursive instance of UAT. Change 3505044 by Steve.Robb Code generation improved for TCppClassType code. Change 3505485 by Ben.Marsh Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module. Change 3505699 by Ben.Marsh Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins. Change 3506055 by Ben.Marsh UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output. Change 3507745 by Robert.Manuszewski Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses). Change 3507911 by Ben.Marsh Plugins: Minor changes to plugin descriptors. * Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors. * Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from. Change 3508669 by Ben.Marsh EC: Parse multi-line messages from UBT and UAT. Change 3508691 by Ben.Marsh Fix double-spacing of cook stats. Change 3509245 by Steve.Robb UHT makefiles removed. Flag audit removed. Change 3509275 by Steve.Robb Fix for mismatched stat categories in AudioMixer. #jira UE-46129 Change 3509289 by Robert.Manuszewski Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably. Change 3509294 by Robert.Manuszewski UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it. Change 3509312 by Steve.Robb GitHub# 3679: Add TArray constructor that takes a raw pointer and a count Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too. #jira UE-46136 Change 3509396 by Steve.Robb GitHub# 3676: Fix TUnion operator<< compile error #jira UE-46099 Change 3509633 by Steve.Robb Fix for line numbers on multiline macros. Change 3509938 by Gil.Gribb UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading. Change 3510593 by Daniel.Lamb Fixed up unsoilicited files getting populated with files which aren't finished being created yet. #test None Change 3510594 by Daniel.Lamb Fixed up temp files directory for patching. Thanks David Yerkess @ Milestone #review@Ben.Marsh Change 3511628 by Ben.Marsh PR #3707: Fixed UBT stack size (Contributed by gildor2) Change 3511808 by Ben.Marsh Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git) #jira UE-46540 Change 3512017 by Ben.Marsh Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface. Change 3513935 by Steve.Robb Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477. Change 3514142 by Steve.Robb MemoryProfiler2 added to generated solution. Change 3516463 by Ben.Marsh Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user. Change 3517860 by Ben.Marsh PR #3727: FString Dereference Fixes (Contributed by jovisgCL) Change 3517967 by Ben.Marsh Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line. Change 3518070 by Steve.Robb Disable Binned2 stats in shipping non-editor builds. Change 3520079 by Steve.Robb Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions. #jira UE-24034 Change 3520080 by Robert.Manuszewski Made max package summary size to be configurable with ini setting Change 3520083 by Steve.Robb Force a GC after hot reload to clean up reinstanced objects which may still tick. #jira UE-40421 Change 3520480 by Robert.Manuszewski Improved assert message when the initial package read request was too small. Change 3520590 by Graeme.Thornton SignedArchiveReader optimizations - Loads more stats - Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader - Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time - Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries Change 3521023 by Graeme.Thornton Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing Change 3521787 by Ben.Marsh PR #3736: Small static code analysis fixes (Contributed by jovisgCL) Change 3521789 by Ben.Marsh PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar) Change 3524721 by Ben.Marsh Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core. Change 3524741 by Ben.Marsh Move PumpMessages() into FPlatformApplicationMisc. Change 3525399 by Ben.Marsh UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment. Change 3525743 by Ben.Marsh UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds. Change 3525746 by Ben.Marsh EC: Include the clobber option on new workspaces, to allow overriding version files when syncing. Change 3526453 by Ben.Marsh UGS: Do not generate project files when syncing precompiled binaries. Change 3527045 by Ben.Marsh Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting. Change 3527420 by Ben.Marsh UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing). Config files are now read from: Engine/Programs/UnrealGameSync/UnrealGameSync.ini Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini If a project is selected: <ProjectDir>/Build/UnrealGameSync.ini <ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini If the .uprojectdirs file is selected: Engine/Programs/UnrealGameSync/DefaultProject.ini Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini Change 3528063 by Ben.Marsh Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse. Change 3528415 by Ben.Marsh UAT: Remove \r characters from the end of multiline log messages. Change 3528427 by Ben.Marsh EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent. Change 3528485 by Ben.Marsh EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places. Change 3528505 by Steve.Robb PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL) #jira UE-46819 Change 3528772 by Robert.Manuszewski Enabling actor and blueprint clustering in ShooterGame Change 3528786 by Robert.Manuszewski PR #3760: Fix typo (Contributed by jesseyeh) Change 3528792 by Steve.Robb PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL) #jira UE-46962 Change 3528941 by Robert.Manuszewski Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object. #jira UE-44996 Change 3530241 by Ben.Marsh UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value. Change 3531377 by Ben.Marsh Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it. This has several advantages over the per-module platform whitelist/blacklist: * Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore. * References to dependent plugins from platform-specific plugins can now be eliminated. * Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly). * The editor can load any plugins without having to whitelist supported editor host platforms. UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime. Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary. Change 3531502 by Jin.Zhang Add support for GPUCrash #rb Change 3531664 by Ben.Marsh UBT: Change output format from C# JSON writer to match output by the engine. Change 3531848 by Ben.Marsh UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable. Change 3531869 by Ben.Marsh UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field. Change 3532474 by Ben.Marsh UBT: Use the same mechanism as UAT for logging exceptions. Change 3532734 by Graeme.Thornton Initial VSCode Support - Tasks generated for building all game/engine/program targets - Debugging support for targets on Win64 Change 3532789 by Steve.Robb FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap. Set_Add and Map_Add no longer have a return value. FScriptSet::Find and FScriptMap::Find functions are now FindIndex. FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash. Change 3532845 by Steve.Robb Obsolete UHT settings deleted. Change 3532875 by Graeme.Thornton VSCode - Add debug targets for different target configurations - Choose between VS debugger (windows) and GDB (mac/linux) Change 3532906 by Graeme.Thornton VSCode - Point all builds directly at UBT rather than the batch files - Adjust mac build tasks to run through mono Change 3532924 by Ben.Marsh UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root. Change 3535234 by Graeme.Thornton VSCode - Pass intellisense system a list of paths to use for header resolution Change 3535247 by Graeme.Thornton UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation Change 3535376 by Graeme.Thornton VSCode - Added build jobs for C# projects - Linked launch tasks to relevant build task Change 3537083 by Ben.Marsh EC: Change P4 swarm links to start at the changelist for a build. Change 3537368 by Graeme.Thornton Fix for crash in FSignedArchiveReader when multithreading is disabled Change 3537550 by Graeme.Thornton Fixed a crash in the taskgraph when running single threaded Change 3537922 by Steve.Robb Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT. Change 3539691 by Graeme.Thornton VSCode - Various updates to get PC and Mac C++ projects building and debugging. - Some other changes to C# setup to allow compilation. Debugging doesn't work. Change 3539775 by Ben.Marsh Plugins: Various fixes to settings for enabling plugins. * Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled). * Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed. * Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them. Change 3540788 by Ben.Marsh UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile). Example usage: public class UnrealPakTarget : TargetRules { public UnrealPakTarget(TargetInfo Target) : base(Target) { Type = TargetType.Program; LinkType = TargetLinkType.Monolithic; LaunchModuleName = "UnrealPak"; if(HostPlatform == UnrealTargetPlatform.Win64) { PreBuildSteps.Add("echo Before building:"); PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); PostBuildSteps.Add("echo After building!"); PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); } } } Change 3541664 by Graeme.Thornton VSCode - Add problemMatcher tag to cpp build targets Change 3541732 by Graeme.Thornton VSCode - Change UBT command line switch to "-vscode" for simplicity Change 3541967 by Graeme.Thornton VSCode - Fixes for Mac/Linux build steps Change 3541968 by Ben.Marsh CRP: Pass through the EnabledPlugins element in crash context XML files. #jira UE-46912 Change 3542519 by Ben.Marsh UBT: Add chain of references to error messages when configuring plugins. Change 3542523 by Ben.Marsh UBT: Add more useful error message when attempt to parse a JSON object fails. Change 3542658 by Ben.Marsh UBT: Include a chain of references when reporting errors instantiating modules. Change 3543432 by Ben.Marsh Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set. Change 3543436 by Ben.Marsh UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails. Change 3543536 by Ben.Marsh UBT: Downgrade message about redundant plugin references to a warning. Change 3543871 by Gil.Gribb UE4 - Fixed a critical crash bug with non-EDL loading from pak files. Change 3543924 by Robert.Manuszewski Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes. +Small optimization to token stream generation code. Change 3544469 by Jin.Zhang Crashes page displays the list of plugins from the crash context #rb Change 3544608 by Steve.Robb Fix for nativized generated code. #jira UE-47452 Change 3544612 by Ben.Marsh Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages(). #jira UE-47449 Change 3545954 by Gil.Gribb Fixed a critical crash bug relating to a race condition in async package summary reading. Change 3545968 by Ben.Marsh UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same. #jira UE-47419 Change 3545976 by Ben.Marsh EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch. Change 3546185 by Ben.Marsh Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped. Change 3547084 by Gil.Gribb Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms. Change 3547968 by Gil.Gribb Fixed critical race which potentially could cause a crash in the pak precacher. Change 3504722 by Ben.Marsh BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run. For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as: ERROR: Unable to write to foo.txt while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" /> at Engine\Build\InstalledEngineBuild.xml(91) (see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace) Change 3512255 by Ben.Marsh Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated. Change 3512332 by Ben.Marsh Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4. Change 3512393 by Ben.Marsh Rename FPaths::GameLogDir() to FPaths::ProjectLogDir(). Change 3513452 by Ben.Marsh Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project. Change 3516262 by Ben.Marsh Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor. * Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod. * The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders). Change 3517565 by Ben.Marsh Remove fixed engine version numbers from OSS plugins. Change 3518005 by Ben.Marsh UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false. Change 3518054 by Ben.Marsh UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard. Change 3524496 by Ben.Marsh Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core. Change 3524641 by Ben.Marsh Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc. Change 3528723 by Steve.Robb MoveTemp now static asserts if passed a const reference or rvalue. MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious. Fixes to violations of these new rules. Change 3528876 by Ben.Marsh Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste. Change 3529073 by Ben.Marsh Add script to package ShooterGame for any platforms. Change 3531493 by Ben.Marsh Update platform-specific plugins to declare the target platforms they support. Change 3531611 by Ben.Marsh UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates. Change 3531868 by Ben.Marsh Resaving project descriptors to remove invalid fields. Change 3531983 by Ben.Marsh UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders. * Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer. * Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type) * Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo")) * An error is output if any restricted folder names other than the output platform are in the staged output. Change 3540315 by Ben.Marsh UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers. Change 3542410 by Ben.Marsh UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already. Change 3543018 by Ben.Marsh UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions. Change 3544371 by Steve.Robb Fixes to TSet_Add and TMap_Add BPs. #jira UE-47441 [CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
static ECompilationResult::Type ParseRestOfModulesSourceFiles(FClasses& AllClasses, UPackage* ModulePackage, FHeaderParser& HeaderParser);
//@TODO: Remove this method
static void ParseClassName(const TCHAR* Temp, FString& ClassName);
/**
* @param Input An input string, expected to be a script comment.
* @return The input string, reformatted in such a way as to be appropriate for use as a tooltip.
*/
static FString FormatCommentForToolTip(const FString& Input);
/**
* Retrieves parameter comments / tooltips from the function comment
* @param Input An input string, expected to be a script comment.
* @return The map of parameter name to comment per parameter
*/
static TMap<FName, FString> GetParameterToolTipsFromFunctionComment(const FString& Input);
/**
* Begins the process of exporting C++ class declarations for native classes in the specified package
*
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 GC and WeakObjectPtr performance optimizations. - Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray - Moved WeakObjectPtr serial numbersto FUObjectArray - Added pre-allocated UObject array Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved. Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920 UHT will now use makefiles to speed up iterative runs. Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963 Hot-reload performance optimizations: 1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier). 2. Parallelized search for old CDOs referencers. Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster Dependency preloading improvements - Asset registry dependencies now resolve asset redirectors - Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1 Allow UnfocusedVolumeMultiplier to be set programmatically Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1 When cooking, don't add imports that are outers of objects excluded from the current cook target. Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core Inline storage for TFunction. Fix for delegate inline storage on Win64. Some build fixes. Visualizer fixes for new TFunction format. Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReporter Web - Search by Platform Added initial support for streams (GetBranchesAsListItems, CopyToJira) Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString. Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core Some TSet function optimisations: Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent). Taking local copies of HashSize during iterations. Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core BulkData zero byte allocations are now handled by an RAII object which owns the memory. Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core FName::operator== and != optimised to be a single comparison. Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro) Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360) Also fixed starting condition. Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1 PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus) Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core PR #1540 - Specifying a different Saved folder at launch through a command line parameter Integrated and optimized. #lockdown Nick.Penwarden [CL 2772222 by Robert Manuszewski in Main branch]
2015-11-18 16:20:49 -05:00
* @param CurrentPackage The package being compiled.
* @param AllClasses The class tree for CurrentPackage.
* @param Module Currently exported module.
*/
static void ExportNativeHeaders(
UPackage* CurrentPackage,
FClasses& AllClasses,
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3345728) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3315219 on 2017/02/21 by Steve.Robb Fix for FObjectAndNameAsStringProxyArchive when serializing a TWeakObjectPtr. Change 3315285 on 2017/02/21 by Steve.Robb Explicitly pass string builder into code generation functions. Change 3315341 on 2017/02/21 by Ben.Marsh UAT: Clean up some formatting in StreamCopyDescription output - remove #fyi lines, exclude merge commits, and remove some blank lines. Change 3315350 on 2017/02/21 by Ben.Marsh Fix shared resource files not being rebuilt if the version header changes. Change 3315823 on 2017/02/21 by Ben.Marsh UAT: Use a class derived from AutomationException to return information specific to commandlets failing, rather than putting it in the base class. Change 3315826 on 2017/02/21 by Ben.Marsh UAT: Move Distiller class from general use in UAT; FileFilter provides a much safer and fully featured implementation of the same concepts. Change 3315857 on 2017/02/21 by Ben.Marsh UBT: Remove the StripBaseDirectory() and MakeRerootedFilePath() utility functions from UBT. These operations can now be done more safely with FileReference objects. Change 3315942 on 2017/02/21 by Ben.Marsh UBT: Convert FileFilter to use FileReference and DirectoryReference arguments everywhere. Change 3316236 on 2017/02/22 by Maciej.Mroz #jira UE-42045 Nativization Fixed Warning: TEnumAsByte is not intended for use with enum Change 3316253 on 2017/02/22 by Robert.Manuszewski Fixes for the async log file writer hangs and crashes. - potential fix for the logging system hang when running out of disk space while flushing log - fix for unexpected concurrency assert when flushing the log buffer to disk Change 3316293 on 2017/02/22 by Steve.Robb GetTypeHash and lexicographical comparison operators (operator<() etc.) for TTuple. Change 3316342 on 2017/02/22 by Maciej.Mroz Nativization: Wrappers (stubs) required only by other wrappers are properly generated. #codereview: Mike.Beach Change 3316344 on 2017/02/22 by Maciej.Mroz Fixed crash in nativized Odin Async loading properly handles nativized structs. Change 3316359 on 2017/02/22 by Steve.Robb GitHub #3287 : Ignore #pragma in USTRUCTs #jira UE-42248 Change 3316389 on 2017/02/22 by Matthew.Griffin Switched Installed Engine Filters to multiline properties to make them more readable Added Oodle to list of excluded plugins #jira UE-42030 Change 3316392 on 2017/02/22 by Ben.Marsh UBT: Split out FileReference/DirectoryReference classes into their own file. Change 3316394 on 2017/02/22 by Ben.Marsh UBT: Move FileReference/DirectoryReference extension methods into the appropriate file. Change 3316411 on 2017/02/22 by Ben.Marsh UAT: Remove file functions that take multiple arguments. There's not really a compelling use case for these to exist over looping from the calling code. Change 3316446 on 2017/02/22 by Ben.Marsh UAT: Try disabling function name prefix to log output from UAT, to see if it improves readability. Function names are still included in the log file for debugging. Change 3316575 on 2017/02/22 by Ben.Marsh UAT: Remove unused functionality for dealing with labels, and output a more human readable list of P4 settings at startup. Change 3318481 on 2017/02/22 by Steve.Robb Use of FMath::IsPowerOfTwo in check. Static assert to ensure that an inline set allocator will have a hash size of a power of two. Change 3318496 on 2017/02/22 by Steve.Robb Fix for TSet visualizers. Change 3318919 on 2017/02/23 by Steve.Robb Fix for hot reloading UScriptStruct-derived objects in a module, where the CDOs of these objects haven't had PrepareCppStructOps() called on them. #jira UE-42178 Change 3318942 on 2017/02/23 by Steve.Robb Removal of a redundant insertion which can cause problems on reallocation of the map. Change 3319010 on 2017/02/23 by Ben.Marsh UBT: Fix exception when a file that was previously part of the working set is deleted. Change 3319134 on 2017/02/23 by Robert.Manuszewski Better fix for a deadlock when flushing log while it's already being flushed due to flush timer on the async log writer thread. Change 3319249 on 2017/02/23 by Matthew.Griffin Added a function to check if running with debug game libs instead of checking command line in multiple places Added -RunConfig parameter, which has equivalent result to -debug if value of parameter starts with 'debug' Added -RunConfig=$(Configuration) as a default commandline argument for Mac so that editor can use debug game libs Removed -Shipping argument from VCProject generation as it's not used anymore Change 3319253 on 2017/02/23 by Maciej.Mroz #jira UE-41846 New mechanism to gather modules necessary for Nativized Assets. The modules are listed based on included headers. Previously the dependencies was gathered only in FBlueprintNativeCodeGenManifest::GatherModuleDependencies. Change 3319591 on 2017/02/23 by Ben.Marsh Don't strip prefixes beginning with WARNING: or ERROR: using the Postp filter. Change 3320357 on 2017/02/23 by Steven.Hutton Slight changes to Add Crash method - Returning select fields instead of entity objects in queries for perf reasons. Change 3320361 on 2017/02/23 by Steven.Hutton Performance improvements subsequent to the recent database changes. Change 3320446 on 2017/02/23 by Steven.Hutton adding my temporary performance tracker class - reports to a private slack channel with add crash performance data. Change 3320479 on 2017/02/23 by Ben.Marsh Fix CIS errors. Change 3320576 on 2017/02/23 by Jin.Zhang Update CrashReporter to use AWS Change 3320742 on 2017/02/23 by Jin.Zhang Merging crash caching Change 3321119 on 2017/02/24 by Robert.Manuszewski DLL injection protection support for non-monolithic builds Change 3323308 on 2017/02/27 by Matthew.Griffin Moved compilation of SwarmInterface after its dependencies so that we will see a build failure immediately if they change version in future Change 3323423 on 2017/02/27 by Chad.Garyet Adding a script to check and warn about csproj targeted .net versions being mismatched #JIRA UE-39624 Change 3323442 on 2017/02/27 by Ben.Marsh UBT: Output an error if an engine module references a game module. Change 3323743 on 2017/02/27 by Ben.Marsh PR #3303: Resolved PVS scan issues (Contributed by projectgheist) Change 3323748 on 2017/02/27 by Ben.Marsh Convert whitespace to tabs. Change 3324851 on 2017/02/28 by Chris.Wood Add Odin symbol locations to engine config for MDD on CR server. NotForLicensees Change 3324979 on 2017/02/28 by Gil.Gribb Fixed bad merge of priority change in the EDL. Change 3326889 on 2017/03/01 by Steven.Hutton Update to buggs controller to generate faster queries. Change 3326910 on 2017/03/01 by Robert.Manuszewski Removing legacy #if from PackageFileSummary. Change 3327118 on 2017/03/01 by Gil.Gribb UE4 - Fixed race that resulted in a memory leak when reading compressed paks. Change 3327633 on 2017/03/01 by Gil.Gribb UE4 - Added a cvar to control the pak precacher thottle. Change 3327674 on 2017/03/01 by Steve.Robb Unified boilerplate between all generated code files. Change 3328544 on 2017/03/01 by Chris.Wood CrashReportProcess.config update (CRP v1.2.17) Tweaks to a few values. Update website URL to explicitly point to old, non-cloud site on devweb-02. Change 3328714 on 2017/03/01 by Chris.Wood Correct CRP config regression. Point website at new cloud site. Still v1.2.17 Change 3329192 on 2017/03/02 by Matthew.Griffin Added Shared Build Id file to the list of Precompiled Build Dependencies in a target receipt so that it's brought into an installed build Change 3329285 on 2017/03/02 by Ben.Marsh UGS: Allow a project to specify a filters for the streams that should be displayed for fast-switching to. The QuickSelectStreamList seting in the [Options] section of the project settings references a depot path containing a list of strings used to filter the stream list. An option is shown to switch back to showing all available streams, if desired. Change 3330636 on 2017/03/02 by Ben.Marsh UBT: Bump version number of C++ include cache to force it to be rebuilt with additional include information for the default RC files. Change 3331262 on 2017/03/03 by Robert.Manuszewski Merging Dev-LoadTimes to Dev-Core (Garbage Collection performance improvements) - Improved GC multithreading - Improved BeginDestroy performance - Introduced ULevelActorCluster for StaticMeshActor and ReflectionCapture actor clustering (can be toggled through project settings or console command gc.ActorClusterEnabled) - A few improvements to AddReferencedObjects functions - Misc improvements to GC code - Garbage Collector now properly handles clusters which had their objects marked as pending kill - Blueprints can now create clusters too (can be toggled through project settings or console command gc.BlueprintClusteringEnabled, defaults to disabled) Change 3331285 on 2017/03/03 by Robert.Manuszewski A few fixes for the previous check-in. Change 3332001 on 2017/03/03 by Ben.Marsh UBT: Add support for generating a UDN file containing the valid settings for BuildConfiguration.xml. Pass -configdoc=<filename> on the command line to generate such a file. Change 3332022 on 2017/03/03 by Ben.Marsh Update documentation for where to find the BuildConfiguration settings. Change 3332031 on 2017/03/03 by Ben.Marsh Remove documentation for Windows XP support; it has been removed in the 4.16 release. Change 3332256 on 2017/03/03 by Ben.Marsh UBT: Add support for generating a UDN page containing module and target settings. Change 3332458 on 2017/03/03 by Ben.Marsh UBT: Improvements to generated documentation. Change 3332459 on 2017/03/03 by Ben.Marsh Add generated documentation for .target.cs files, .build.cs files, and BuildConfiguration.xml files. Change 3332460 on 2017/03/03 by Ben.Marsh UBT: Make LinkTypePrivate actually private, so it doesn't show up in the docs. Change 3332899 on 2017/03/06 by Robert.Manuszewski Making sure actor clustering is not used in the editor (fix for actors being deleted when GC runs in the editor) #jira UE-42548 Change 3332955 on 2017/03/06 by Maciej.Mroz Nativization distinguishes client and server platform: - Separated lists on additional assets, additional modules, excluded assets, excluded modules, excluded paths (in config) - Context (compilation options, nativization options and platform) is deliveren to BPCOmpilerCppBackend in FCompilerNativizationOptions struct. - Wrappers (for unconverted BPs) are created only when they are directly called. - Fortnite dedicated server can be nativized Change 3332990 on 2017/03/06 by Ben.Marsh UBT: Add more comprehensive wrapper methods for System.IO.File and System.IO.Directory to FileReference and DirectoryReference. Change 3333032 on 2017/03/06 by Ben.Marsh Documentation for build tools Change 3333037 on 2017/03/06 by Ben.Marsh Add a build step to extract UAT and UBT documentation from XML comments. Change 3333089 on 2017/03/06 by Ben.Marsh UAT: Re-enable logging the calling function to the console in UAT. Needs a pass for readability first. Change 3333651 on 2017/03/06 by Gil.Gribb UE4 - Fix a werid recursive situation where StaticLoadObject could return an object that has not finished loading. Also produces a fatal error if this sometimes happens. EDL only. Change 3335236 on 2017/03/07 by Ben.Marsh UGS: Set the sync changelist separately to the compatibility changelist. Change 3335261 on 2017/03/07 by Gil.Gribb UE4 - Fixed batched render fences when BeginDestroy calls FlushRenderingCommands. Change 3335740 on 2017/03/07 by Gil.Gribb maybe fix static analysis warning Change 3335945 on 2017/03/07 by Steve.Robb Move FFindInstancedReferenceSubobjectHelper code out of header. Add map/set property support to allow instanced members of these container types to be handled during CPFUO. https://udn.unrealengine.com/questions/349232/tmap-with-instanced-object-as-value-gets-cleared-o.html Change 3336693 on 2017/03/07 by Ben.Marsh UBT: Use shared PCHs for game plugins by default, to reduce time spent generating individual PCHs. Change 3336694 on 2017/03/07 by Steve.Robb Static assert added to TMap to prevent the use of keys which don't implement a GetTypeHash. Fixes to types which relied on implicit conversions when calling GetTypeHash. Workaround in SAssetView.h and PropertyEditorModule.h for an apparent VC bug where the compiler wrongly instantiates TPointerIsConvertibleFromTo for certain forward-declared types, causing future TSharedPtr conversions to fail. #jira UE-42441 Change 3336698 on 2017/03/07 by Steve.Robb Hardcoded endpoint handling replaced with a generic string. Obsolete .proto and .java code generation removed. Change 3336811 on 2017/03/07 by Wes.Hunt Add a game blacklist to the crash report processor. Fixed a syntax error in Config.cs, added a XML comment to shut up a warning. Change 3336973 on 2017/03/08 by Steve.Robb Fix for missing GetTypeHash in a plugin. Change 3336996 on 2017/03/08 by Steve.Robb Significant refactor of code generation, to try and make data flow more apparent. Change 3337571 on 2017/03/08 by Steve.Robb CIS fixes for missing GetTypeHash functions. Non-unity fix. Change 3337588 on 2017/03/08 by Gil.Gribb UE4 - Fixed obscure check with flushing rhi resources. Change 3337620 on 2017/03/08 by Steve.Robb WITH_HOT_RELOAD_CTORS macros removed. UseVTableConstructors config option removed. Change 3339369 on 2017/03/09 by Steve.Robb GetTypeHash overload for nn::account::Uid. Change 3339464 on 2017/03/09 by Daniel.Lamb Fixed assert in 4.15 to do with trying to gather dependency info from invalid packages. #jira UE-42583 #test Editor + Cook + Run shootergame Change 3339465 on 2017/03/09 by Maciej.Mroz Fixed serialization issue, after UserDefinedEnum was used in EnumProperty. Change 3339469 on 2017/03/09 by Maciej.Mroz Fixed Nativization problem, when default value is passed as non-const reference. Change 3340178 on 2017/03/09 by Daniel.Lamb Added support for in memory only packages. The Cooker ignores these and added core functions to recognize these packages. Other systems will need to add support where nessisary. Change 3341002 on 2017/03/10 by Maciej.Mroz Nativization: Fixed FFindHeadersToInclude. Headers necessary for owners of subobjects are properly included. Change 3341076 on 2017/03/10 by Steve.Robb Fix for FBakedTextureSourceInfo move semantics. #jira UE-42658 Change 3341160 on 2017/03/10 by Gil.Gribb UE4 - Fix hazard with SetMaterialUsage from a thread. Change 3341409 on 2017/03/10 by Steve.Robb Reduction of the generated code size for StaticRegisterNatives functions. Change 3341523 on 2017/03/10 by Steve.Robb Code generation simplified. Change 3341800 on 2017/03/10 by Ben.Marsh UnrealVS: Fix UnrealVS compatibility with RTM version of Visual Studio 2017. 2017 toolchain for extensions is no longer able to build <= 2015 extensions due to validation of the VSIX manifest, so create a separate solution for it. Change 3342034 on 2017/03/10 by Ben.Marsh Fix compiler setting not being loaded correctly into the Windows target settings dialog. #jira UE-42746 Change 3342041 on 2017/03/10 by Ben.Marsh Fix -ErrorOnEngineContentUse not being set in the cooker options correctly. Change 3342094 on 2017/03/10 by Steve.Robb Fix to deteministic name order during code generation. Change 3342251 on 2017/03/10 by Daniel.Lamb Integrate fix for resave lightmaps commandlet when upgrading from no mapbuilddatapackages to mapbuilddatapackages. #thanks Tim.Hagberg #test None Change 3342961 on 2017/03/13 by Robert.Manuszewski Fixing memory leak when playing while running -nullrhi on the commandline in cooked games caused by shader resources not being destroyed. #jira FORT-38977 Change 3343022 on 2017/03/13 by Steve.Robb GetTypeHash fixes for FUniqueNetIdLive. #jira UE-42788 Change 3343448 on 2017/03/13 by Steve.Robb Compiled-in defer object order fixed. Debuggability of the deferred registration map improved. #jira UE-42828 [CL 3345747 by Ben Marsh in Main branch]
2017-03-14 15:48:33 -04:00
bool bAllowSaveExportedHeaders,
const FManifestModule& Module
);
// FContextSupplier interface.
virtual FString GetContext() override;
// End of FContextSupplier interface.
// High-level compiling functions.
/**
* Parses given source file.
*
* @param AllClasses The class tree for current package.
* @param SourceFile Source file to parse.
*
* @returns Compilation result enum.
*/
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 GC and WeakObjectPtr performance optimizations. - Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray - Moved WeakObjectPtr serial numbersto FUObjectArray - Added pre-allocated UObject array Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved. Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920 UHT will now use makefiles to speed up iterative runs. Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963 Hot-reload performance optimizations: 1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier). 2. Parallelized search for old CDOs referencers. Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster Dependency preloading improvements - Asset registry dependencies now resolve asset redirectors - Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1 Allow UnfocusedVolumeMultiplier to be set programmatically Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1 When cooking, don't add imports that are outers of objects excluded from the current cook target. Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core Inline storage for TFunction. Fix for delegate inline storage on Win64. Some build fixes. Visualizer fixes for new TFunction format. Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReporter Web - Search by Platform Added initial support for streams (GetBranchesAsListItems, CopyToJira) Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString. Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core Some TSet function optimisations: Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent). Taking local copies of HashSize during iterations. Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core BulkData zero byte allocations are now handled by an RAII object which owns the memory. Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core FName::operator== and != optimised to be a single comparison. Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro) Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360) Also fixed starting condition. Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1 PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus) Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core PR #1540 - Specifying a different Saved folder at launch through a command line parameter Integrated and optimized. #lockdown Nick.Penwarden [CL 2772222 by Robert Manuszewski in Main branch]
2015-11-18 16:20:49 -05:00
ECompilationResult::Type ParseHeader(FClasses& AllClasses, FUnrealSourceFile* SourceFile);
void CompileDirective(FClasses& AllClasses);
void FinalizeScriptExposedFunctions(UClass* Class);
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 GC and WeakObjectPtr performance optimizations. - Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray - Moved WeakObjectPtr serial numbersto FUObjectArray - Added pre-allocated UObject array Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved. Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920 UHT will now use makefiles to speed up iterative runs. Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963 Hot-reload performance optimizations: 1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier). 2. Parallelized search for old CDOs referencers. Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster Dependency preloading improvements - Asset registry dependencies now resolve asset redirectors - Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1 Allow UnfocusedVolumeMultiplier to be set programmatically Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1 When cooking, don't add imports that are outers of objects excluded from the current cook target. Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core Inline storage for TFunction. Fix for delegate inline storage on Win64. Some build fixes. Visualizer fixes for new TFunction format. Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReporter Web - Search by Platform Added initial support for streams (GetBranchesAsListItems, CopyToJira) Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString. Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core Some TSet function optimisations: Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent). Taking local copies of HashSize during iterations. Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core BulkData zero byte allocations are now handled by an RAII object which owns the memory. Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core FName::operator== and != optimised to be a single comparison. Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro) Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360) Also fixed starting condition. Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1 PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus) Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core PR #1540 - Specifying a different Saved folder at launch through a command line parameter Integrated and optimized. #lockdown Nick.Penwarden [CL 2772222 by Robert Manuszewski in Main branch]
2015-11-18 16:20:49 -05:00
UEnum* CompileEnum();
UScriptStruct* CompileStructDeclaration(FClasses& AllClasses);
Copying //UE4/Release-Staging-4.11 to //UE4/Main (Source: //UE4/Release-Staging-4.11 @ 2941426, //UE4/Release-4.11 @ 2927265) ========================== MAJOR FEATURES + CHANGES ========================== Change 2910079 on 2016/03/15 by Taizyd.Korambayil #jira UE-28293 Reworded some Sentences Change 2910157 on 2016/03/15 by Taizyd.Korambayil #jira UE-28240 Rebuilt Lighting for Sanctuary Change 2910317 on 2016/03/15 by Ben.Marsh Fix crash trying to print out a message explaining that you need to install the Visual Studio 2015 toolchain, if the Visual Studio 2015 toolchain is not installed! Change 2910425 on 2016/03/15 by Ori.Cohen Fix crash and incorrect behavior when setting physical material on a welded body. #JIRA UE-28399 #rb Marc.Audy Change 2910525 on 2016/03/15 by Ori.Cohen Fix player capsule not spawning at the right place due to float precision issues. #JIRA UE-28438 #rb Zak.Middleton Change 2910595 on 2016/03/15 by Chris.Babcock Fixed issue with missing event location paired with IE_Pressed if IE_DoubleClick generated #jira UE-28051 #ue4 #codereview Marc.Audy Change 2911442 on 2016/03/16 by Andrew.Rodham Sequencer: Fixed frame grabbers where hardware mapped surfaces to memory of a different stride #jira UE-28434 Change 2911596 on 2016/03/16 by andrew.porter Test content for blueprint vertex painting #jira UE-24473 Change 2911860 on 2016/03/16 by Jamie.Dale Allowed SViewport to (once again) be able to use non-pre-multiplied alpha blending SViewport now has an PreMultipliedAlpha argument (default true), which can control whether to use pre-multiplied alpha when blending is enabled (blending is disabled by default). Note: This is a change in behavior from 4.10, as non-pre-multiplied alpha blending used to be the default, but pre-multiplied alpha blending better supports the pipeline used through Slate. This change also cleans up the use of bool parameters in the FSlateDrawElement::MakeX functions to control the render behavior, instead favoring use of advanced ESlateDrawEffect flags. API Breaking Changes - FSlateDrawElement::MakeGradient no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInAllowBlending bool, instead pass ESlateDrawEffect::NoBlending as part of InDrawEffects to disable blending. #jira UE-26797 Change 2912345 on 2016/03/16 by Olaf.Piesche Removing the check that causes UE-28441, duplicating beam type data module from highest LOD in Cascade causes crash. The beam data module is the only one that explicitly checks to make sure it's always shared across LOD levels; there's no obvious reasons why duplicating beam data modules shouldn't be possible. #codereview simon.tovey #jira UE-28441 Change 2912526 on 2016/03/16 by Steve.Robb Fix uninitialized variables. #codereview robert.manuszewski #jira UE-28391 Change 2913114 on 2016/03/17 by Steve.Robb Fixed some private properties which caused UHT errors. #codereview robert.manuszewski #jira UE-28059 Change 2913295 on 2016/03/17 by Richard.TalbotWatkin Replicated from Dev-Editor CL 2913224 Disallow assets from being deleted if PIE is active. This prevents various troubles which can occur when PIE is referencing asset objects. #jira UE-12387 - [CrashReport] Crash when deleting assets needed for template #RB Nick.Darnell, Frank.Fella Change 2913310 on 2016/03/17 by Nick.Shin merging from //UE4/Dev-Platform to //UE4/Release-4.11 --- original commit CL: #2913300 message --- corrected VS 2015 websocket lib to look at the right offset it is currently a high risk change to just update the libwebsocket wholesale for release-4.11. this change is the most minimum invasive change with a lot of deep analysis (details will be put in jira: # UEPLAT-1221). this fix will also be pushed up to release-4.11 #jira UE-22166 - HTML5 Cook on the fly will launch and then close browser #jira UE-22513 - HTTP Network File System crashes randomly. #jira UE-28003 - Fail to QuickLaunch HTML5 through UnrealFrontEnd Change 2913593 on 2016/03/17 by Mark.Satterthwaite For non-debug builds silence the warning about no deth/stencil when shader writes to depth in MetalRHI - the RHI implementation will create a temporary D/S buffer to cope but really this needs to be properly addressed elsewhere. #jira UE-28491 Change 2913655 on 2016/03/17 by Taizyd.Korambayil #jira UE-28492 Rebuilt Lighting For the Samples Listed Change 2914025 on 2016/03/17 by Olaf.Piesche Make sure ST primitives are added to NST draw list if in shader complexity mode #codereview simon.tovey #jira UE-28471 Change 2914027 on 2016/03/17 by Nick.Shin [CL 2941462 by Ben Marsh in Main branch]
2016-04-12 17:04:39 -04:00
bool CompileDeclaration(FClasses& AllClasses, TArray<UDelegateFunction*>& DelegatesToFixup, FToken& Token);
/** Skip C++ (noexport) declaration. */
bool SkipDeclaration(FToken& Token);
/** Similar to MatchSymbol() but will return to the exact location as on entry if the symbol was not found. */
bool SafeMatchSymbol(const TCHAR* Match);
void HandleOneInheritedClass(FClasses& AllClasses, UClass* Class, FString InterfaceName);
FClass* ParseClassNameDeclaration(FClasses& AllClasses, FString& DeclaredClassName, FString& RequiredAPIMacroIfPresent);
/** The property style of a variable declaration being parsed */
struct EPropertyDeclarationStyle
{
enum Type
{
None,
UPROPERTY
};
};
/**
* Resets current class data back to its defaults.
*/
void ResetClassData();
/**
* Create new function object based on given info structure.
*/
UFunction* CreateFunction(const FFuncInfo &FuncInfo) const;
/**
* Create new delegate function object based on given info structure.
*/
template<typename T>
UDelegateFunction* CreateDelegateFunction(const FFuncInfo &FuncInfo) const;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
UClass* CompileClassDeclaration(FClasses& AllClasses);
Copying //UE4/Release-Staging-4.11 to //UE4/Main (Source: //UE4/Release-Staging-4.11 @ 2941426, //UE4/Release-4.11 @ 2927265) ========================== MAJOR FEATURES + CHANGES ========================== Change 2910079 on 2016/03/15 by Taizyd.Korambayil #jira UE-28293 Reworded some Sentences Change 2910157 on 2016/03/15 by Taizyd.Korambayil #jira UE-28240 Rebuilt Lighting for Sanctuary Change 2910317 on 2016/03/15 by Ben.Marsh Fix crash trying to print out a message explaining that you need to install the Visual Studio 2015 toolchain, if the Visual Studio 2015 toolchain is not installed! Change 2910425 on 2016/03/15 by Ori.Cohen Fix crash and incorrect behavior when setting physical material on a welded body. #JIRA UE-28399 #rb Marc.Audy Change 2910525 on 2016/03/15 by Ori.Cohen Fix player capsule not spawning at the right place due to float precision issues. #JIRA UE-28438 #rb Zak.Middleton Change 2910595 on 2016/03/15 by Chris.Babcock Fixed issue with missing event location paired with IE_Pressed if IE_DoubleClick generated #jira UE-28051 #ue4 #codereview Marc.Audy Change 2911442 on 2016/03/16 by Andrew.Rodham Sequencer: Fixed frame grabbers where hardware mapped surfaces to memory of a different stride #jira UE-28434 Change 2911596 on 2016/03/16 by andrew.porter Test content for blueprint vertex painting #jira UE-24473 Change 2911860 on 2016/03/16 by Jamie.Dale Allowed SViewport to (once again) be able to use non-pre-multiplied alpha blending SViewport now has an PreMultipliedAlpha argument (default true), which can control whether to use pre-multiplied alpha when blending is enabled (blending is disabled by default). Note: This is a change in behavior from 4.10, as non-pre-multiplied alpha blending used to be the default, but pre-multiplied alpha blending better supports the pipeline used through Slate. This change also cleans up the use of bool parameters in the FSlateDrawElement::MakeX functions to control the render behavior, instead favoring use of advanced ESlateDrawEffect flags. API Breaking Changes - FSlateDrawElement::MakeGradient no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInAllowBlending bool, instead pass ESlateDrawEffect::NoBlending as part of InDrawEffects to disable blending. #jira UE-26797 Change 2912345 on 2016/03/16 by Olaf.Piesche Removing the check that causes UE-28441, duplicating beam type data module from highest LOD in Cascade causes crash. The beam data module is the only one that explicitly checks to make sure it's always shared across LOD levels; there's no obvious reasons why duplicating beam data modules shouldn't be possible. #codereview simon.tovey #jira UE-28441 Change 2912526 on 2016/03/16 by Steve.Robb Fix uninitialized variables. #codereview robert.manuszewski #jira UE-28391 Change 2913114 on 2016/03/17 by Steve.Robb Fixed some private properties which caused UHT errors. #codereview robert.manuszewski #jira UE-28059 Change 2913295 on 2016/03/17 by Richard.TalbotWatkin Replicated from Dev-Editor CL 2913224 Disallow assets from being deleted if PIE is active. This prevents various troubles which can occur when PIE is referencing asset objects. #jira UE-12387 - [CrashReport] Crash when deleting assets needed for template #RB Nick.Darnell, Frank.Fella Change 2913310 on 2016/03/17 by Nick.Shin merging from //UE4/Dev-Platform to //UE4/Release-4.11 --- original commit CL: #2913300 message --- corrected VS 2015 websocket lib to look at the right offset it is currently a high risk change to just update the libwebsocket wholesale for release-4.11. this change is the most minimum invasive change with a lot of deep analysis (details will be put in jira: # UEPLAT-1221). this fix will also be pushed up to release-4.11 #jira UE-22166 - HTML5 Cook on the fly will launch and then close browser #jira UE-22513 - HTTP Network File System crashes randomly. #jira UE-28003 - Fail to QuickLaunch HTML5 through UnrealFrontEnd Change 2913593 on 2016/03/17 by Mark.Satterthwaite For non-debug builds silence the warning about no deth/stencil when shader writes to depth in MetalRHI - the RHI implementation will create a temporary D/S buffer to cope but really this needs to be properly addressed elsewhere. #jira UE-28491 Change 2913655 on 2016/03/17 by Taizyd.Korambayil #jira UE-28492 Rebuilt Lighting For the Samples Listed Change 2914025 on 2016/03/17 by Olaf.Piesche Make sure ST primitives are added to NST draw list if in shader complexity mode #codereview simon.tovey #jira UE-28471 Change 2914027 on 2016/03/17 by Nick.Shin [CL 2941462 by Ben Marsh in Main branch]
2016-04-12 17:04:39 -04:00
UDelegateFunction* CompileDelegateDeclaration(FClasses& AllClasses, const TCHAR* DelegateIdentifier, EDelegateSpecifierAction::Type SpecifierAction = EDelegateSpecifierAction::DontParse);
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 GC and WeakObjectPtr performance optimizations. - Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray - Moved WeakObjectPtr serial numbersto FUObjectArray - Added pre-allocated UObject array Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved. Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920 UHT will now use makefiles to speed up iterative runs. Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963 Hot-reload performance optimizations: 1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier). 2. Parallelized search for old CDOs referencers. Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster Dependency preloading improvements - Asset registry dependencies now resolve asset redirectors - Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1 Allow UnfocusedVolumeMultiplier to be set programmatically Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1 When cooking, don't add imports that are outers of objects excluded from the current cook target. Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core Inline storage for TFunction. Fix for delegate inline storage on Win64. Some build fixes. Visualizer fixes for new TFunction format. Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReporter Web - Search by Platform Added initial support for streams (GetBranchesAsListItems, CopyToJira) Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString. Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core Some TSet function optimisations: Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent). Taking local copies of HashSize during iterations. Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core BulkData zero byte allocations are now handled by an RAII object which owns the memory. Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core FName::operator== and != optimised to be a single comparison. Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro) Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360) Also fixed starting condition. Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1 PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus) Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core PR #1540 - Specifying a different Saved folder at launch through a command line parameter Integrated and optimized. #lockdown Nick.Penwarden [CL 2772222 by Robert Manuszewski in Main branch]
2015-11-18 16:20:49 -05:00
void CompileFunctionDeclaration(FClasses& AllClasses);
void CompileVariableDeclaration (FClasses& AllClasses, UStruct* Struct);
void CompileInterfaceDeclaration(FClasses& AllClasses);
FClass* ParseInterfaceNameDeclaration(FClasses& AllClasses, FString& DeclaredInterfaceName, FString& RequiredAPIMacroIfPresent);
bool TryParseIInterfaceClass(FClasses& AllClasses);
Copying //UE4/Release-Staging-4.11 to //UE4/Main (Source: //UE4/Release-Staging-4.11 @ 2941426, //UE4/Release-4.11 @ 2927265) ========================== MAJOR FEATURES + CHANGES ========================== Change 2910079 on 2016/03/15 by Taizyd.Korambayil #jira UE-28293 Reworded some Sentences Change 2910157 on 2016/03/15 by Taizyd.Korambayil #jira UE-28240 Rebuilt Lighting for Sanctuary Change 2910317 on 2016/03/15 by Ben.Marsh Fix crash trying to print out a message explaining that you need to install the Visual Studio 2015 toolchain, if the Visual Studio 2015 toolchain is not installed! Change 2910425 on 2016/03/15 by Ori.Cohen Fix crash and incorrect behavior when setting physical material on a welded body. #JIRA UE-28399 #rb Marc.Audy Change 2910525 on 2016/03/15 by Ori.Cohen Fix player capsule not spawning at the right place due to float precision issues. #JIRA UE-28438 #rb Zak.Middleton Change 2910595 on 2016/03/15 by Chris.Babcock Fixed issue with missing event location paired with IE_Pressed if IE_DoubleClick generated #jira UE-28051 #ue4 #codereview Marc.Audy Change 2911442 on 2016/03/16 by Andrew.Rodham Sequencer: Fixed frame grabbers where hardware mapped surfaces to memory of a different stride #jira UE-28434 Change 2911596 on 2016/03/16 by andrew.porter Test content for blueprint vertex painting #jira UE-24473 Change 2911860 on 2016/03/16 by Jamie.Dale Allowed SViewport to (once again) be able to use non-pre-multiplied alpha blending SViewport now has an PreMultipliedAlpha argument (default true), which can control whether to use pre-multiplied alpha when blending is enabled (blending is disabled by default). Note: This is a change in behavior from 4.10, as non-pre-multiplied alpha blending used to be the default, but pre-multiplied alpha blending better supports the pipeline used through Slate. This change also cleans up the use of bool parameters in the FSlateDrawElement::MakeX functions to control the render behavior, instead favoring use of advanced ESlateDrawEffect flags. API Breaking Changes - FSlateDrawElement::MakeGradient no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInAllowBlending bool, instead pass ESlateDrawEffect::NoBlending as part of InDrawEffects to disable blending. #jira UE-26797 Change 2912345 on 2016/03/16 by Olaf.Piesche Removing the check that causes UE-28441, duplicating beam type data module from highest LOD in Cascade causes crash. The beam data module is the only one that explicitly checks to make sure it's always shared across LOD levels; there's no obvious reasons why duplicating beam data modules shouldn't be possible. #codereview simon.tovey #jira UE-28441 Change 2912526 on 2016/03/16 by Steve.Robb Fix uninitialized variables. #codereview robert.manuszewski #jira UE-28391 Change 2913114 on 2016/03/17 by Steve.Robb Fixed some private properties which caused UHT errors. #codereview robert.manuszewski #jira UE-28059 Change 2913295 on 2016/03/17 by Richard.TalbotWatkin Replicated from Dev-Editor CL 2913224 Disallow assets from being deleted if PIE is active. This prevents various troubles which can occur when PIE is referencing asset objects. #jira UE-12387 - [CrashReport] Crash when deleting assets needed for template #RB Nick.Darnell, Frank.Fella Change 2913310 on 2016/03/17 by Nick.Shin merging from //UE4/Dev-Platform to //UE4/Release-4.11 --- original commit CL: #2913300 message --- corrected VS 2015 websocket lib to look at the right offset it is currently a high risk change to just update the libwebsocket wholesale for release-4.11. this change is the most minimum invasive change with a lot of deep analysis (details will be put in jira: # UEPLAT-1221). this fix will also be pushed up to release-4.11 #jira UE-22166 - HTML5 Cook on the fly will launch and then close browser #jira UE-22513 - HTTP Network File System crashes randomly. #jira UE-28003 - Fail to QuickLaunch HTML5 through UnrealFrontEnd Change 2913593 on 2016/03/17 by Mark.Satterthwaite For non-debug builds silence the warning about no deth/stencil when shader writes to depth in MetalRHI - the RHI implementation will create a temporary D/S buffer to cope but really this needs to be properly addressed elsewhere. #jira UE-28491 Change 2913655 on 2016/03/17 by Taizyd.Korambayil #jira UE-28492 Rebuilt Lighting For the Samples Listed Change 2914025 on 2016/03/17 by Olaf.Piesche Make sure ST primitives are added to NST draw list if in shader complexity mode #codereview simon.tovey #jira UE-28471 Change 2914027 on 2016/03/17 by Nick.Shin [CL 2941462 by Ben Marsh in Main branch]
2016-04-12 17:04:39 -04:00
bool CompileStatement(FClasses& AllClasses, TArray<UDelegateFunction*>& DelegatesToFixup);
// Checks to see if a particular kind of command is allowed on this nesting level.
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
bool IsAllowedInThisNesting(ENestAllowFlags AllowFlags);
// Make sure that a particular kind of command is allowed on this nesting level.
// If it's not, issues a compiler error referring to the token and the current
// nesting level.
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2877442 on 2016/02/23 by Graeme.Thornton@GThornton_DevCore Allow 'dumpnonframe' stat command to also take an optional group name which will filter the output Change 2879289 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Removed "-" in switch string for load time tracker. Makes -NoLoadTrackClear cmd line param actually work Change 2879323 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore PC builds now log engine initialization time with the load time tracker Change 2879418 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Optimization for FSignedArchiveReader - Compute incoming data hash in parallel on another thread while we serialize and decrypt the signature on the chunk cache worker thread Change 2879419 on 2016/02/24 by Graeme.Thornton@GThornton_DevCore Extra stats for PakFile group - Time reading from pak handles - Number of open pak handles Change 2881199 on 2016/02/25 by Graeme.Thornton@GThornton_DevCore Use 32 bit CRCs to hash chunk contents rather than SHA1. Much faster to compute than SHA1, and the decrypting 4 bytes rather than 20 is also a lot faster Change 2885687 on 2016/02/29 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Close disregard for GC pool when disabling it to leave it in a good state. Change 2887358 on 2016/03/01 by Steve.Robb@Dev-Core FlushCurrentThreadCache calls forwarded on from FMalloc wrappers. Change 2887398 on 2016/03/01 by Steve.Robb@Dev-Core Stats for MallocBinned2. Change 2887682 on 2016/03/01 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added code to catch game hangs. If game thread is stalled for more than 5 seconds we will catch that, report its callstack and crash. Change 2889573 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Renamed the new StackWalkAndDump to ThreadStackWalkAndDump to avoid name collisions and build errors. Change 2889687 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Send thread heartbeats during potentially slow tasks. Change 2889963 on 2016/03/02 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Added the ability to query the name of a thread given its TLS id. Change 2890439 on 2016/03/02 by Steve.Robb@Dev-Core MallocBinned redirection header, to allow easy switching between MallocBinned and MallocBinned2. Switch back to MallocBinned by default. Change 2891799 on 2016/03/03 by Steve.Robb@Dev-Core Shrunken GMallocBinned2MemSizeToIndex array. Improvement of some shared templated alignment-related functions. Change 2891812 on 2016/03/03 by Graeme.Thornton@GThornton_DevCore Refactoring of pak signing to be more compatible with patching - Store signatures in a block at the end of the pak file - Optimize decryption of signatures by serializing them all when the pak is opened, and decrypting on the chunk cache worker thread between read requests. Change 2891813 on 2016/03/03 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream2 Don't compile UnrealPak with ICU Change 2892386 on 2016/03/03 by Steve.Robb@Dev-Core GitHub #2070 - Fix incorrect FMallocDebug::Malloc alignment checking Change 2894189 on 2016/03/04 by Steve.Robb@Dev-Core Memswap fixes for sizes of 3, 5, 6 and 7, and early out on 0. Change 2894427 on 2016/03/04 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Don't display message boxes in unattended mode when D3D device is removed. Change 2896912 on 2016/03/07 by Graeme.Thornton@GThornton_DevCore Disable reading of anything outside the pak file when in shipping builds Change 2897053 on 2016/03/07 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 A few improvements to thread heartbeat thread: - Don't check for heartbeat in debug builds - Don't spawn the thread heartbeat thread for programs - Ignore stalls when exiting Change 2898752 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Fixing race conditions when using malloc verify Change 2899075 on 2016/03/08 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 UnrealPak will now accept hex values for p and q. Added the command line param to trust p and q. Change 2899091 on 2016/03/08 by Steve.Robb@Dev-Core Fix for TQueue::Peek const-correctness. Change 2902775 on 2016/03/10 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 Adding code to test signature keys. Change 2905040 on 2016/03/11 by Robert.Manuszewski@Robert.Manuszewski_NCL_Stream1 TBigInt Multiply is now 30x faster Change 2905218 on 2016/03/11 by Steve.Robb@Dev-Core New FCString::Strspn and FCString::Strcspn functions. [CL 2921423 by Robert Manuszewski in Main branch]
2016-03-24 13:53:55 -04:00
void CheckAllow(const TCHAR* Thing, ENestAllowFlags AllowFlags);
UStruct* GetSuperScope( UStruct* CurrentScope, const FName& SearchName );
void SkipStatements( int32 SubCount, const TCHAR* ErrorTag );
/**
* Parses a variable or return value declaration and determines the variable type and property flags.
*
* @param AllClasses the class tree for CurrentPackage
* @param Scope struct to create the property in
* @param VarProperty will be filled in with type and property flag data for the property declaration that was parsed
* @param Disallow contains a mask of variable modifiers that are disallowed in this context
* @param OuterPropertyType only specified when compiling the inner properties for arrays or maps. corresponds to the FToken for the outer property declaration.
* @param PropertyDeclarationStyle if the variable is defined with a UPROPERTY
* @param VariableCategory what kind of variable is being parsed
* @param ParsedVarIndexRange The source text [Start, End) index range for the parsed type.
*/
void GetVarType(
FClasses& AllClasses,
FScope* Scope,
FPropertyBase& VarProperty,
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
EPropertyFlags Disallow,
const FToken* OuterPropertyType,
EPropertyDeclarationStyle::Type PropertyDeclarationStyle,
EVariableCategory::Type VariableCategory,
FIndexRange* ParsedVarIndexRange = nullptr);
/**
* Parses a variable name declaration and creates a new UProperty object.
*
* @param Scope struct to create the property in
* @param VarProperty type and propertyflag info for the new property (inout)
* @param VariableCategory what kind of variable is being created
*
* @return a pointer to the new UProperty if successful, or NULL if there was no property to parse
*/
UProperty* GetVarNameAndDim(
UStruct* Struct,
FToken& VarProperty,
EVariableCategory::Type VariableCategory);
/**
* Returns whether the specified class can be referenced from the class currently being compiled.
*
* @param Scope The scope we are currently parsing.
* @param CheckClass The class we want to reference.
*
* @return true if the specified class is an intrinsic type or if the class has successfully been parsed
*/
bool AllowReferenceToClass(UStruct* Scope, UClass* CheckClass) const;
/**
* @return true if Scope has UProperty objects in its list of fields
*/
static bool HasMemberProperties( const UStruct* Scope );
/**
* Parses optional metadata text.
*
* @param MetaData the metadata map to store parsed metadata in
* @param FieldName the field being parsed (used for logging)
*
* @return true if metadata was specified
*/
void ParseFieldMetaData(TMap<FName, FString>& MetaData, const TCHAR* FieldName);
/**
* Formats the current comment, if any, and adds it to the metadata as a tooltip.
*
* @param MetaData the metadata map to store the tooltip in
*/
void AddFormattedPrevCommentAsTooltipMetaData(TMap<FName, FString>& MetaData);
/**
* Tries to parse the token as an access protection specifier (public:, protected:, or private:)
*
* @return EAccessSpecifier this is, or zero if it is none
*/
EAccessSpecifier ParseAccessProtectionSpecifier(FToken& Token);
const TCHAR* NestTypeName( ENestType NestType );
FClass* GetQualifiedClass(const FClasses& AllClasses, const TCHAR* Thing);
/**
* Increase the nesting level, setting the new top nesting level to
* the one specified. If pushing a function or state and it overrides a similar
* thing declared on a lower nesting level, verifies that the override is legal.
*
* @param NestType the new nesting type
* @param InNode @todo
*/
void PushNest(ENestType NestType, UStruct* InNode, FUnrealSourceFile* SourceFile = nullptr);
void PopNest(ENestType NestType, const TCHAR* Descr);
/**
* Tasks that need to be done after popping function declaration
* from parsing stack.
*
* @param AllClasses The class tree for current package.
* @param PoppedFunction Function that have just been popped.
*/
void PostPopFunctionDeclaration(FClasses& AllClasses, UFunction* PoppedFunction);
/**
* Tasks that need to be done after popping interface definition
* from parsing stack.
*
* @param AllClasses The class tree for current package.
* @param CurrentInterface Interface that have just been popped.
*/
void PostPopNestInterface(FClasses& AllClasses, UClass* CurrentInterface);
/**
* Tasks that need to be done after popping class definition
* from parsing stack.
*
* @param CurrentClass Class that have just been popped.
*/
void PostPopNestClass(UClass* CurrentClass);
/**
* Binds all delegate properties declared in ValidationScope the delegate functions specified in the variable declaration, verifying that the function is a valid delegate
* within the current scope. This must be done once the entire class has been parsed because instance delegate properties must be declared before the delegate declaration itself.
*
* @todo: this function will no longer be required once the post-parse fixup phase is added (TTPRO #13256)
*
* @param AllClasses the class tree for CurrentPackage
* @param Struct the struct to validate delegate properties for
* @param Scope the current scope
* @param DelegateCache cached map of delegates that have already been found; used for faster lookup.
*/
void FixupDelegateProperties(FClasses& AllClasses, UStruct* ValidationScope, FScope& Scope, TMap<FName, UFunction*>& DelegateCache);
// Retry functions.
void InitScriptLocation( FScriptLocation& Retry );
void ReturnToLocation( const FScriptLocation& Retry, bool Binary=1, bool Text=1 );
/**
* If the property has already been seen during compilation, then return add. If not,
* then return replace so that INI files don't mess with header exporting
*
* @param PropertyName the string token for the property
*
* @return FNAME_Replace_Not_Safe_For_Threading or FNAME_Add
*/
EFindName GetFindFlagForPropertyName(const TCHAR* PropertyName);
static void ValidatePropertyIsDeprecatedIfNecessary(FPropertyBase& VarProperty, const FToken* OuterPropertyType);
private:
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 GC and WeakObjectPtr performance optimizations. - Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray - Moved WeakObjectPtr serial numbersto FUObjectArray - Added pre-allocated UObject array Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved. Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920 UHT will now use makefiles to speed up iterative runs. Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963 Hot-reload performance optimizations: 1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier). 2. Parallelized search for old CDOs referencers. Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster Dependency preloading improvements - Asset registry dependencies now resolve asset redirectors - Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1 Allow UnfocusedVolumeMultiplier to be set programmatically Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1 When cooking, don't add imports that are outers of objects excluded from the current cook target. Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core Inline storage for TFunction. Fix for delegate inline storage on Win64. Some build fixes. Visualizer fixes for new TFunction format. Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReporter Web - Search by Platform Added initial support for streams (GetBranchesAsListItems, CopyToJira) Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString. Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core Some TSet function optimisations: Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent). Taking local copies of HashSize during iterations. Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core BulkData zero byte allocations are now handled by an RAII object which owns the memory. Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core FName::operator== and != optimised to be a single comparison. Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro) Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360) Also fixed starting condition. Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1 PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus) Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core PR #1540 - Specifying a different Saved folder at launch through a command line parameter Integrated and optimized. #lockdown Nick.Penwarden [CL 2772222 by Robert Manuszewski in Main branch]
2015-11-18 16:20:49 -05:00
// Source file currently parsed by UHT.
FUnrealSourceFile* CurrentSourceFile;
// Module currently parsed by UHT.
const FManifestModule* CurrentlyParsedModule;
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3510040) #lockdown Nick.Penwarden ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3459524 by Marc.Audy Get/Set of properties that were previously BPRW/BPRO should error when used #jira UE-20993 Change 3460004 by Phillip.Kavan #jira UE-45171 - Fix C++ compilation failures during packaging caused by nativizing a Blueprint that overrides a native function with a 'TSubclassOf' parameter or return value. Change summary: - Modified FKismetCompilerContext::CreateParametersForFunction() to pass the 'CPF_UObjectWrapper' flag through to new function parameter properties during Blueprint compilation. Change 3461210 by Phillip.Kavan #jira UE-44505 - Fix occasional Blueprint editor crashes that could occur while rebuilding the context menu from the action registry. Change summary: - Modified FBlueprintActionDatabase::FActionRegistry to use an FObjectKey as the key type. This allows us to test entries for UObject validity before rebuilding context menu items based on the action database. - Changed FBlueprintActionInfo::CachedOwnerClass to be a TWeakObjectPtr rather than a raw UClass* since it's based on the ActionOwner, which could potentially become invalid after the OwnerClass has been cached. - Modified FBlueprintActionDatabase::RefreshAssetActions() to exclude World assets if the WorldType is not EWorldType::Editor. This eliminates an issue with unreferenced "inactive" GC'd world objects being left in the BP action registry after cooking, at which point the keys could become invalid. - Added FBlueprintActionDatabase::DeferredRemoveEntry() to allow for scheduling removal of entries from outside of the database if they are known to be invalid. - Modified FBlueprintActionDatabase::Tick() to handle deferred entry removals. - Modified FBlueprintActionMenuBuilder::RebuildActionList() to both test actions for validity before building menu items and schedule removal of invalid actions on the next tick. Notes: - Alternatively we could just include UObject keys in the database's AddReferencedObject impl, but that would then prevent objects from ever being GC'd if they are not explicitly removed. For most entries the action database takes the approach of explicitly removing entries via delegate when the UObject is destroyed, so I chose to use a TWeakObjectPtr instead so that any entries that may not be getting explicitly removed via delegate will now simply become invalidated if the UObject key is GC'd due to not being referenced. I also set it up to clean and remove any entries (along with any associated node spawners) that are found to be invalid the next time we open the BP editor. Change 3461373 by Lukasz.Furman fixed async navmesh rebuilds not kicking in for requests from navdata.bForceRebuildOnLoad #jira UE-44231 Change 3461409 by Lukasz.Furman fixed reenabling automatic navmesh generation in Editor Preferences #ue4 Change 3461550 by Ben.Zeigler #jira UE-45328 Fix local variable support for Redirectors and other save-time validation. We need to run the local variables to UProperty and back at save time Add new flag PPF_SerializedAsImportText which is used for BP pins/default values and indicates that something has been serialized as import text and so needs to handle string asset redirectors Change 3462625 by Zak.Middleton #ue4 - Fix InterpToMovementComponent not setting velocity on the object it moves. Fix movement rate when substepping enabled (other related fixes to come). github PR #3620 Change 3462796 by Dan.Oconnor Fix for spamming BroadcastBlueprintReinstanced and for creating CDO at wrong time when compiling FrontEnd.uasset in OrionGame #jira UE-45434 Change 3462995 by Ben.Zeigler #jira UE-16941 Fix it so Load Asset node works with a literal value as well as a connected pin Change 3463099 by Ben.Zeigler #jira UE-45471 Allow abstract base classes for primary assets Change 3464809 by Marc.Audy Expose FVector2D / FVector2D to blueprints #jira UE-45427 Change 3467254 by Mieszko.Zielinski Added an AI helper BP function that supplies caller with a copy of navigation path given controller is currently following #UE4 Change 3467644 by Dan.Oconnor Fix for cook issues in ocean when using compilation manager, one issue caused by bad dependencies list, one issue caused by lack of subobject mapping in archetype reinstancing. #jira UE-45443, UE-45444 Change 3468176 by Dan.Oconnor Fix dependent blueprints being marked dirty when a blueprint is compiled Change 3468353 by Michael.Noland UnrealHeaderTool: Improved the warning generated when missing Category= on a function or property declared in an engine module, and centralized the logic that determines if the module is engine or game Change 3470532 by Dan.Oconnor Re-enable compilation manager Change 3470572 by Dan.Oconnor Fix for pin paramters resetting when an archetype was reinstanced #jira UE-45619 #rnx Change 3471949 by Mason.Seay Adding Primary Assets for testing Change 3472074 by Ben.Zeigler #jira UE-45140 Convert iterative cooking to use the Asset Registry as it's only mode, remove old hash and timestamp versions. This allows deleting the entire PackageDependencyInfo module Change the asset registry iteration to not compute a hash at all, and instead store the script package guids in it's cache. Expose bIgnoreIniSettingsOutOfDateForIteration and bIgnoreScriptPackagesOutOfDateForIteration in cooker settings, affects rather to listen to ini/script changes when doing iterative cooking Change 3472079 by Ben.Zeigler With new incremental cook options, change Fortnite to never care about ini settings, but do care about code changes. This can be changed but from previous discussions we wanted to be more safe than fast here Change 3473429 by Lukasz.Furman changed path following update tick to allow working on "invalid, update pending" paths, solves AI getting stuck when navigation is rebuild very frequently (e.g. every tick from moving mesh) #jira UE-41884 Change 3473476 by Lukasz.Furman changed crowd simulation path update tick to allow working on "invalid, update pending" paths, solves AI getting stuck when navigation is rebuild very frequently (e.g. every tick from moving mesh) #jira UE-41884 Change 3473663 by Ben.Zeigler Fix it so base k2node registers framework version, this is needed for the assetptr fixup I previously added Change 3473679 by Mason.Seay Slight cleanup of test map and added ability to teleport across level for easy navigation Change 3473712 by Marc.Audy Do default value validation against the actual value of the default entry of an enum rather than the serialized empty autogenerated default value Change 3474055 by Marc.Audy When nodes are reconstructed any pins that were previously linked or set to non-default values that have been removed will no longer simply vanish, but instead will remain in an Orphaned state until dealt with. #jira UE-41828 Change 3474119 by mason.seay Tweaked Force Feedback test Change 3474156 by Marc.Audy Actually enable orphan pin retention Change 3474382 by Ben.Zeigler Class.h Header and comment cleanup. Started this because IsChildOf did not have a comment and it's usage is a bit confusing Change 3474386 by Ben.Zeigler Close popup window when adding asset class to audit window Change 3474491 by Ben.Zeigler Remove ability for Worlds to not be saved as assets, this has been the default since 2014. Change 3475363 by Marc.Audy Alt-click now works with orphaned pins #jira UE-45699 Change 3475523 by Marc.Audy Fixup Fortnite and Paragon content for orphaned pin errors and warnings Change 3475623 by Phillip.Kavan #jira UE-45477 - Fix an EDL assertion on load in a nativized build with one or more Actor subobjects instanced via the EditInlineNew UI in the BP class defaults property editor. Change summary: - Modified FEmitDefaultValueHelper::OuterGenerate() to emit code to construct/initialize instanced subobject values that do not have the RF_DefaultSubObject flag set, and also to recursively handle nested subobjects for those values. - Modified FEmitDefaultValueHelper::HandleInstancedSubobject() to alternatively emit a 'NewObject' assignment statement rather than a 'CreateDefaultSubobject' statement if only RF_ArchetypeObject is set on the source object value. Change 3476008 by Dan.Oconnor Fix for failing to preload our super class's subobjects. Effectively moving UBlueprint::ForceLoad calls earlier in loading process. This only results in data resetting to your parent's parent's default value from your parent's default value. #jira UE-18765 Change 3476115 by Dan.Oconnor Fix missing category information for inherited functions when using compilation manager #jira UE-45660 #rnx Change 3476577 by Lukasz.Furman added early outs from navmesh layer generation when there's no walkable cells or contours to avoid allocating 0 bytes by next generation steps (behavior differs between platforms) #ue4 Change 3476587 by Phillip.Kavan #jira UE-45517 - Fix a regression in which dragging UMG widgets around in the designer view results in redundantly-compounded BP class properties and context menu actions. Change summary: - Modified SDesignerView::ClearDropPreviews() to move the widget that was removed from the tree into the transient package. This ensures that FWidgetBlueprintCompiler::CreateClassVariablesFromBlueprint() won't pick them up. - Modified SDesignerView::ProcessDropAndAddWidget() to also consider any widgets not added to the 'DropPreviews' array as being transient (i.e. also move them into the transient package since they were not added to the tree). Notes: - The regression was introduced by the changes in CL# 3410168, and was merged to Main at CL# 3431398. #rnx Change 3476723 by Dan.Oconnor Match old behavior wrt updating implemented interfaces in blueprints - this logic from FKismetEditorUtilities::CompileBlueprint was missing in compilation manager #jira UE-45468 #rnx Change 3476948 by Michael.Noland Framework: Changed AActor::FindComponentByClass (and AActor::GetComponentByClass by extension) to return nullptr when passed a nullptr class, rather than crashing Change 3476970 by Ben.Zeigler Fix bug I introduced in 4.16 where assigning assets to multiple chunks did not work properly Change 3477536 by Marc.Audy Don't display default value box on linked orphaned input pins Change 3477835 by Marc.Audy Fix pins orphaned by deletion of an entry in a user-defined enum disappearing instead of remaining connected #jira UE-45754 Change 3478027 by Marc.Audy Minor performance optimization #rnx Change 3478198 by Phillip.Kavan #jira UE-42431 - Remove an unnecessary ensure() when pasting an event node. Change summary: - Modified UEdGraphSchema_K2::CreateSubstituteNode() to no longer ensure() that we have a valid PreExistingNode; it's only used for logging when a substitute node is created in response to a conflict with an existing node. Change 3478485 by Marc.Audy Eliminate extraneous error messages about orphaned pins on get/set nodes #jira UE-45749 #rnx Change 3478756 by Marc.Audy Fix fallout from changes to DoesDefaultValueMatchAutogenerated for user defined enums #jira UE-45721 #rnx Change 3478926 by Marc.Audy Non-blueprint type structs can no longer be made/broken Non-blueprint visible properties in structs will no longer have pins created for them #jira UE-43122 Change 3478988 by Marc.Audy DeltaTime for a tick function with a tick interval is now correct after disabling and then reenabling the tick function. #jira UE-45524 Change 3479818 by Marc.Audy Allow ctrl-drag off of orphan pins #jira UE-45803 Change 3480214 by Marc.Audy Modifications to user defined enumerations are now transacted #jira UE-43866 Change 3480579 by Marc.Audy Maintain all pin properties through transactions. #rn Reference pins that are removed and then restored via undo now correctly have the diamond icon instead of the standard circle. Change 3481043 by Marc.Audy Make/Break of structs does not depend on having blueprint exposed properties. Splitting of a struct pin still requires blueprint exposed properties. #jira UE-45840 #jira UE-45831 Change 3481271 by Ben.Zeigler Fix the AssetManager chunking code to use ChunkDependencyInfo instead of a hardcoded check for chunk 0 Clean up ChunkDependencyInfo and make it properly public Move ShouldSetManager to be WITH_EDITOR Ported from WEX branch #RB peter.sauerbrei Change 3481373 by Dan.Oconnor Reduce reliance on expensive FindDelegateSignature. 3275922 made warnings about a ambiguous search more likely as it preserved names of members on the REINST_ classes #jira UE-45704 Change 3481380 by Ben.Zeigler Change it so Struct and Object AssetRegistrySearchable properties do not show up in content browser, they are not helpful Change 3482362 by Marc.Audy Fix properties not exposed to blueprint warnings for input properties on function graphs. #jira UE-45824 Change 3482406 by Ben.Zeigler #jira UE-45883 Fix Switch On Gameplay Tag Container node, and add switch nodes to TagCheck map Change 3482498 by Ben.Zeigler Attempt to fix hot reload issues with Asset Manager. We need to reset and re-acquire the asset classes when rescanning, as they may be pointing to the replaced class Change 3482517 by Lukasz.Furman fixed smart navlink update functions removing important flag #jira UE-45875 Change 3482538 by Marc.Audy When comparing float, vector, and rotator values for whether the the default matches the autogenerated do not use the string compare because differences in use of decimal or number of 0s after decimal are then considered not the same float #jira UE-45846 Change 3482773 by Marc.Audy Don't show default value or pass by reference for exec pins #jira UE-45868 Change 3482791 by Ben.Zeigler #jira UE-45800 Correctly dirty game mode blueprint when changing player controller/etc classes from game mode customization Fix it so MarkBlueprintAsStructurallyModified calls MarkBlueprintAsModified as several fixes were only in the second function Change 3483131 by Zak.Middleton #ue4 - InterpToMovementComponent: - Fix velocity not zeroed when interpolation stops. - Various fixes when calculating velocity and time when substepping is enabled. - Improve accuracy of interpolation when looping and there is time remaining after the loop event is hit. Consume the remainder of the time after the event back in the loop (similar to handling a blocking impact). #jira UE-45690 Change 3483146 by Phillip.Kavan #jira UE-38358 - Propagate 'const' function flag from interface Blueprint to implementing Blueprints. Change summary: - Modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() to call SkeletalRecompileChildren() on dependent BPs when the target is an interface BP. - Modified FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified::FRefreshHelper::SkeletalRecompileChildren() to set child BP status to BS_Dirty after compiling. - Modified ConformInterfaceByName() (FBlueprintEditorUtils) to use the interface's skeleton class for function iteration as well as to match the Function Entry node's 'const' setting to the interface UFunction's signature. Change 3483340 by Ben.Zeigler Fix issue querying asset registry after a hot reload, make sure pending kill objects are never considered to be Assets Change 3483548 by Michael.Noland Epic Friday: Playing around with some prototype traps Change 3483700 by Phillip.Kavan Fix CIS cook crash introduced by last submit. #rnx Change 3485217 by Ben.Zeigler #jira UE-45519 Fix regression introduced in 4.16 where it would no longer cook all maps when no explicit maps were specified in ini or game callback. Moved the code that detects changes before culture/default map code and hardened it to deal with the case where some engine packages were already in the list before it entered the function Change 3485367 by Dan.Oconnor Avoid adding mappings to anim node when creating variables on the skeleton class and using the compilation manager #jira UE-45756 Change 3485565 by Ben.Zeigler #jira UE-45948 Fix compilation manager to properly reset variable default values after promoting a pin to local variable Change 3485566 by Marc.Audy Fix crashes caused by undo/redo of user defined struct changes #jira UE-45775 #jira UE-45781 Change 3485805 by Michael.Noland PR #3459: Fix for world origin shifting and SpringArmComponent location lag (Contributed by michail-nikolaev) #jira UE-43747 Change 3485807 by Michael.Noland PR #3485: Added additional textures field to paper 2d tileset class (Contributed by gryphonmyers) #jira UE-44041 Change 3485811 by Michael.Noland Framework: Fixed a bug in FStreamLevelAction::MakeSafeLevelName to avoid appending the PIE prefix multiple times (fixes functions like Unload Streaming Level when passed a full package name from an instanced streaming level) Change 3485829 by Michael.Noland Framework: Made GetWorldAssetPackageFName BlueprintCallable so instanced levels can be unloaded Change 3485830 by Michael.Noland PR #3568: add API declarations to ALevelStreamingVolume methods (Contributed by kayama-shift) #jira UE-45002 Change 3486039 by Michael.Noland PR #3495: UE-44014: Refreshing node error fixes (Contributed by projectgheist) - Empty out the ErrorMsg when a node gets refreshed to prevent the same error messages from compounding - Added support for split pins in UK2Node_Event::IsFunctionEntryCompatible - Added a missing check for the delegate pin name on the entry node part of UK2Node_Event::IsFunctionEntryCompatible #jira UE-44014 Change 3486093 by Michael.Noland PR #3379: Added GAMEPLAYABILITIES_API to all Ability Tasks. (Contributed by ryanjon2040) #jira UE-42903 Change 3486139 by Michael.Noland Blueprints: Added new config options for execution wire thickness when not debugging (DefaultExecutionWireThickness) and data wire thicknesses (DefaultDataWireThickness) to the Graph Editor Settings page #rn Change 3486154 by Michael.Noland Framework: Speculative fix for CIS error about FStructOnScope #rnx Change 3486180 by Dan.Oconnor Better match old logic for determining when to skip data only compile #jira UE-45830 Change 3487276 by Marc.Audy Fix crash when using Setter with a locally scoped variable #rnx Change 3487278 by Marc.Audy Ensure that pin change notifications occur on all pin breaks unless it is part of a node being garbage collected Change 3487658 by Marc.Audy Ensure that child actor template is created for subclasses #jira UE-45985 Change 3487699 by Marc.Audy Move non-templated elements out of FArchiveReplaceObjectRef and put them in FArchiveReplaceObjectRefBase Change 3487813 by Dan.Oconnor Asset demonstrating a crash Change 3488101 by Marc.Audy Fix crash with spawn/construct actor/object from class nodes when they no longer had any pins. Correctly orphan pins when a node goes to 0 pins. Change 3488337 by Marc.Audy Editable pin base should not manually remove pin and let reconstruct node and rewire pins do their job #jira UE-46020 Change 3488512 by Dan.Oconnor ConstructObject nodes and SubInstances nodes use skeleton class when compilation manager can provide it #jira UE-45830, UE-45965 #rnx Change 3488631 by Michael.Noland Framework: Fixed a crash when loading a blueprint with a parent class of ALevelBounds caused by trying to register the class default object with a non-existent level #jira UE-45630 Change 3488665 by Michael.Noland Blueprints: Improve the details panel customization for optional pin nodes like Struct Member Get/Set - The category, raw name, and tooltip of the property are now included as part of the filter text as well - The property tooltip is now displayed when hovering over the property name - Code updated to use GET_MEMBER_NAME_CHECKED() where appropriate Change 3489324 by Marc.Audy Fix recursion causing stack crash #jira UE-46038 #rnx Change 3489326 by Marc.Audy Fix cooking crash #jira UE-46031 #rnx Change 3489687 by mason.seay Assets for testing orphan pins Change 3489701 by Marc.Audy Back out changelist 3487278 and 3489443 and make targetted changes for fixing up orphan pin cases where changing connections doesn't remove the pin. #jira UE-46051 #jira UE-46052 #rnx Change 3490352 by Dan.Oconnor Fix for missing WidgetTree on Skeleton class - just look directly at the WidgetBlueprint #jira UE-46062 Change 3490814 by Marc.Audy Make callfunction/macro instances save all pins in orphan state more similar to previous behavior #rnx Change 3491022 by Dan.Oconnor Properly clean up 'Key' property when we fail to create a value property #jira UE-45279 Change 3491071 by Ben.Zeigler #jira UE-45981 Fix rotation issues, vector/rotator pins with empty strings were not matching due to uninitialized memory. Change 3491244 by Michael.Noland Blueprints: Add compile time message back to the output log (will not auto-open the output log if there were no warnings/errors) #jira UE-32948 Change 3491276 by Michael.Noland Blueprints: Fixed some bugs where a newly added item would fail show up in the "My Blueprints" tree if there was a filter active (e.g., when promoting a variable) - Centralized the logic for clearing the filter so it happens when we try and fail to select the item, rather than ad hoc in various other places - Made it only clear the filter if necessary, rather than (almost) always clearing it when adding an item #jira UE-43372 Change 3491562 by Marc.Audy Put back pin removal in to editable pin base and instead modify the pin destroy implementation to take down child split pins with it #jira UE-46020 #rnx Change 3491658 by Marc.Audy Unify RemoveUserDefinedPin implementations. Use version that has break to avoid size change assert #rnx Change 3491946 by Marc.Audy ReconstructSinglePin no longer destroys OldPin (avoids oprhaned sub pins being destroyed before reparented) RewireOldPinsToNewPins now destroys OldPins at the end (calling code no longer reponsible) DestroyImpl now prunes out SubPins that had already been trashed #rnx Change 3492040 by Marc.Audy Discard exec/then pins from a callfunction that has been converted to a pure node #rnx Change 3492200 by Zak.Middleton #ue4 - Always reset the input array in AActor::GetComponents(), but do so without affecting allocated size. Fixes possible regression from CL 3359561 that removed the Reset(...) entirely. #jira UE-46012 Change 3492290 by Ben.Zeigler #jira UE-46108 Fix StringLibrary Mid to never crash, Substring had already been fixed Change 3492311 by Marc.Audy Don't clear the pin type if what you're connecting to's pin type is wildcard #rnx Change 3492680 by Dan.Oconnor Handle missing generated class when using compilation manager - tested by forcing compile of BP_ParentClassIsMissingType.uasset Change 3492826 by Marc.Audy Don't do pin connection list change notifications from DestroyPins while regenerating on load #jira UE-46112 #rnx Change 3492851 by Michael.Noland Core: Fixed various crashes when using UObject::CallFunctionByNameWithArguments with non-trivial argument types by properly initializing the allocated parameters Change 3492852 by Michael.Noland Framework: Fixed a crash if ACharacter::FindComponentByClass was passed a nullptr class Change 3492934 by Marc.Audy Fix ensure and crash delete macro containing orphaned pin #rnx Change 3493079 by Dan.Oconnor Fix for crash when opening ThirdPersonAnimBlueprint and ThirdPersonAnimBlueprint_Perf then clicking 'Compile' button in ThirdPersonAnimBlueprint editor. Make sure the convenience members in the derived compilers get set when we relink child classes (which requires making cdos, which requires PropagateValuesToCDO..) #rnx Change 3493346 by Phillip.Kavan #jira UE-40560 - Fix a reported crash when pasting nodes between unrelated Blueprint graphs. Change summary: - Modified FEdGraphUtilities::PostProcessPastedNodes() to ensure() on a NULL pin entry; this will allow execution to continue while still alerting us since it is an unexpected result. Also added an 'else' case to then remove the NULL entry so that PostPasteNode() implementations don't all have to guard against NULL pin entries. When the node is reconstructed, the NULL entry will be replaced with the correct pin initialized to its default values. - Modified UEdGraphPin::ImportTextItem() to add some additional logging to parse error cases when importing pin properties from source T3D text. Hopefully this gives us more information when this is encountered in the future. Change 3493938 by Michael.Noland Blueprints: Prevent issues with renaming event dispatchers to contain periods (this may be disallowed in the future, but they no longer become uneditable) #jira UE-45780 Change 3493945 by Michael.Noland Blueprints: Fixed GetDelegatePoperty typos #rnx Change 3493997 by Michael.Noland Blueprints: Partially reverting changes from CL# 3319966 to reroute nodes, restoring their alignment but losing the symmetrical grab handle changes #jira UE-45760 Change 3493998 by Dan.Oconnor Fix rare crash in RefreshStandAloneDefaultsEditor when the blueprint editor is opened and a blueprint had errors in it Note: I stumbled across this by running a unit test and then opening a blueprint in the BPE. CrashReporter indicates 3 crashes in the last 3 days Change 3494025 by Michael.Noland Engine: Deleted some dead code (DEBUGGING_VIEWPORT_SIZES) #rnx Change 3494026 by Michael.Noland Blueprints: V0 of a BlueprintCallable/BlueprintPure function fuzzer - Calls exposed methods with default parameters on classes it is able to spawn for now, which catches crashes due to null and /0 but not out of bounds issues or ones on classes it can't spawn due to classwithin, abstract, etc... - Can be called using Test.ScriptFuzzing, won't be integrated into automated tests until it is more fully fleshed out and all known issues are addressed #rnx Change 3496382 by Ben.Zeigler Fix ensure when launching editor with cook on the side and incremental cooking enabled. It now flushes the background asset gather when calling the sync load all assets if one is in progress Change 3496688 by Marc.Audy Avoid crashing in component instance data if (for some reason) the Actor's root component isn't properly set up #jira UE-46073 Change 3496830 by Michael.Noland Editor: Change FEditorCategoryUtils methods to take UStruct* instead of UClass*, as they are just reading metadata #rnx Change 3496840 by Michael.Noland Framework: Remove the requirement for a local player in UCheatManager::CheatScript, so it can be be started from the server side (doesn't change the availability of the cheat manager, just allows things like the redundant "cheat cheatscript scriptname" to work) Change 3497038 by Michael.Noland Fortnite: Added UFortDeveloperSettings to allow developers to auto-run cheats in PIE (does not occur in -game or outside of WITH_EDITOR builds) - You can specify a list of cheat commands to run when a pawn is possessed (also needs CL# 3496840 for cheatscripts) - You can also specify a set of items to grant to your local inventory when it is created Change 3497204 by Marc.Audy Fix AbilitySystemComponent not being blueprint readable. #rnx Change 3497668 by Mieszko.Zielinski Fixed a crash in BT editor when dealing with enum-typed Blackboard-keys pointing to enum values that have been deleted #UE4 #jira UE-43659 Change 3497677 by Mieszko.Zielinski Added a community-suggested working solution to patching up dynamic navmesh after world offset #UE4 Also, fixed a crash related to navmesh rebuilding if generation was configured to lazily gather navigatble geometry #jira UE-41293 Change 3497678 by Mieszko.Zielinski Marked AbstractNavData class as transient #UE4 We never want to save it to levels Change 3497679 by Mieszko.Zielinski Made NavModifierVolume responsive to editor-time property changes #UE4 #jira UE-32831 Change 3497900 by Dan.Oconnor Fix bad skel reference when using construct object from class, just limiting scope of 3491946. To reproduce the bug just nativize QA Game, including the TM-Gameplay level #rnx Change 3497904 by Dan.Oconnor Use K2Node_Event::FindEventSignatureFunction in order when directly generating the skeleton generated class to get event params correct #jira UE-46153 #rnx Change 3497907 by Dan.Oconnor Correctly set blueprint visibility flags on params for inherited functions when generating the skeleton class #rnx #jira UE-46186 Change 3498218 by mason.seay Updates to pin testing BP's Change 3498323 by Mieszko.Zielinski Made UNavCollision instance assigned to StaticMesh not get re-created from scratch every single time any StaticMesh property changes #UE4 Recreation was resulting in some of the UNavCollision's properties not getting saved and the way we were recreating the nav collision could also interfere with undo buffers #jira UE-44891 Change 3499007 by Marc.Audy Allow systems to hook Pre and PostCompile to do custom behaviors Change 3499013 by Mieszko.Zielinski Made AbstractNavData class non-transient again #UE4 Implemented AbstractNavData instances' transientness in a different manner. #jira UE-46194 Change 3499204 by Mieszko.Zielinski Introduced CrowdManagerBase, an engine-level class that can be extended to implement custom crowd management #Orion Extracted FRecastQueryFilter into a separate file, which will break some peoples' compilation. #jira UE-43799 Change 3499321 by mason.seay Updated bp for struct testing Change 3499388 by Marc.Audy Allow the compiler log to store off potential messages from earlier in the compile cycle (early validation), that can be committed later (for example once pruning is completed). Change 3499390 by Marc.Audy Generate the orphan pin error messages during EarlyValidation, but cache until the regular validation phase. This ensures all are generated, but only those that aren't pruned will be emitted. #rnx Change 3499420 by Michael.Noland Engine: Introduced a new version of UEngine::GetWorldFromContextObject which takes an enum specifying the behavior on failures and updated all existing uses The new version intentionally does not have a default value for ErrorMode, callers need to think about which variant of behavior they want: - ReturnNull: Silently returns nullptr, the calling code is expected to handle this gracefully - LogAndReturnNull: Raises a runtime error but still returns nullptr, the calling code is expected to handle this gracefully - Assert: Asserts, the calling code is not expecting to handle a failure gracefully - Deprecated UEngine::GetWorldFromContextObject(object, boolean) and changed the default behavior for the deprecated instances to do LogAndReturnNull rather than Assert, based on the real-world call pattern - Introduced GetWorldFromContextObjectChecked(object) as a shorthand for passing in EGetWorldErrorMode::Assert - Made UObject::GetWorldChecked() actually assert if it would return nullptr (under some cases the old function could silently return nullptr while reporting bSupported = true, so it neither ensured nor checked) - Fixed a race condition in the 'is implemented' bookkeeping logic in GetWorld()/GetWorldChecked() by confining it to the game thread and added a check() to ImplementsGetWorld() to make it clear that it only works on the game thread The typical recommended call pattern is to use something like: if (UWorld* World = GEngine->GetWorldFromContextObject(WorldContextObject, EGetWorldErrorMode::LogAndReturnNull)) { ... Do something with World } Handling the failure case but requesting a log message (with BP call stack printed out) if it failed. This is now also the default behavior for old calls to UEngine::GetWorldFromContextObject(Object) (using the default value of bChecked=true), which is a behavior change but it matches how the function was being used in practice; the vast majority of call sites actually expected it to potentially fail and handled the nullptr case gracefully; very few places used the return value unguarded and wanted it to assert when passed a nullptr. #jira UE-42458 Change 3499429 by Michael.Noland Engine: Removed a bogus TODO (the problematic code had already been reworked) #rnx Change 3499470 by Michael.Noland Core: Improved and corrected the comment for ensure() - It doesn't crash when checking is disabled (and hasn't since UE3, maybe ever?) - It now only fires once per ensure() by default, added a note about ensureAlways() #rnx Change 3499643 by Marc.Audy Use TGuardValue instead of manually managing it #rnx Change 3499874 by Marc.Audy Display <Unnamed> instead of nothing for Pins with blank display name in the compiler log Change 3499875 by Marc.Audy When changing function parameter types, don't orphan a pin on the function entry/exit nodes (but do at the call sites) #jira UE-46224 Change 3499927 by Dan.Oconnor UField::Serialize no longer serialize's its next ptr, UStruct::Serialize serializes all Children properties instead. This resolves a hard circular dependency between function libraries that EDL detected. It was resolved in an ad hoc way by the old linker #jira UE-43458 Change 3499953 by Michael.Noland Core: Created a variant of ensure that does runtime error logging without stopping in the debugger and some related functions that print a warning or error and may trigger a BP callstack (under the same rules as FFrame::KismetExecutionMessage) - These are WIP and the API may change in the future, but are being used to fix various crashes found by fuzzing BP exposed functions Change 3499957 by Michael.Noland Animation: Added runtime errors for nullptr ControlRigs passed into BP methods #rnx Change 3499958 by Michael.Noland Blueprints: Changed an ensure in UKismetNodeHelperLibrary::GetValidValue to a runtime error #rnx Change 3499959 by Michael.Noland Engine: Downgrade various checks() to ensures() in the runtime asset cache functions exposed to Blueprints Change 3499960 by Michael.Noland AI: Changed UBTFunctionLibrary to not check/ensure if passed a null world context object Change 3499968 by Michael.Noland Editor: Fixed a couple of crashes in UEditorLevelUtils when passed nullptr arguments, and reformatted the entire file to fix widespread indentation issues #rnx Change 3499969 by Michael.Noland Engine: Changed the verbosity of the failure log message of UEngine::GetWorldFromContextObject(..., LogAndReturnNull) from Warning to Error, so it always prints out a BP callstack #rnx Change 3499973 by Michael.Noland Rendering: Fixed asserts in various UKismetRenderingLibrary methods if passed a nullptr for the WorldContextObject - Also fixed flipped warnings in the failure cases for EndDrawCanvasToRenderTarget Change 3499979 by Michael.Noland Editor: Prevented a crash in UMaterialEditingLibrary::RecompileMaterial when passed a nullptr material Change 3499984 by Michael.Noland Physics: Prevented a crash in UTraceQueryTestResults::AssertEqual when passed in nullptr for Expected Change 3499993 by Michael.Noland Blueprints: Added validation when renaming variables, functions, components, multicast delegates, etc... to prevent names from containing some unacceptable characters - This validation only kicks in when trying to rename an item, so bad names in existing content are 'grandfathered in' - These bad names can cause bugs when working with content that contains these characters (e.g., names that contain a period cannot be found via FindObject<T>) - Currently only . is banned, but eventually we may expand it to include all of INVALID_OBJECTNAME_CHARACTERS Change 3500009 by Michael.Noland Blueprints: Made the fuzzer skip classes declared in UnrealEd for now (some of the exposed methods change global state that can cause other tests to fail as the fuzzer isn't particularly sandboxed ATM) #rnx Change 3500011 by Michael.Noland Android: Fixed a crash in UAndroidPermissionFunctionLibrary::AcquirePermissions when called with an empty array on non-Android platforms Change 3500012 by Michael.Noland Editor: Prevent a crash in UEditorTutorial::OpenAsset when passed a nullptr Asset Change 3500014 by Michael.Noland Engine: Changed FRuntimeAssetCacheFilesystemBackend::ClearCache(NAME_None) to not try to clear all cache directories (there is a separate no-args method for that) Change 3500019 by Michael.Noland Core: Fixed some more issues with CallFunctionByNameWithArguments and initializing / destroying parameters - It was skipping the return value and incorrectly relying on the FirstPropertyToInit list which isn't set for by ref arguments Change 3500020 by Michael.Noland Automation: Prevent UFunctionalTestingManager::RunAllFunctionalTests and UFunctionalTestingManager* UFunctionalTestingManager::GetManager from crashing when a manager cannot be created (because we can't route to a world) Change 3501062 by Marc.Audy MakeArray AddInputPin is often used as part of node expansion, so need to move the transaction out of the function Fix inability to undo/redo pin additions to sequence node Add a K2Node_AddPinInterface to generalize the interface that K2Nodes implement to interact with SGraphNodeK2Sequence so it can be more generally used #jira UE-46164 #jira UE-46270 Change 3501330 by Michael.Noland AI: Fix an error on shutdown when the CDO of UAIPerceptionComponent tries to clean up (as it was never registered in the first place) #jira UE-46271 Change 3501356 by Marc.Audy Fix crash when multi-editing actor blueprints #jira UE-46248 Change 3501408 by Michael.Noland Core: Improve the print-out of FFrame::GetStackTrace() / FFrame::GetScriptCallstack() when there is no script stack (e.g., when FFrame::KismetExecutionMessage is called by native code with no BP above in the call stack) Change 3501457 by Phillip.Kavan #jira UE-46054 - Fix crash when launching a packaged build that includes a nativized Blueprint instance with a ChildActorComponent instanced via an AddComponent node. Change summary: - Removed UK2Node_AddComponent::PostDuplicate(). This eliminates the creation of redundant component templates that were being unnecessarily created during the Blueprint duplication that precedes the nativization pass. - Modified SMyBlueprint::OnDuplicateAction() to call MakeNewComponentTemplate() in response to a graph duplication action within the same Blueprint context (replaces previous UK2Node_AddComponent::PostDuplicate() impl). - Modified FEmitDefaultValueHelper::HandleSpecialTypes() to force AddComponent-based CAC-owned template objects in the emitted codegen to use the UDynamicClass as the Outer when instancing. This matches what we already do for SCS-based CAC-owned template objects - that logic was added in CL# 3270456, and this matches up with FBlueprintNativeCodeGenModule::FindReplacedNameAndOuter(), where we specifically handle CAC-owned template objects. Change 3502741 by Phillip.Kavan #jira UE-45782 - Fix undo for index pin type changes. Change summary: - Modified SGraphPinIndex::OnTypeChanged() to call Modify() on the pin that was changed. Change 3502939 by Michael.Noland Back out changelist 3499927 Change 3503087 by Marc.Audy Re-fixed ocean content as editor had also changed so had to take theirs and redo #rnx Change 3503266 by Ben.Zeigler #jira UE-46335 Fix regression added in 4.16 where AssetRegistry GetAncesorClassNames/GetDerivedClassNames were not working properly in cooked builds for classes not in memory Change 3503325 by mason.seay updated Anim BP to prep for pin testing Change 3503445 by Marc.Audy Fix crash caused by OldPins being destroyed before rewiring #rnx Change 3505024 by Marc.Audy Fix NodeEffectsPanel blueprint as it was using pins that no longer existed #rnx Change 3505254 by Marc.Audy Don't include orphan pins when gather source property names If a property doesn't exist for a source property name just skip the property rather than crashing #jira UE-46345 #rnx Change 3506125 by Ben.Zeigler #jira UE-46311 Fix issues when blueprints are reloaded in place, it needs to remove them from root properly and sanitize the old class. It's still not clear why they are being reloaded in place Change 3506334 by Dan.Oconnor Move UAnimGraphNode_Base::PreloadRequiredAssets up to K2Node, make sure nodes get a chance to preload data before compilation manager compiles newly loaded blueprints #jira UE-46411 Change 3506439 by Dan.Oconnor Return to pre 3488512 behavior for construct object nodes. This means that we can still get warnings on load when users compile after saving a blueprint, but the current behavior loses default values because it's lookng at the skeleton cdo #jira UE-46308 Change 3506468 by Dan.Oconnor Return to pre 3488512 behavior, as it causes bad default values #jira UE-46414 #rnx Change 3506733 by Marc.Audy Use the most up to date class to determine whether a property still exists when adding pins during reconstruction #jira UE-45965 #author Dan.OConnor #rnx Change 3507531 by Ben.Zeigler #jira UE-46449 Better fix to flush the asset registry queue when the editor requests a synchronous scan at startup. Sometimes it can take a few frames because of file handle delays Change 3507924 by mason.seay Sanity save of TM-Gameplay and sublevels to maybe resolve level streaming issues Change 3507962 by Marc.Audy Remake changes from CL# 3150796 wiped out by WEX-Staging merge to Main in CL# 3479958 #rnx Change 3509131 by Dan.Oconnor Compilation manager compile on load flow never called FindExportsInMemoryFirst, which is critical to prevent reloading of UBlueprintGeneratedClasses when Rename clears the export table #jira UE-46311 Change 3509345 by Marc.Audy CVar to disable orphan pins if necessary #rnx Change 3509959 by Marc.Audy Protect against crashing due to large values in Timespan From functions #jira UE-43840 Change 3510040 by Marc.Audy Remove all the old unneeded ShooterGame test maps #rnx [CL 3510073 by Marc Audy in Main branch]
2017-06-26 15:07:18 -04:00
// True if the module currently being parsed is part of the engine, as opposed to being part of a game
bool bIsCurrentModulePartOfEngine;
/**
* Tries to match constructor parameter list. Assumes that constructor
* name is already matched.
*
* If fails it reverts all parsing done.
*
* @param Token Token to start parsing from.
*
* @returns True if matched. False otherwise.
*/
bool TryToMatchConstructorParameterList(FToken Token);
// Parses possible version declaration in generated code, e.g. GENERATED_BODY(<some_version>).
Copying //UE4/Dev-Core to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2717513 on 2015/10/06 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 GC and WeakObjectPtr performance optimizations. - Moved some of the EObjectFlags to EInternalObjectFlags and merged them with FUObjectArray - Moved WeakObjectPtr serial numbersto FUObjectArray - Added pre-allocated UObject array Change 2716517 on 2015/10/05 by Robert.Manuszewski@Robert_Manuszewski_EGUK_M1 Make SavePackage thread safe UObject-wise so that StaticFindObject etc can't run in parallel when packages are being saved. Change 2721142 on 2015/10/08 by Mikolaj.Sieluzycki@Dev-Core_D0920 UHT will now use makefiles to speed up iterative runs. Change 2726320 on 2015/10/13 by Jaroslaw.Palczynski@jaroslaw.palczynski_D1732_2963 Hot-reload performance optimizations: 1. Got rid of redundant touched BPs optimization (which was necessary before major HR fixes submitted earlier). 2. Parallelized search for old CDOs referencers. Change 2759032 on 2015/11/09 by Graeme.Thornton@GThornton_DesktopMaster Dependency preloading improvements - Asset registry dependencies now resolve asset redirectors - Rearrange runtime loading to put dependency preloads within BeginLoad/EndLoad for the source package Change 2754342 on 2015/11/04 by Robert.Manuszewski@Robert_Manuszewski_Stream1 Allow UnfocusedVolumeMultiplier to be set programmatically Change 2764008 on 2015/11/12 by Robert.Manuszewski@Robert_Manuszewski_Stream1 When cooking, don't add imports that are outers of objects excluded from the current cook target. Change 2755562 on 2015/11/05 by Steve.Robb@Dev-Core Inline storage for TFunction. Fix for delegate inline storage on Win64. Some build fixes. Visualizer fixes for new TFunction format. Change 2735084 on 2015/10/20 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec CrashReporter Web - Search by Platform Added initial support for streams (GetBranchesAsListItems, CopyToJira) Change 2762387 on 2015/11/11 by Steve.Robb@Dev-Core Unnecessary allocation removed when loading empty files in FFileHelper::LoadFileToString. Change 2762632 on 2015/11/11 by Steve.Robb@Dev-Core Some TSet function optimisations: Avoiding unnecessary hashing of function arguments if the container is empty (rather than the hash being empty, which is not necessarily equivalent). Taking local copies of HashSize during iterations. Change 2762936 on 2015/11/11 by Steve.Robb@Dev-Core BulkData zero byte allocations are now handled by an RAII object which owns the memory. Change 2765758 on 2015/11/13 by Steve.Robb@Dev-Core FName::operator== and != optimised to be a single comparison. Change 2757195 on 2015/11/06 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1305: Improvements in CrashReporter for Symbol Server usage (Contributed by bozaro) Change 2760778 on 2015/11/10 by Jaroslaw.Surowiec@Stream.1.JarekSurowiec PR #1725: Fixed typos in ProfilerCommon.h; Added comments (Contributed by BGR360) Also fixed starting condition. Change 2739804 on 2015/10/23 by Robert.Manuszewski@Robert_Manuszewski_Stream1 PR #1470: [UObjectGlobals] Do not overwrite instanced subobjects with ones from CDO (Contributed by slonopotamus) Change 2744733 on 2015/10/28 by Steve.Robb@Dev-Core PR #1540 - Specifying a different Saved folder at launch through a command line parameter Integrated and optimized. #lockdown Nick.Penwarden [CL 2772222 by Robert Manuszewski in Main branch]
2015-11-18 16:20:49 -05:00
void CompileVersionDeclaration(UStruct* Struct);
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3459469) #lockdown Nick.Penwarden #rb none #rnx ========================== MAJOR FEATURES + CHANGES ========================== Change 3377136 on 2017/04/03 by Dan.Oconnor Reenable compilation manager Change 3377365 on 2017/04/03 by Dan.Oconnor Back out changelist 3377136 Change 3378131 on 2017/04/04 by Dan.Oconnor Enable compilation manager again after 3377912, 3378081, and 3378094 Change 3379268 on 2017/04/04 by Dan.Oconnor Disable compilation manager Change 3383505 on 2017/04/06 by Dan.Oconnor Enabling compilation manager - no known issues. Change 3430210 on 2017/05/09 by Dan.Oconnor Disable compilation manager while I think about fixes for UE-44780/UE-44794 #rnx Change 3431439 on 2017/05/09 by Marc.Audy Editor only subobjects shouldn't exist in PIE world #jira UE-43186 Change 3431542 on 2017/05/09 by Dan.Oconnor Fix crash when opening a blueprint with missing variables and using the compilation manager #jira UE-43843 Change 3432743 on 2017/05/10 by mason.seay Added attachment test to map Change 3432836 on 2017/05/10 by Lukasz.Furman fixed behavior tree decorator's deactivation when it's placed on parallel task #jira UE-44817 Change 3432837 on 2017/05/10 by Lukasz.Furman fixed missing deactivation notifies in behavior tree nodes after forced stop of execution (StopTree call) #ue4 Change 3433065 on 2017/05/10 by Marc.Audy Timeline properties should be blueprint visible as they get expanded out to Get Property nodes Change 3433135 on 2017/05/10 by Lukasz.Furman added missing nav area registration call #jira UE-44144 Change 3433195 on 2017/05/10 by Marc.Audy de-auto #rnx Change 3433275 on 2017/05/10 by Phillip.Kavan #jira UE-44765 - Fix a regression that introduced a potential EDL cycle on load for UDynamicClass dependencies in a nativized build. Change summary: - Added new helper methods to FGatherConvertedClassDependenciesHelperBase for populating converted class, struct and enum dependency sets. - Minor refactor to FFindAssetsToInclude to more generally allow me to recursively add outer class and struct references as additional "used asset" dependencies, based on whether or not the type might also be getting converted. In CL#3416419 I was always adding owner class CDOs as a dependency even if the owner class was being converted, and this introduced the potential for an EDL cycle. #rnx Change 3433681 on 2017/05/10 by Mike.Beach Adjusting the component tree search bar to be below the AddComponent buttons for level editor instance-editing mode (not enough room with the BP button). Change 3433687 on 2017/05/10 by Ben.Zeigler Remove delegate redirector type, I never implemented it and it's not useful, dynamic delegates fixup based on parameter type/count and not name in most cases Change 3434005 on 2017/05/10 by Ben.Zeigler #jira UE-44890 Don't reset local variables that are containers of user structs, delta serialization isn't used for user structs so just keep the same string as before. This is not a regression and looks to have always been broken Change 3434011 on 2017/05/10 by Marc.Audy Fix LocalVariable Properties to be flagged as CPF_BlueprintVisible Change 3434026 on 2017/05/10 by Ben.Zeigler Add automated test utility functions to clear standalone flag, needed to allow testing async loading in the editor Change 3435245 on 2017/05/11 by mason.seay Submitting test assets for input testing and interactive loading screens Change 3435491 on 2017/05/11 by Mike.Beach CIS SA fix (fallout from CL 3433681) - removing trinary operator that selects from two identical values. Change 3435962 on 2017/05/11 by Ben.Zeigler Change it so PrimaryAssetLabels are editor only by default. This allows them to cook content without the label itself being cooked Change 3436322 on 2017/05/11 by Dan.Oconnor Fix for calling CopyTermDefaultsToDefaultObject at the wrong time when using the compilation manager, needs to be postponed until other defaults are copied #jira UE-44780, UE-44794 Change 3437205 on 2017/05/12 by Ben.Zeigler Change Persistent Ubergraph Frame references to be correctly weak. With the old method if an asset had subobjects those internal references would cause it to be strong. Now, it doesn't expose them to GC at all other than to register them for clearing if GC deletes those objects Change ObjectProperty to directly serialize object references when doing a reference collector, this is needed for above change so it will null the right value and not a stack local copy Remove NoStrongReference flag and SetShouldHandleAsWeakRef entirely, this makes the internal GC code simpler and faster Switch internals of GC to use FGCArrayStruct which has the serialize array as well as the weak references array Change 3437206 on 2017/05/12 by Ben.Zeigler Add Async loading functional test. This tests the LoadAsset and Convert nodes and ensures that the recent changes to ubergraph frame refs work properly Change 3437234 on 2017/05/12 by Ben.Zeigler Fix DirectoryPathStructCustomization to work properly with both LongPackageName and RelativeToGameContentDir set, before it was chopping off text and leaving nonsense Change 3437368 on 2017/05/12 by Dan.Oconnor Mirror 3434064, but with betterwhitespace. Prevents blueprint CDO subobjects from being stomped when using EDL Change 3439330 on 2017/05/15 by Ben.Zeigler First half of Blueprint API for AssetManager, this covers everything other than load/unload Rename GetPrimaryAssetIdFromData to ExtractPrimaryAssetIdFromData and make comments clearer that it works even if the asset isn't in the dictionary. Add GetPrimaryAssetIdForData to cover dictionary case Change it so modifying the asset manager settings within the editor will refresh the dictionary #jira UE-45016 Fix crash scanning empty paths Change 3439331 on 2017/05/15 by Ben.Zeigler AssetManager Functional tests. Set up EngineTest project to have some assets and an ini configuration Change 3439644 on 2017/05/15 by Dan.Oconnor Fix BlueprintCompilationManager running OnLevelScriptBlueprintChanged before CDO defaults were up to date #jira UE-44972 #rnx Change 3439992 on 2017/05/15 by Dan.Oconnor Add missing OptionallyRefreshNodes, which is a hot reload hack #jira UE-44970 #rnx Change 3440223 on 2017/05/15 by Ben.Zeigler Move StreamableManager GC callback to pre GC to avoid requring 2 GCs to delete unreferenced assets Change 3440406 on 2017/05/15 by Ben.Zeigler Fix bug with combined StreamableManager handles where the complete callback wouldn't correctly execute. This can happen when using the asset manager to load more than one asset at a time Change 3440879 on 2017/05/16 by Marc.Audy Fix casing on #include to fix Linux CIS error #rnx Change 3441137 on 2017/05/16 by Ben.Zeigler Fix it so ImportText/ExportText on an AssetObjectProperty correctly calls the StringAssetReferenceVersions, and fix a parse issue when importing class'/path' strings into the struct version Change 3441364 on 2017/05/16 by Ben.Zeigler #jira UE-45080 Fix Linux CIS issue Change 3441444 on 2017/05/16 by Dan.Oconnor Run RefreshExternalBlueprintDependencyNodes at a more appropriate time when using the compilation manager, link skeleton functions when using the compilation manager so that PropertyFlags match GeneratedClass #jira UE-45029, UE-45037 #rnx Change 3441445 on 2017/05/16 by Dan.Oconnor Remove unused declaration #rnx Change 3441492 on 2017/05/16 by Ben.Zeigler Rest of Asset Manager BP API Added multiple async actions for loading and changing bundle states, and querying bundle states Change it so the LoadAsset node has a then node to match the new async actions, and rename to Async Load Asset Add HideThen metadata option to async actions and fix crash when renaming bound function Change 3441493 on 2017/05/16 by Ben.Zeigler Update AssetManager and AsyncLoading tests Change 3441494 on 2017/05/16 by Ben.Zeigler Update the archive's serialized property when serializing array, set, and map to point to the inner property. Fix a few call sites to look at parent property as needed. This is needed for the new BPGC weak reference feature, but might also fix some crashes with HotReload where it was expecting the inner property and casting to ObjectProperty. Change 3441600 on 2017/05/16 by Michael.Noland Blueprints: Fixed some indentation issues in code #rnx Change 3441601 on 2017/05/16 by Michael.Noland Blueprints: Changed DLL exporting on UK2Node_Tunnel and UK2Node_Composite to allow them to be used in plugins more readily Change 3441602 on 2017/05/16 by Michael.Noland Graph Editing: Changed FGraphEditorDragDropAction to work directly with a UEdGraphNode rather than a SGraphNode Graph Editing: Allowed FGraphSchemaActionDragDropAction to be dropped onto pins in addition to the graph background, which will behave as if you dragged off the pin and picked the same action Change 3441607 on 2017/05/16 by Michael.Noland Blueprints: Allow functions from My Blueprints to be dropped onto pins in addition to the graph background, which performs the same action as if they had been picked from the menu after dragging off of that pin Change 3441608 on 2017/05/16 by Michael.Noland Blueprints: Allow non-readonly variables from the My Blueprints panel to be dropped onto exec pins, which creates a variable set node for them Change 3441613 on 2017/05/16 by Michael.Noland Epic Friday: Snap node prototype (more compact way of organizing straight line Blueprint code via drag-dropping) - Super early prototype, plugin is not enabled by default and is currently in NotForLicensees Change 3441802 on 2017/05/16 by Michael.Noland Blueprints: Adding some includes that are missing according to CIS #rnx Change 3441921 on 2017/05/16 by Dan.Oconnor Avoid skipping full compile when not loading a DOB from disk - when a blueprint became data only we were not running the full compile #jira UE-45048 #rnx Change 3442903 on 2017/05/17 by Marc.Audy Refactor header parser verification of rep notify functions in preparation for other forms of function verification. Fixed ability to specify incompatible properties as the parameter to the OnRep function as long as the base property type was the same (i.e. UObjectProperty, UArrayProperty, etc.) Fixed errors generated by verification not being associated with the correct code line. Verification errors are now "warnings" and will all be reported rather than a single one being fatal. Change 3442908 on 2017/05/17 by Marc.Audy Remove some autos #rnx Change 3443802 on 2017/05/17 by Ben.Zeigler #jira UE-35683 Add ability for resolve AssetId node to go from hard object to assetptr Add IsValid and == for Asset/ClassId Change 3444075 on 2017/05/17 by Ben.Zeigler #jira UE-45121 Remove references to deleted cards, this field was not in use but is now warning due to better validation Change 3444178 on 2017/05/17 by Dan.Oconnor Fix for CPFUO dropping default values of CDO subobjects if the blueprint's parent's CDO was being regenerated at the same time #jira UE-45050 Change 3444927 on 2017/05/17 by Dan.Oconnor Improve fix for UE-45050, honor Params.bDoDelta #rnx Change 3447280 on 2017/05/18 by Marc.Audy Properties can now be exposed to blueprints in such a way that a getter or setter accessor will be used rather than a direct read/write of the variable Change 3447320 on 2017/05/18 by Marc.Audy Some minor schema cleanups #rnx Change 3447537 on 2017/05/18 by Dan.Oconnor Make sure CDO is included in ArchetypeRerencers when a subobject of said CDO is reinstanced #jira UE-37023 Change 3448754 on 2017/05/19 by Marc.Audy Fix hot reload crashing in EngineTest #rnx Change 3448792 on 2017/05/19 by Marc.Audy Functional test for BP Accessors #rnx Change 3448806 on 2017/05/19 by Marc.Audy Fix static analysis warning #rnx Change 3449091 on 2017/05/19 by Marc.Audy Allow Find References to be selected from the components panel #jira UE-45101 Change 3449361 on 2017/05/19 by Marc.Audy Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3449079 #rnx Change 3449644 on 2017/05/19 by Marc.Audy Fix Anim SubInstance generated properties not being Blueprint Visible Change 3450003 on 2017/05/19 by Dan.Oconnor We need to do a bytecode only compile of dependent blueprints when an individual blueprint is compile because we cannot safely skip functions that are removed or change layout #jira UE-45196 #rnx Change 3452022 on 2017/05/22 by Marc.Audy Fix BlueprintVisibility issues in orion UI #rnx Change 3452133 on 2017/05/22 by Ben.Zeigler #jira UE-45240 Fix it so invalid primary asset types are not parsed, this happens while halfway through editing in the UI Stop asset manager from generating 600 notifications, this causes multiple second stalls in the editor Change 3452697 on 2017/05/22 by Marc.Audy Use BlueprintGetter/Setter metadata instead of BlueprintInternalUseOnly for preventing accessors from appearing in menus Prevent BlueprintNativeEvents from being used as property accessors Disable functional test for blueprint native events Change 3452780 on 2017/05/22 by Ben.Zeigler Switch it so the LongPackageName and ContentDir metadata on a FDirectoryPath do the same thing and give you the in-editor path picker. These two metadata flags were implemented in parallel on two separate branches Change 3452790 on 2017/05/22 by Ben.Zeigler Fix issue when calling TryConvertFilenameToLongPackageName with a root directory name, and add comment mentioning that it works for directories, it's used this way throughout the editor and we couldn't come up with a better name for the function Deprecated FPackageName::ConvertRootPathToContentPath and PackageFromPath as they were confusingly named and not used much. Also cleaned up header in general Change 3454629 on 2017/05/23 by Marc.Audy Deal with fall out from initial approach to disabling the native event getter/setter functional tests #jira UE-45321 #jira UE-45322 Change 3454661 on 2017/05/23 by Marc.Audy Mark Actor.RootComponent as having a getter instead of GetRootComponent being an explicitly exposed blueprint callable function Change 3454662 on 2017/05/23 by Marc.Audy Fix blueprint visibility of anim notify properties Change 3454663 on 2017/05/23 by Marc.Audy Fix fortnite blueprint exposure issues Change 3454695 on 2017/05/23 by Lukasz.Furman fixed bug with behavior tree decorator duplication: properties are no longer reset to defaults #3591 Change 3454789 on 2017/05/23 by Ben.Zeigler Add ProposedPlacement parameter to TryCalculatePopupWindowPosition that if non zero will allow the less common anchor styles like MenuPlacement_ComboBoxRight to work properly for popups spawned in a new window Make the variable type menu be ComboBoxRight so it gives more space for longer sub type descriptions coming in a different change Change 3454816 on 2017/05/23 by Ben.Zeigler Change blueprint type of AssetID to SoftObjectReference and AssetClassId to SoftClassReference. These will also change in native for 4.18 Fix display issues with complicated variable types, for some reason it was using the non-localized name Change 3454967 on 2017/05/23 by Lukasz.Furman fixed ANavigationData.bForceRebuildOnLoad being ignored by navigation system #jira UE-44231 Change 3454982 on 2017/05/23 by Ben.Zeigler #jira UE-45298 Refresh primary asset ID selector when menu is reopened Change 3455714 on 2017/05/23 by Marc.Audy Prevent attachment from being setup to attach to itself or in a cyclic fashion. #jira UE-45244 Change 3455871 on 2017/05/23 by Marc.Audy Rename UEdGraph::CreateBlankNode to CreateIntermediateNode Added bIsIntermediate flag to UEdGraphNode which is set via CreateIntermediateNode No longer set timeline variables as blueprint visible #jira UE-45204 Change 3455930 on 2017/05/23 by Ben.Zeigler #jira UE-45349 Resave TM-Gameplay map. The map got fixed while UE-44972 was still open, which lead to the level script variables being corrupted. Manually compiling fixed the issue and the core bug is now fixed. Any other maps saved directly on Framework might show the same issue Change 3456507 on 2017/05/24 by Marc.Audy Fix game builds #rnx Change 3457323 on 2017/05/24 by Marc.Audy Undo CL# 3431439 and once again allow (incorrectly) for editor only objects to exist in a PIE world #jira UE-45087 Change 3459068 on 2017/05/25 by mason.seay Adding gamepad mapping for sprinting Change 3459466 on 2017/05/25 by Dan.Oconnor Fix for stale UClass ptrs in ReinstanceBatch when using compilation manager #jira UE-45386 Change 3459469 on 2017/05/25 by Dan.Oconnor Fix issue exposed by compilation manager - this function can't assign struct default values (e.g. LinearColor) #jira UE-45389 [CL 3459511 by Marc Audy in Main branch]
2017-05-25 13:42:12 -04:00
// Verifies that all specified class's UProperties with function associations have valid targets
void VerifyPropertyMarkups( UClass* TargetClass );
// Verifies the target function meets the criteria for a blueprint property getter
void VerifyBlueprintPropertyGetter(UProperty* Property, UFunction* TargetFunction);
// Verifies the target function meets the criteria for a blueprint property setter
void VerifyBlueprintPropertySetter(UProperty* Property, UFunction* TargetFunction);
// Verifies the target function meets the criteria for a replication notify callback
void VerifyRepNotifyCallback(UProperty* Property, UFunction* TargetFunction);
// Constructs the policy from a string
static FDocumentationPolicy GetDocumentationPolicyFromName(const FString& PolicyName);
// Constructs the policy for documentation checks for a given struct
static FDocumentationPolicy GetDocumentationPolicyForStruct(UStruct* Struct);
// Property types to provide UI Min and Max ranges
static TArray<FString> PropertyCPPTypesRequiringUIRanges;
// Returns true if a given CPP types required ui checking
static bool DoesCPPTypeRequireDocumentation(const FString& CPPType);
// Validates the documentation for a given enum
void CheckDocumentationPolicyForEnum(UEnum* Enum, const TMap<FName, FString>& MetaData, const TArray<TMap<FName, FString>>& Entries);
// Validates the documentation for a given struct
void CheckDocumentationPolicyForStruct(UStruct* Struct, const TMap<FName, FString>& MetaData);
// Validates the documentation for a given method
void CheckDocumentationPolicyForFunc(UClass* Class, UFunction* Func, const TMap<FName, FString>& MetaData);
// Checks if a valid range has been found on the provided metadata
bool CheckUIMinMaxRangeFromMetaData(const FString& UIMin, const FString& UIMax);
};
/////////////////////////////////////////////////////
// FHeaderPreParser
class FHeaderPreParser : public FBaseParser
{
public:
FHeaderPreParser()
{
}
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
void ParseClassDeclaration(
const TCHAR* Filename,
const TCHAR* InputText,
int32 InLineNumber,
const TCHAR*
StartingMatchID,
FName& out_StrippedClassName,
FString& out_ClassName,
FString& out_BaseClassName,
TArray<FHeaderProvider>& out_ClassNames,
const TArray<FSimplifiedParsingClassInfo>& ParsedClassArray
);
};