2016-12-08 08:52:44 -05:00
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
# 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 "UObject/ErrorException.h"
# include "UObject/Package.h"
# include "UObject/MetaData.h"
# include "UObject/TextProperty.h"
# include "UObject/EnumProperty.h"
# include "UnrealHeaderToolGlobals.h"
2015-04-10 06:02:22 -04:00
# include "ClassMaps.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 "Templates/UniqueObj.h"
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
# include "UniquePtr.h"
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
class UEnum ;
class UScriptStruct ;
class UProperty ;
class FUnrealSourceFile ;
class UObject ;
class UField ;
class UMetaData ;
class FHeaderParser ;
2014-06-02 07:02:29 -04:00
extern class FCompilerMetadataManager GScriptHelper ;
2014-03-14 14:13:41 -04:00
/*-----------------------------------------------------------------------------
FPropertyBase .
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
enum EFunctionExportFlags
{
FUNCEXPORT_Final = 0x00000001 , // function declaration included "final" keyword. Used to differentiate between functions that have FUNC_Final only because they're private
// =0x00000002,
// =0x00000004,
FUNCEXPORT_RequiredAPI = 0x00000008 , // Function should be exported as a public API function
FUNCEXPORT_Inline = 0x00000010 , // export as an inline static C++ function
FUNCEXPORT_CppStatic = 0x00000020 , // Export as a real C++ static function, causing thunks to call via ClassName::FuncName instead of this->FuncName
FUNCEXPORT_CustomThunk = 0x00000040 , // Export no thunk function; the user will manually define a custom one
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
// =0x00000080,
// =0x00000100,
2014-03-14 14:13:41 -04:00
} ;
enum EPropertyHeaderExportFlags
{
PROPEXPORT_Public = 0x00000001 , // property should be exported as public
PROPEXPORT_Private = 0x00000002 , // property should be exported as private
PROPEXPORT_Protected = 0x00000004 , // property should be exported as protected
} ;
struct EPointerType
{
enum Type
{
None ,
Native
} ;
} ;
struct EArrayType
{
enum Type
{
None ,
Static ,
2016-06-16 11:54:44 -04:00
Dynamic ,
Set
2014-03-14 14:13:41 -04:00
} ;
} ;
struct ERefQualifier
{
enum Type
{
None ,
ConstRef ,
NonConstRef
} ;
} ;
2016-04-28 13:50:05 -04:00
enum class EIntType
{
None ,
Sized , // e.g. int32, int16
Unsized // e.g. int, unsigned int
} ;
2014-03-14 14:13:41 -04:00
# ifndef CASE_TEXT
# define CASE_TEXT(txt) case txt: return TEXT(#txt)
# endif
/**
* Basic information describing a type .
*/
2015-11-18 16:20:49 -05:00
class FPropertyBase : public TSharedFromThis < FPropertyBase >
2014-03-14 14:13:41 -04:00
{
public :
// Variables.
EPropertyType Type ;
EArrayType : : Type ArrayType ;
uint64 PropertyFlags ;
2015-09-07 07:41:34 -04:00
uint64 ImpliedPropertyFlags ;
2014-03-14 14:13:41 -04:00
ERefQualifier : : Type RefQualifier ; // This is needed because of legacy stuff - FString mangles the flags for reasons that have become lost in time but we need this info for testing for invalid replicated function signatures.
2015-04-21 10:25:59 -04:00
TSharedPtr < FPropertyBase > MapKeyProp ;
2014-03-14 14:13:41 -04:00
/**
* A mask of EPropertyHeaderExportFlags which are used for modifying how this property is exported to the native class header
*/
uint32 PropertyExportFlags ;
union
{
class UEnum * Enum ;
class UClass * PropertyClass ;
class UScriptStruct * Struct ;
class UFunction * Function ;
# if PLATFORM_64BITS
int64 StringSize ;
# else
int32 StringSize ;
# endif
} ;
UClass * MetaClass ;
FName DelegateName ;
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
UClass * DelegateSignatureOwnerClass ;
2014-03-14 14:13:41 -04:00
FName RepNotifyName ;
/** Raw string (not type-checked) used for specifying special text when exporting a property to the *Classes.h file */
FString ExportInfo ;
/** Map of key value pairs that will be added to the package's UMetaData for this property */
TMap < FName , FString > MetaData ;
EPointerType : : Type PointerType ;
2016-04-28 13:50:05 -04:00
EIntType IntType ;
2014-03-14 14:13:41 -04:00
public :
/** @name Constructors */
//@{
2014-08-12 08:51:25 -04:00
explicit FPropertyBase ( EPropertyType InType )
2015-09-07 07:41:34 -04:00
: Type ( InType )
, ArrayType ( EArrayType : : None )
, PropertyFlags ( 0 )
, ImpliedPropertyFlags ( 0 )
, RefQualifier ( ERefQualifier : : None )
, PropertyExportFlags ( PROPEXPORT_Public )
, StringSize ( 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
, MetaClass ( nullptr )
2015-09-07 07:41:34 -04:00
, DelegateName ( NAME_None )
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
, DelegateSignatureOwnerClass ( nullptr )
2015-09-07 07:41:34 -04:00
, RepNotifyName ( NAME_None )
, PointerType ( EPointerType : : None )
2016-04-28 13:50:05 -04:00
, IntType ( GetSizedIntTypeFromPropertyType ( InType ) )
{
}
explicit FPropertyBase ( EPropertyType InType , EIntType InIntType )
: Type ( InType )
, ArrayType ( EArrayType : : None )
, PropertyFlags ( 0 )
, ImpliedPropertyFlags ( 0 )
, RefQualifier ( ERefQualifier : : None )
, PropertyExportFlags ( PROPEXPORT_Public )
, StringSize ( 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
, MetaClass ( nullptr )
2016-04-28 13:50:05 -04:00
, DelegateName ( NAME_None )
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
, DelegateSignatureOwnerClass ( nullptr )
2016-04-28 13:50:05 -04:00
, RepNotifyName ( NAME_None )
, PointerType ( EPointerType : : None )
, IntType ( InIntType )
2014-03-14 14:13:41 -04:00
{
}
2014-08-12 08:51:25 -04:00
explicit FPropertyBase ( UEnum * InEnum , EPropertyType InType )
2015-09-07 07:41:34 -04:00
: Type ( InType )
, ArrayType ( EArrayType : : None )
, PropertyFlags ( 0 )
, ImpliedPropertyFlags ( 0 )
, RefQualifier ( ERefQualifier : : None )
, PropertyExportFlags ( PROPEXPORT_Public )
, Enum ( InEnum )
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
, MetaClass ( nullptr )
2015-09-07 07:41:34 -04:00
, DelegateName ( NAME_None )
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
, DelegateSignatureOwnerClass ( nullptr )
2015-09-07 07:41:34 -04:00
, RepNotifyName ( NAME_None )
, PointerType ( EPointerType : : None )
2016-04-28 13:50:05 -04:00
, IntType ( GetSizedIntTypeFromPropertyType ( InType ) )
2014-03-14 14:13:41 -04:00
{
}
2014-08-12 08:51:25 -04:00
explicit FPropertyBase ( UClass * InClass , UClass * InMetaClass = NULL , bool bAllowWeak = false , bool bIsWeak = false , bool bWeakIsAuto = false , bool bIsLazy = false , bool bIsAsset = false )
2015-09-07 07:41:34 -04:00
: Type ( CPT_ObjectReference )
, ArrayType ( EArrayType : : None )
, PropertyFlags ( 0 )
, ImpliedPropertyFlags ( 0 )
, RefQualifier ( ERefQualifier : : None )
, PropertyExportFlags ( PROPEXPORT_Public )
, PropertyClass ( InClass )
, MetaClass ( InMetaClass )
, DelegateName ( NAME_None )
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
, DelegateSignatureOwnerClass ( nullptr )
2015-09-07 07:41:34 -04:00
, RepNotifyName ( NAME_None )
, PointerType ( EPointerType : : None )
2016-04-28 13:50:05 -04:00
, IntType ( EIntType : : None )
2014-03-14 14:13:41 -04:00
{
// if this is an interface class, we use the UInterfaceProperty class instead of UObjectProperty
if ( InClass - > HasAnyClassFlags ( CLASS_Interface ) )
{
Type = CPT_Interface ;
}
if ( bAllowWeak )
{
UClass * TestClass = InClass ;
while ( TestClass ) // inherited class flags might not yet be propagated, so lets search
{
if ( TestClass - > HasAnyClassFlags ( CLASS_PointersDefaultToAutoWeak ) )
{
bIsWeak = true ;
bWeakIsAuto = true ;
break ;
}
if ( TestClass - > HasAnyClassFlags ( CLASS_PointersDefaultToWeak ) )
{
bIsWeak = true ;
}
TestClass = TestClass - > GetSuperClass ( ) ;
}
}
else
{
bIsWeak = false ;
}
if ( bIsLazy )
{
Type = CPT_LazyObjectReference ;
}
else if ( bIsAsset )
{
Type = CPT_AssetObjectReference ;
}
else if ( bIsWeak )
{
Type = CPT_WeakObjectReference ;
if ( bWeakIsAuto )
{
PropertyFlags | = CPF_AutoWeak ;
}
}
}
2014-08-12 08:51:25 -04:00
explicit FPropertyBase ( UScriptStruct * InStruct )
2015-09-07 07:41:34 -04:00
: Type ( CPT_Struct )
, ArrayType ( EArrayType : : None )
, PropertyFlags ( 0 )
, ImpliedPropertyFlags ( 0 )
, RefQualifier ( ERefQualifier : : None )
, PropertyExportFlags ( PROPEXPORT_Public )
, Struct ( InStruct )
, MetaClass ( NULL )
, DelegateName ( NAME_None )
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
, DelegateSignatureOwnerClass ( nullptr )
2015-09-07 07:41:34 -04:00
, RepNotifyName ( NAME_None )
, PointerType ( EPointerType : : None )
2016-04-28 13:50:05 -04:00
, IntType ( EIntType : : None )
2014-03-14 14:13:41 -04:00
{
}
2014-08-12 08:51:25 -04:00
explicit FPropertyBase ( UProperty * Property )
2014-03-14 14:13:41 -04:00
: PropertyExportFlags ( PROPEXPORT_Public )
, DelegateName ( NAME_None )
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
, DelegateSignatureOwnerClass ( nullptr )
2014-03-14 14:13:41 -04:00
, RepNotifyName ( NAME_None )
2016-04-28 13:50:05 -04:00
, IntType ( EIntType : : None )
2014-03-14 14:13:41 -04:00
{
checkSlow ( Property ) ;
EArrayType : : Type ArrType = EArrayType : : None ;
uint64 PropagateFlags = 0 ;
UClass * ClassOfProperty = Property - > GetClass ( ) ;
if ( ClassOfProperty = = UArrayProperty : : StaticClass ( ) )
{
ArrType = EArrayType : : Dynamic ;
// if we're an array, save up Parm flags so we can propagate them.
// below the array will be assigned the inner property flags. This allows propagation of Parm flags (out, optional..)
PropagateFlags = Property - > PropertyFlags & CPF_ParmFlags ;
Property = CastChecked < UArrayProperty > ( Property ) - > Inner ;
ClassOfProperty = Property - > GetClass ( ) ;
}
if ( ClassOfProperty = = UByteProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Byte ) ;
Enum = Cast < UByteProperty > ( Property ) - > Enum ;
2016-04-28 13:50:05 -04:00
IntType = EIntType : : Sized ;
2014-03-14 14:13:41 -04:00
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
else if ( ClassOfProperty = = UEnumProperty : : StaticClass ( ) )
{
UEnumProperty * EnumProp = Cast < UEnumProperty > ( Property ) ;
UNumericProperty * UnderlyingProp = EnumProp - > GetUnderlyingProperty ( ) ;
* this = FPropertyBase (
UnderlyingProp - > IsA < UInt8Property > ( ) ? CPT_Int8
: UnderlyingProp - > IsA < UInt16Property > ( ) ? CPT_Int16
: UnderlyingProp - > IsA < UIntProperty > ( ) ? CPT_Int
: UnderlyingProp - > IsA < UInt64Property > ( ) ? CPT_Int64
: UnderlyingProp - > IsA < UByteProperty > ( ) ? CPT_Byte
: UnderlyingProp - > IsA < UUInt16Property > ( ) ? CPT_UInt16
: UnderlyingProp - > IsA < UUInt32Property > ( ) ? CPT_UInt32
: UnderlyingProp - > IsA < UUInt64Property > ( ) ? CPT_UInt64
: CPT_None
) ;
check ( this - > Type ! = CPT_None ) ;
Enum = EnumProp - > Enum ;
IntType = EIntType : : Sized ;
}
2014-03-14 14:13:41 -04:00
else if ( ClassOfProperty = = UInt8Property : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Int8 ) ;
2016-04-28 13:50:05 -04:00
IntType = EIntType : : Sized ;
2014-03-14 14:13:41 -04:00
}
else if ( ClassOfProperty = = UInt16Property : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Int16 ) ;
2016-04-28 13:50:05 -04:00
IntType = EIntType : : Sized ;
2014-03-14 14:13:41 -04:00
}
else if ( ClassOfProperty = = UIntProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Int ) ;
2016-04-28 13:50:05 -04:00
IntType = EIntType : : Sized ;
2014-03-14 14:13:41 -04:00
}
else if ( ClassOfProperty = = UInt64Property : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Int64 ) ;
2016-04-28 13:50:05 -04:00
IntType = EIntType : : Sized ;
2014-03-14 14:13:41 -04:00
}
else if ( ClassOfProperty = = UUInt16Property : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_UInt16 ) ;
2016-04-28 13:50:05 -04:00
IntType = EIntType : : Sized ;
2014-03-14 14:13:41 -04:00
}
else if ( ClassOfProperty = = UUInt32Property : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_UInt32 ) ;
2016-04-28 13:50:05 -04:00
IntType = EIntType : : Sized ;
2014-03-14 14:13:41 -04:00
}
else if ( ClassOfProperty = = UUInt64Property : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_UInt64 ) ;
2016-04-28 13:50:05 -04:00
IntType = EIntType : : Sized ;
2014-03-14 14:13:41 -04:00
}
else if ( ClassOfProperty = = UBoolProperty : : StaticClass ( ) )
{
UBoolProperty * BoolProperty = Cast < UBoolProperty > ( Property ) ;
if ( BoolProperty - > IsNativeBool ( ) )
{
* this = FPropertyBase ( CPT_Bool ) ;
}
else
{
switch ( BoolProperty - > ElementSize )
{
case sizeof ( uint8 ) :
* this = FPropertyBase ( CPT_Bool8 ) ;
break ;
case sizeof ( uint16 ) :
* this = FPropertyBase ( CPT_Bool16 ) ;
break ;
case sizeof ( uint32 ) :
* this = FPropertyBase ( CPT_Bool32 ) ;
break ;
case sizeof ( uint64 ) :
* this = FPropertyBase ( CPT_Bool64 ) ;
break ;
2016-04-28 13:50:05 -04:00
}
2014-03-14 14:13:41 -04:00
}
}
else if ( ClassOfProperty = = UFloatProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Float ) ;
}
else if ( ClassOfProperty = = UDoubleProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Double ) ;
}
else if ( ClassOfProperty = = UClassProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_ObjectReference ) ;
PropertyClass = Cast < UClassProperty > ( Property ) - > PropertyClass ;
MetaClass = Cast < UClassProperty > ( Property ) - > MetaClass ;
}
else if ( ClassOfProperty = = UObjectProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_ObjectReference ) ;
PropertyClass = Cast < UObjectProperty > ( Property ) - > PropertyClass ;
}
else if ( ClassOfProperty = = UWeakObjectProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_WeakObjectReference ) ;
PropertyClass = Cast < UWeakObjectProperty > ( Property ) - > PropertyClass ;
}
else if ( ClassOfProperty = = ULazyObjectProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_LazyObjectReference ) ;
PropertyClass = Cast < ULazyObjectProperty > ( Property ) - > PropertyClass ;
}
else if ( ClassOfProperty = = UAssetClassProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_AssetObjectReference ) ;
PropertyClass = Cast < UAssetClassProperty > ( Property ) - > PropertyClass ;
MetaClass = Cast < UAssetClassProperty > ( Property ) - > MetaClass ;
}
else if ( ClassOfProperty = = UAssetObjectProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_AssetObjectReference ) ;
PropertyClass = Cast < UAssetObjectProperty > ( Property ) - > PropertyClass ;
}
else if ( ClassOfProperty = = UNameProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Name ) ;
}
else if ( ClassOfProperty = = UStrProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_String ) ;
}
else if ( ClassOfProperty = = UTextProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Text ) ;
}
else if ( ClassOfProperty = = UStructProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Struct ) ;
Struct = Cast < UStructProperty > ( Property ) - > Struct ;
}
else if ( ClassOfProperty = = UDelegateProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Delegate ) ;
Function = Cast < UDelegateProperty > ( Property ) - > SignatureFunction ;
}
else if ( ClassOfProperty = = UMulticastDelegateProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_MulticastDelegate ) ;
// @todo delegate: Any other setup for calling multi-cast delegates from script needed?
Function = Cast < UMulticastDelegateProperty > ( Property ) - > SignatureFunction ;
}
else if ( ClassOfProperty = = UInterfaceProperty : : StaticClass ( ) )
{
* this = FPropertyBase ( CPT_Interface ) ;
PropertyClass = Cast < UInterfaceProperty > ( Property ) - > InterfaceClass ;
}
else
{
UE_LOG ( LogCompile , Fatal , TEXT ( " Unknown property type '%s' " ) , * Property - > GetFullName ( ) ) ;
}
2015-09-07 07:41:34 -04:00
ArrayType = ArrType ;
PropertyFlags = Property - > PropertyFlags | PropagateFlags ;
ImpliedPropertyFlags = 0 ;
RefQualifier = ERefQualifier : : None ;
PointerType = EPointerType : : None ;
2014-03-14 14:13:41 -04:00
}
//@}
/** @name Functions */
//@{
/**
* Returns whether this token represents an object reference
*/
bool IsObject ( ) const
{
return Type = = CPT_ObjectReference | | Type = = CPT_Interface | | Type = = CPT_WeakObjectReference | | Type = = CPT_LazyObjectReference | | Type = = CPT_AssetObjectReference ;
}
2016-06-16 11:54:44 -04:00
bool IsContainer ( ) const
{
return ( ArrayType ! = EArrayType : : None | | MapKeyProp . IsValid ( ) ) ;
}
2014-03-14 14:13:41 -04:00
/**
* Determines whether this token ' s type is compatible with another token ' s type .
*
* @ param Other the token to check against this one .
* Given the following example expressions , VarA is Other and VarB is ' this ' :
* VarA = VarB ;
*
* function func ( type VarB ) { }
* func ( VarA ) ;
*
* static operator = = ( type VarB_1 , type VarB_2 ) { }
* if ( VarA_1 = = VarA_2 ) { }
*
* @ param bDisallowGeneralization controls whether it should be considered a match if this token ' s type is a generalization
* of the other token ' s type ( or vice versa , when dealing with structs
* @ param bIgnoreImplementedInterfaces controls whether two types can be considered a match if one type is an interface implemented
* by the other type .
*/
bool MatchesType ( const FPropertyBase & Other , bool bDisallowGeneralization , bool bIgnoreImplementedInterfaces = false ) const
{
check ( Type ! = CPT_None | | ! bDisallowGeneralization ) ;
bool bIsObjectType = IsObject ( ) ;
bool bOtherIsObjectType = Other . IsObject ( ) ;
bool bIsObjectComparison = bIsObjectType & & bOtherIsObjectType ;
bool bReverseClassChainCheck = true ;
// If converting to an l-value, we require an exact match with an l-value.
if ( ( PropertyFlags & CPF_OutParm ) ! = 0 )
{
// if the other type is not an l-value, disallow
if ( ( Other . PropertyFlags & CPF_OutParm ) = = 0 )
{
return false ;
}
// if the other type is const and we are not const, disallow
if ( ( Other . PropertyFlags & CPF_ConstParm ) ! = 0 & & ( PropertyFlags & CPF_ConstParm ) = = 0 )
{
return false ;
}
if ( Type = = CPT_Struct )
{
// Allow derived structs to be passed by reference, unless this is a dynamic array of structs
bDisallowGeneralization = bDisallowGeneralization | | ArrayType = = EArrayType : : Dynamic | | Other . ArrayType = = EArrayType : : Dynamic ;
}
// if Type == CPT_ObjectReference, out object function parm; allow derived classes to be passed in
// if Type == CPT_Interface, out interface function parm; allow derived classes to be passed in
else if ( ( PropertyFlags & CPF_ConstParm ) = = 0 | | ! IsObject ( ) )
{
// all other variable types must match exactly when passed as the value to an 'out' parameter
bDisallowGeneralization = true ;
}
// both types are objects, but one is an interface and one is an object reference
else if ( bIsObjectComparison & & Type ! = Other . Type )
{
return false ;
}
}
2014-08-12 08:51:25 -04:00
else if ( ( Type = = CPT_ObjectReference | | Type = = CPT_WeakObjectReference | | Type = = CPT_LazyObjectReference | | Type = = CPT_AssetObjectReference ) & & Other . Type ! = CPT_Interface & & ( PropertyFlags & CPF_ReturnParm ) )
2014-03-14 14:13:41 -04:00
{
bReverseClassChainCheck = false ;
}
// Check everything.
if ( Type = = CPT_None & & ( Other . Type = = CPT_None | | ! bDisallowGeneralization ) )
{
// If Other has no type, accept anything.
return true ;
}
else if ( Type ! = Other . Type & & ! bIsObjectComparison )
{
// Mismatched base types.
return false ;
}
else if ( ArrayType ! = Other . ArrayType )
{
// Mismatched array types.
return false ;
}
else if ( Type = = CPT_Byte )
{
// Make sure enums match, or we're generalizing.
return Enum = = Other . Enum | | ( Enum = = NULL & & ! bDisallowGeneralization ) ;
}
else if ( bIsObjectType )
{
check ( PropertyClass ! = NULL ) ;
// Make sure object types match, or we're generalizing.
if ( bDisallowGeneralization )
{
// Exact match required.
return PropertyClass = = Other . PropertyClass & & MetaClass = = Other . MetaClass ;
}
else if ( Other . PropertyClass = = NULL )
{
// Cannonical 'None' matches all object classes.
return true ;
}
else
{
// Generalization is ok (typical example of this check would look like: VarA = VarB;, where this is VarB and Other is VarA)
if ( Other . PropertyClass - > IsChildOf ( PropertyClass ) )
{
if ( ! bIgnoreImplementedInterfaces | | ( ( Type = = CPT_Interface ) = = ( Other . Type = = CPT_Interface ) ) )
{
if ( ! PropertyClass - > IsChildOf ( UClass : : StaticClass ( ) ) | | MetaClass = = NULL | | Other . MetaClass - > IsChildOf ( MetaClass ) | |
( bReverseClassChainCheck & & ( Other . MetaClass = = NULL | | MetaClass - > IsChildOf ( Other . MetaClass ) ) ) )
{
return true ;
}
}
}
// check the opposite class chain for object types
else if ( bReverseClassChainCheck & & Type ! = CPT_Interface & & bIsObjectComparison & & PropertyClass ! = NULL & & PropertyClass - > IsChildOf ( Other . PropertyClass ) )
{
if ( ! Other . PropertyClass - > IsChildOf ( UClass : : StaticClass ( ) ) | | MetaClass = = NULL | | Other . MetaClass = = NULL | | MetaClass - > IsChildOf ( Other . MetaClass ) | | Other . MetaClass - > IsChildOf ( MetaClass ) )
{
return true ;
}
}
if ( PropertyClass - > HasAnyClassFlags ( CLASS_Interface ) & & ! bIgnoreImplementedInterfaces )
{
if ( Other . PropertyClass - > ImplementsInterface ( PropertyClass ) )
{
return true ;
}
}
return false ;
}
}
else if ( Type = = CPT_Struct )
{
check ( Struct ! = NULL ) ;
check ( Other . Struct ! = NULL ) ;
if ( Struct = = Other . Struct )
{
// struct types match exactly
return true ;
}
// returning false here prevents structs related through inheritance from being used interchangeably, such as passing a derived struct as the value for a parameter
// that expects the base struct, or vice versa. An easier example is assignment (e.g. Vector = Plane or Plane = Vector).
// there are two cases to consider (let's use vector and plane for the example):
// - Vector = Plane;
// in this expression, 'this' is the vector, and Other is the plane. This is an unsafe conversion, as the destination property type is used to copy the r-value to the l-value
// so in this case, the VM would call CopyCompleteValue on the FPlane struct, which would copy 16 bytes into the l-value's buffer; However, the l-value buffer will only be
// 12 bytes because that is the size of FVector
// - Plane = Vector;
// in this expression, 'this' is the plane, and Other is the vector. This is a safe conversion, since only 12 bytes would be copied from the r-value into the l-value's buffer
// (which would be 16 bytes). The problem with allowing this conversion is that what to do with the extra member (e.g. Plane.W); should it be left alone? should it be zeroed?
// difficult to say what the correct behavior should be, so let's just ignore inheritance for the sake of determining whether two structs are identical
// Previously, the logic for determining whether this is a generalization of Other was reversed; this is very likely the culprit behind all current issues with
// using derived structs interchangeably with their base versions. The inheritance check has been fixed; for now, allow struct generalization and see if we can find any further
// issues with allowing conversion. If so, then we disable all struct generalization by returning false here.
// return false;
if ( bDisallowGeneralization )
{
return false ;
}
// Generalization is ok if this is not a dynamic array
if ( ArrayType ! = EArrayType : : Dynamic & & Other . ArrayType ! = EArrayType : : Dynamic )
{
if ( ! Other . Struct - > IsChildOf ( Struct ) & & Struct - > IsChildOf ( Other . Struct ) )
{
return true ;
}
}
return false ;
}
else
{
// General match.
return true ;
}
}
FString Describe ( )
{
return FString : : Printf (
2015-09-07 07:41:34 -04:00
TEXT ( " Type:%s Flags:%lli ImpliedFlags:%lli Enum:%s PropertyClass:%s Struct:%s Function:%s MetaClass:%s " ) ,
GetPropertyTypeText ( Type ) , PropertyFlags , ImpliedPropertyFlags ,
2014-03-14 14:13:41 -04:00
Enum ! = NULL ? * Enum - > GetName ( ) : TEXT ( " " ) ,
PropertyClass ! = NULL ? * PropertyClass - > GetName ( ) : TEXT ( " NULL " ) ,
Struct ! = NULL ? * Struct - > GetName ( ) : TEXT ( " NULL " ) ,
Function ! = NULL ? * Function - > GetName ( ) : TEXT ( " NULL " ) ,
MetaClass ! = NULL ? * MetaClass - > GetName ( ) : TEXT ( " NULL " )
) ;
}
//@}
2016-04-28 13:50:05 -04:00
EIntType GetSizedIntTypeFromPropertyType ( EPropertyType PropType )
{
switch ( PropType )
{
case CPT_Byte :
case CPT_UInt16 :
case CPT_UInt32 :
case CPT_UInt64 :
case CPT_Int8 :
case CPT_Int16 :
case CPT_Int :
case CPT_Int64 :
return EIntType : : Sized ;
default :
return EIntType : : None ;
}
}
2014-03-14 14:13:41 -04:00
static const TCHAR * GetPropertyTypeText ( EPropertyType Type ) ;
2015-11-18 16:20:49 -05:00
friend struct FPropertyBaseArchiveProxy ;
2014-03-14 14:13:41 -04:00
} ;
//
// Token types.
//
enum ETokenType
{
TOKEN_None = 0x00 , // No token.
TOKEN_Identifier = 0x01 , // Alphanumeric identifier.
TOKEN_Symbol = 0x02 , // Symbol.
TOKEN_Const = 0x03 , // A constant.
TOKEN_Max = 0x0D
} ;
/*-----------------------------------------------------------------------------
FToken .
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
//
// Information about a token that was just parsed.
//
class FToken : public FPropertyBase
{
public :
/** @name Variables */
//@{
/** Type of token. */
ETokenType TokenType ;
/** Name of token. */
FName TokenName ;
/** Starting position in script where this token came from. */
int32 StartPos ;
/** Starting line in script. */
int32 StartLine ;
/** Always valid. */
TCHAR Identifier [ NAME_SIZE ] ;
/** property that corresponds to this FToken - null if this Token doesn't correspond to a UProperty */
UProperty * TokenProperty ;
union
{
// TOKEN_Const values.
uint8 Byte ; // If CPT_Byte.
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
int64 Int64 ; // If CPT_Int64.
2014-03-14 14:13:41 -04:00
int32 Int ; // If CPT_Int.
bool NativeBool ; // if CPT_Bool
float Float ; // If CPT_Float.
double Double ; // If CPT_Double.
uint8 NameBytes [ sizeof ( FName ) ] ; // If CPT_Name.
TCHAR String [ MAX_STRING_CONST_SIZE ] ; // If CPT_String
} ;
//@}
/**
* Copies the properties from this token into another .
*
* @ param Other the token to copy this token ' s properties to .
*/
void Clone ( const FToken & Other ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
FString GetConstantValue ( ) const
2014-03-14 14:13:41 -04:00
{
if ( TokenType = = TOKEN_Const )
{
switch ( Type )
{
case CPT_Byte :
return FString : : Printf ( TEXT ( " %u " ) , Byte ) ;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
case CPT_Int64 :
return FString : : Printf ( TEXT ( " %ld " ) , Int64 ) ;
2014-03-14 14:13:41 -04:00
case CPT_Int :
return FString : : Printf ( TEXT ( " %i " ) , Int ) ;
case CPT_Bool :
// Don't use GTrue/GFalse here because they can be localized
return FString : : Printf ( TEXT ( " %s " ) , NativeBool ? * ( FName : : GetEntry ( NAME_TRUE ) - > GetPlainNameString ( ) ) : * ( FName : : GetEntry ( NAME_FALSE ) - > GetPlainNameString ( ) ) ) ;
case CPT_Float :
return FString : : Printf ( TEXT ( " %f " ) , Float ) ;
case CPT_Double :
return FString : : Printf ( TEXT ( " %f " ) , Double ) ;
case CPT_Name :
return FString : : Printf ( TEXT ( " %s " ) , * ( * ( FName * ) NameBytes ) . ToString ( ) ) ;
case CPT_String :
return String ;
// unsupported (parsing never produces a constant token of these types)
case CPT_Vector :
case CPT_Rotation :
case CPT_Int8 :
case CPT_Int16 :
case CPT_UInt16 :
case CPT_UInt32 :
case CPT_UInt64 :
case CPT_Bool8 :
case CPT_Bool16 :
case CPT_Bool32 :
case CPT_Bool64 :
case CPT_Range :
case CPT_Struct :
case CPT_ObjectReference :
case CPT_WeakObjectReference :
case CPT_LazyObjectReference :
case CPT_AssetObjectReference :
case CPT_Interface :
case CPT_Delegate :
case CPT_MulticastDelegate :
default :
return TEXT ( " InvalidTypeForAToken " ) ;
}
}
else
{
return TEXT ( " NotConstant " ) ;
}
}
// Constructors.
2014-08-12 08:51:25 -04:00
FToken ( )
: FPropertyBase ( CPT_None )
, TokenProperty ( NULL )
2014-03-14 14:13:41 -04:00
{
2014-08-12 08:51:25 -04:00
InitToken ( CPT_None ) ;
2014-03-14 14:13:41 -04:00
}
// copy constructors
2014-08-12 08:51:25 -04:00
explicit FToken ( EPropertyType InType )
: FPropertyBase ( InType )
, TokenProperty ( NULL )
2014-03-14 14:13:41 -04:00
{
2014-08-12 08:51:25 -04:00
InitToken ( InType ) ;
}
// copy constructors
FToken ( const FPropertyBase & InType )
: FPropertyBase ( CPT_None )
, TokenProperty ( NULL )
{
InitToken ( CPT_None ) ;
2014-03-14 14:13:41 -04:00
( FPropertyBase & ) * this = InType ;
}
// Inlines.
2014-08-12 08:51:25 -04:00
void InitToken ( EPropertyType InType )
2014-03-14 14:13:41 -04:00
{
2014-08-12 08:51:25 -04:00
( FPropertyBase & ) * this = FPropertyBase ( InType ) ;
2014-03-14 14:13:41 -04:00
TokenType = TOKEN_None ;
TokenName = NAME_None ;
StartPos = 0 ;
StartLine = 0 ;
* Identifier = 0 ;
2015-08-27 10:22:25 -04:00
FMemory : : Memzero ( String ) ;
2014-03-14 14:13:41 -04:00
}
bool Matches ( const TCHAR * Str , ESearchCase : : Type SearchCase = ESearchCase : : IgnoreCase ) const
{
return ( TokenType = = TOKEN_Identifier | | TokenType = = TOKEN_Symbol ) & & ( ( SearchCase = = ESearchCase : : CaseSensitive ) ? ! FCString : : Strcmp ( Identifier , Str ) : ! FCString : : Stricmp ( Identifier , Str ) ) ;
}
bool Matches ( const FName & Name ) const
{
return TokenType = = TOKEN_Identifier & & TokenName = = Name ;
}
bool StartsWith ( const TCHAR * Str , bool bCaseSensitive = false ) const
{
const int32 StrLength = FCString : : Strlen ( Str ) ;
return ( TokenType = = TOKEN_Identifier | | TokenType = = TOKEN_Symbol ) & & ( bCaseSensitive ? ( ! FCString : : Strncmp ( Identifier , Str , StrLength ) ) : ( ! FCString : : Strnicmp ( Identifier , Str , StrLength ) ) ) ;
}
bool IsBool ( ) const
{
return Type = = CPT_Bool | | Type = = CPT_Bool8 | | Type = = CPT_Bool16 | | Type = = CPT_Bool32 | | Type = = CPT_Bool64 ;
}
// Setters.
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
void SetConstInt64 ( int64 InInt64 )
{
( FPropertyBase & ) * this = FPropertyBase ( CPT_Int64 ) ;
Int64 = InInt64 ;
TokenType = TOKEN_Const ;
}
2014-03-14 14:13:41 -04:00
void SetConstInt ( int32 InInt )
{
( FPropertyBase & ) * this = FPropertyBase ( CPT_Int ) ;
Int = InInt ;
TokenType = TOKEN_Const ;
}
void SetConstBool ( bool InBool )
{
( FPropertyBase & ) * this = FPropertyBase ( CPT_Bool ) ;
NativeBool = InBool ;
TokenType = TOKEN_Const ;
}
void SetConstFloat ( float InFloat )
{
( FPropertyBase & ) * this = FPropertyBase ( CPT_Float ) ;
Float = InFloat ;
TokenType = TOKEN_Const ;
}
void SetConstDouble ( double InDouble )
{
( FPropertyBase & ) * this = FPropertyBase ( CPT_Double ) ;
Double = InDouble ;
TokenType = TOKEN_Const ;
}
void SetConstName ( FName InName )
{
( FPropertyBase & ) * this = FPropertyBase ( CPT_Name ) ;
* ( FName * ) NameBytes = InName ;
TokenType = TOKEN_Const ;
}
void SetConstString ( TCHAR * InString , int32 MaxLength = MAX_STRING_CONST_SIZE )
{
check ( MaxLength > 0 ) ;
( FPropertyBase & ) * this = FPropertyBase ( CPT_String ) ;
if ( InString ! = String )
{
FCString : : Strncpy ( String , InString , MaxLength ) ;
}
TokenType = TOKEN_Const ;
}
2015-04-10 20:25:40 -04:00
void SetConstChar ( TCHAR InChar )
{
//@TODO: Treating this like a string for now, nothing consumes it
( FPropertyBase & ) * this = FPropertyBase ( CPT_String ) ;
String [ 0 ] = InChar ;
String [ 1 ] = 0 ;
TokenType = TOKEN_Const ;
}
2014-03-14 14:13:41 -04:00
//!!struct constants
// Getters.
bool GetConstInt ( int32 & I ) const
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
if ( TokenType = = TOKEN_Const & & Type = = CPT_Int64 )
{
I = Int64 ;
return 1 ;
}
else if ( TokenType = = TOKEN_Const & & Type = = CPT_Int )
{
I = Int ;
return 1 ;
}
else if ( TokenType = = TOKEN_Const & & Type = = CPT_Byte )
{
I = Byte ;
return 1 ;
}
else if ( TokenType = = TOKEN_Const & & Type = = CPT_Float & & Float = = FMath : : TruncToInt ( Float ) )
{
I = ( int32 ) Float ;
return 1 ;
}
else if ( TokenType = = TOKEN_Const & & Type = = CPT_Double & & Float = = FMath : : TruncToInt ( Double ) )
{
I = ( int32 ) Double ;
return 1 ;
}
else return 0 ;
}
bool GetConstInt64 ( int64 & I ) const
{
if ( TokenType = = TOKEN_Const & & Type = = CPT_Int64 )
{
I = Int64 ;
return 1 ;
}
else if ( TokenType = = TOKEN_Const & & Type = = CPT_Int )
2014-03-14 14:13:41 -04:00
{
I = Int ;
return 1 ;
}
else if ( TokenType = = TOKEN_Const & & Type = = CPT_Byte )
{
I = Byte ;
return 1 ;
}
2014-05-06 06:26:25 -04:00
else if ( TokenType = = TOKEN_Const & & Type = = CPT_Float & & Float = = FMath : : TruncToInt ( Float ) )
2014-03-14 14:13:41 -04:00
{
I = ( int32 ) Float ;
return 1 ;
}
2014-05-06 06:26:25 -04:00
else if ( TokenType = = TOKEN_Const & & Type = = CPT_Double & & Float = = FMath : : TruncToInt ( Double ) )
2014-03-14 14:13:41 -04:00
{
I = ( int32 ) Double ;
return 1 ;
}
else return 0 ;
}
FString Describe ( )
{
return FString : : Printf (
2015-09-07 07:41:34 -04:00
TEXT ( " Property:%s Type:%s TokenName:%s ConstValue:%s Struct:%s Flags:%lli Implied:%lli " ) ,
2014-03-14 14:13:41 -04:00
TokenProperty ! = NULL ? * TokenProperty - > GetName ( ) : TEXT ( " NULL " ) ,
GetPropertyTypeText ( Type ) , * TokenName . ToString ( ) , * GetConstantValue ( ) ,
Struct ! = NULL ? * Struct - > GetName ( ) : TEXT ( " NULL " ) ,
2015-09-07 07:41:34 -04:00
PropertyFlags ,
ImpliedPropertyFlags
2014-03-14 14:13:41 -04:00
) ;
}
2015-11-18 16:20:49 -05:00
friend struct FTokenArchiveProxy ;
2014-03-14 14:13:41 -04:00
} ;
/**
* A group of FTokens . Used for keeping track of reference chains tokens
* e . g . SomeObject . default . Foo . DoSomething ( )
*/
class FTokenChain : public TArray < FToken >
{
public :
FToken & operator + = ( const FToken & NewToken )
{
FToken & Token = ( * this ) [ AddZeroed ( ) ] = NewToken ;
return Token ;
}
} ;
/**
* Information about a function being compiled .
*/
struct FFuncInfo
{
/** @name Variables */
//@{
/** Name of the function or operator. */
FToken Function ;
/** Function flags. */
uint32 FunctionFlags ;
/** Function flags which are only required for exporting */
uint32 FunctionExportFlags ;
/** Number of parameters expected for operator. */
int32 ExpectParms ;
/** Pointer to the UFunction corresponding to this FFuncInfo */
UFunction * FunctionReference ;
/** Name of the wrapper function that marshalls the arguments and does the indirect call **/
FString MarshallAndCallName ;
/** Name of the actual implementation **/
FString CppImplName ;
/** Name of the actual validation implementation **/
FString CppValidationImplName ;
/** Name for callback-style names **/
FString UnMarshallAndCallName ;
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
/** Endpoint name */
FString EndpointName ;
2014-03-14 14:13:41 -04:00
/** Identifier for an RPC call to a platform service */
int16 RPCId ;
/** Identifier for an RPC call expecting a response */
int16 RPCResponseId ;
/** Whether this function represents a sealed event */
bool bSealedEvent ;
2015-01-20 09:33:54 -05:00
/** Delegate macro line in header. */
2015-03-17 06:02:26 -04:00
int32 MacroLine ;
2015-04-20 06:19:21 -04:00
/** Position in file where this function was declared. Points to first char of function name. */
int32 InputPos ;
2016-01-25 13:25:51 -05:00
/** TRUE if the function is being forced to be considered as impure by the user */
bool bForceBlueprintImpure ;
2014-03-14 14:13:41 -04:00
//@}
/** Constructor. */
FFuncInfo ( )
2015-03-17 06:02:26 -04:00
: Function ( )
, FunctionFlags ( 0 )
, FunctionExportFlags ( 0 )
, ExpectParms ( 0 )
, FunctionReference ( NULL )
, CppImplName ( TEXT ( " " ) )
, CppValidationImplName ( TEXT ( " " ) )
, RPCId ( 0 )
, RPCResponseId ( 0 )
, bSealedEvent ( false )
, MacroLine ( - 1 )
2015-04-20 06:19:21 -04:00
, InputPos ( - 1 )
2016-01-25 13:25:51 -05:00
, bForceBlueprintImpure ( false )
2014-03-14 14:13:41 -04:00
{ }
2015-03-17 06:02:26 -04:00
FFuncInfo ( const FFuncInfo & Other )
: FunctionFlags ( Other . FunctionFlags )
, FunctionExportFlags ( Other . FunctionExportFlags )
, ExpectParms ( Other . ExpectParms )
, FunctionReference ( Other . FunctionReference )
, CppImplName ( Other . CppImplName )
, CppValidationImplName ( Other . CppValidationImplName )
, RPCId ( Other . RPCId )
, RPCResponseId ( Other . RPCResponseId )
, MacroLine ( Other . MacroLine )
2015-04-20 06:19:21 -04:00
, InputPos ( Other . InputPos )
2016-01-25 13:25:51 -05:00
, bForceBlueprintImpure ( Other . bForceBlueprintImpure )
2014-03-14 14:13:41 -04:00
{
Function . Clone ( Other . Function ) ;
if ( FunctionReference )
{
SetFunctionNames ( ) ;
}
}
/** Set the internal function names based on flags **/
void SetFunctionNames ( )
{
FString FunctionName = FunctionReference - > GetName ( ) ;
if ( FunctionReference - > HasAnyFunctionFlags ( FUNC_Delegate ) )
{
FunctionName = FunctionName . LeftChop ( FString ( TEXT ( " __DelegateSignature " ) ) . Len ( ) ) ;
}
UnMarshallAndCallName = FString ( TEXT ( " exec " ) ) + FunctionName ;
2015-02-06 09:54:41 -05:00
2014-03-14 14:13:41 -04:00
if ( FunctionReference - > HasAnyFunctionFlags ( FUNC_BlueprintEvent ) )
{
MarshallAndCallName = FunctionName ;
}
else
{
MarshallAndCallName = FString ( TEXT ( " event " ) ) + FunctionName ;
}
if ( FunctionReference - > HasAllFunctionFlags ( FUNC_Native | FUNC_Net ) )
{
MarshallAndCallName = FunctionName ;
if ( FunctionReference - > HasAllFunctionFlags ( FUNC_NetResponse ) )
{
// Response function implemented by programmer and called directly from thunk
CppImplName = FunctionReference - > GetName ( ) ;
}
else
{
2015-02-06 09:54:41 -05:00
if ( CppImplName . IsEmpty ( ) )
{
CppImplName = FunctionReference - > GetName ( ) + TEXT ( " _Implementation " ) ;
}
else if ( CppImplName = = FunctionName )
{
FError : : Throwf ( TEXT ( " Native implementation function must be different than original function name. " ) ) ;
}
if ( CppValidationImplName . IsEmpty ( ) & & FunctionReference - > HasAllFunctionFlags ( FUNC_NetValidate ) )
2014-03-14 14:13:41 -04:00
{
CppValidationImplName = FunctionReference - > GetName ( ) + TEXT ( " _Validate " ) ;
2015-02-06 09:54:41 -05:00
}
else if ( CppValidationImplName = = FunctionName )
{
FError : : Throwf ( TEXT ( " Validation function must be different than original function name. " ) ) ;
2014-03-14 14:13:41 -04:00
}
}
}
if ( FunctionReference - > HasAllFunctionFlags ( FUNC_Delegate ) )
{
MarshallAndCallName = FString ( TEXT ( " delegate " ) ) + FunctionName ;
}
if ( FunctionReference - > HasAllFunctionFlags ( FUNC_BlueprintEvent | FUNC_Native ) )
{
MarshallAndCallName = FunctionName ;
CppImplName = FunctionReference - > GetName ( ) + TEXT ( " _Implementation " ) ;
2015-02-06 09:54:41 -05:00
}
if ( CppImplName . IsEmpty ( ) )
{
CppImplName = FunctionName ;
2014-03-14 14:13:41 -04:00
}
}
} ;
/**
* Stores " compiler " data about an FToken . " Compiler " data is data that is associated with a
* specific property , function or class that is only needed during script compile .
* This class is designed to make adding new compiler data very simple .
*
* - stores the raw evaluated bytecode associated with an FToken
*/
struct FTokenData
{
/** The token tracked by this FTokenData. */
FToken Token ;
/** @name Constructors */
//@{
/**
* Defalt constructor
*/
FTokenData ( )
{ }
/**
* Copy constructor
*/
FTokenData ( const FToken & inToken )
: Token ( inToken )
{ }
//@}
} ;
/**
* Class for storing data about a list of properties . Though FToken contains a reference to its
* associated UProperty , it ' s faster lookup to use the UProperty as the key in a TMap .
*/
2015-11-18 16:20:49 -05:00
class FPropertyData : public TMap < UProperty * , TSharedPtr < FTokenData > >
2014-03-14 14:13:41 -04:00
{
2015-11-18 16:20:49 -05:00
typedef TMap < UProperty * , TSharedPtr < FTokenData > > Super ;
2014-03-14 14:13:41 -04:00
public :
/**
* Returns the value associated with a specified key .
* @ param Key - The key to search for .
* @ return A pointer to the value associated with the specified key , or NULL if the key isn ' t contained in this map . The pointer
* is only valid until the next change to any key in the map .
*/
FTokenData * Find ( UProperty * Key )
{
FTokenData * Result = NULL ;
2015-11-18 16:20:49 -05:00
TSharedPtr < FTokenData > * pResult = Super : : Find ( Key ) ;
2014-03-14 14:13:41 -04:00
if ( pResult ! = NULL )
{
2015-11-18 16:20:49 -05:00
Result = pResult - > Get ( ) ;
2014-03-14 14:13:41 -04:00
}
return Result ;
}
const FTokenData * Find ( UProperty * Key ) const
{
const FTokenData * Result = NULL ;
2015-11-18 16:20:49 -05:00
const TSharedPtr < FTokenData > * pResult = Super : : Find ( Key ) ;
2014-03-14 14:13:41 -04:00
if ( pResult ! = NULL )
{
2015-11-18 16:20:49 -05:00
Result = pResult - > Get ( ) ;
2014-03-14 14:13:41 -04:00
}
return Result ;
}
/**
* Sets the value associated with a key . If the key already exists in the map , uses the same
* value pointer and reinitalized the FTokenData with the input value .
*
* @ param InKey the property to get a token wrapper for
* @ param InValue the token wrapper for the specified key
*
* @ return a pointer to token data created associated with the property
*/
2015-11-18 16:20:49 -05:00
FTokenData * Set ( UProperty * InKey , const FTokenData & InValue , FUHTMakefile & UHTMakefile , FUnrealSourceFile * UnrealSourceFile ) ;
2014-03-14 14:13:41 -04:00
/**
* ( debug ) Dumps the values of this FPropertyData to the log file
*
* @ param Indent number of spaces to insert at the beginning of each line
*/
void Dump ( int32 Indent )
{
2015-11-18 16:20:49 -05:00
for ( auto & Kvp : * this )
2014-03-14 14:13:41 -04:00
{
2015-11-18 16:20:49 -05:00
TSharedPtr < FTokenData > & PointerVal = Kvp . Value ;
FToken & Token = PointerVal - > Token ;
2014-03-14 14:13:41 -04:00
if ( Token . Type ! = CPT_None )
{
UE_LOG ( LogCompile , Log , TEXT ( " %s%s " ) , FCString : : Spc ( Indent ) , * Token . Describe ( ) ) ;
}
}
}
} ;
/**
* Class for storing additional data about compiled structs and struct properties
*/
class FStructData
{
public :
/** info about the struct itself */
FToken StructData ;
private :
/** info for the properties contained in this struct */
FPropertyData StructPropertyData ;
public :
/**
* Adds a new struct property token
*
* @ param PropertyToken token that should be added to the list
*/
2015-11-18 16:20:49 -05:00
void AddStructProperty ( const FTokenData & PropertyToken , FUHTMakefile & UHTMakefile , FUnrealSourceFile * UnrealSourceFile )
2014-03-14 14:13:41 -04:00
{
2015-11-18 16:20:49 -05:00
check ( PropertyToken . Token . TokenProperty ) ;
StructPropertyData . Set ( PropertyToken . Token . TokenProperty , PropertyToken , UHTMakefile , UnrealSourceFile ) ;
2014-03-14 14:13:41 -04:00
}
FPropertyData & GetStructPropertyData ( )
{
return StructPropertyData ;
}
const FPropertyData & GetStructPropertyData ( ) const
{
return StructPropertyData ;
}
/**
* ( debug ) Dumps the values of this FStructData to the log file
*
* @ param Indent number of spaces to insert at the beginning of each line
*/
void Dump ( int32 Indent )
{
UE_LOG ( LogCompile , Log , TEXT ( " %s%s " ) , FCString : : Spc ( Indent ) , * StructData . Describe ( ) ) ;
UE_LOG ( LogCompile , Log , TEXT ( " %sproperties: " ) , FCString : : Spc ( Indent ) ) ;
StructPropertyData . Dump ( Indent + 4 ) ;
}
/** Constructor */
FStructData ( const FToken & StructToken ) : StructData ( StructToken ) { }
2015-11-18 16:20:49 -05:00
friend struct FStructDataArchiveProxy ;
2014-03-14 14:13:41 -04:00
} ;
/**
* Class for storing additional data about compiled function properties .
*/
class FFunctionData
{
/** info about the function associated with this FFunctionData */
FFuncInfo FunctionData ;
/** return value for this function */
FTokenData ReturnTypeData ;
/** function parameter data */
FPropertyData ParameterData ;
/**
* Adds a new parameter token
*
* @ param PropertyToken token that should be added to the list
*/
2015-11-18 16:20:49 -05:00
void AddParameter ( const FToken & PropertyToken , FUHTMakefile & UHTMakefile , FUnrealSourceFile * UnrealSourceFile )
2014-03-14 14:13:41 -04:00
{
check ( PropertyToken . TokenProperty ) ;
2015-11-18 16:20:49 -05:00
ParameterData . Set ( PropertyToken . TokenProperty , PropertyToken , UHTMakefile , UnrealSourceFile ) ;
2014-03-14 14:13:41 -04:00
}
/**
* Sets the value of the return token for this function
*
* @ param PropertyToken token that should be added
*/
void SetReturnData ( const FToken & PropertyToken )
{
check ( PropertyToken . TokenProperty ) ;
ReturnTypeData . Token = PropertyToken ;
}
public :
/** Constructors */
FFunctionData ( ) { }
FFunctionData ( const FFunctionData & Other )
{
( * this ) = Other ;
}
FFunctionData ( const FFuncInfo & inFunctionData )
: FunctionData ( inFunctionData )
{ }
/** Copy operator */
FFunctionData & operator = ( const FFunctionData & Other )
{
FunctionData = Other . FunctionData ;
ParameterData = Other . ParameterData ;
ReturnTypeData . Token . Clone ( Other . ReturnTypeData . Token ) ;
return * this ;
}
/** @name getters */
//@{
const FFuncInfo & GetFunctionData ( ) const { return FunctionData ; }
const FToken & GetReturnData ( ) const { return ReturnTypeData . Token ; }
const FPropertyData & GetParameterData ( ) const { return ParameterData ; }
FPropertyData & GetParameterData ( ) { return ParameterData ; }
FTokenData * GetReturnTokenData ( ) { return & ReturnTypeData ; }
//@}
void UpdateFunctionData ( FFuncInfo & UpdatedFuncData )
{
//@TODO: UCREMOVAL: Some more thorough evaluation should be done here
FunctionData . FunctionFlags | = UpdatedFuncData . FunctionFlags ;
FunctionData . FunctionExportFlags | = UpdatedFuncData . FunctionExportFlags ;
}
/**
* Adds a new function property to be tracked . Determines whether the property is a
* function parameter , local property , or return value , and adds it to the appropriate
* list
*
* @ param PropertyToken the property to add
*/
2015-11-18 16:20:49 -05:00
void AddProperty ( const FToken & PropertyToken , FUHTMakefile & UHTMakefile , FUnrealSourceFile * UnrealSourceFile )
2014-03-14 14:13:41 -04:00
{
const UProperty * Prop = PropertyToken . TokenProperty ;
check ( Prop ) ;
check ( ( Prop - > PropertyFlags & CPF_Parm ) ! = 0 ) ;
if ( ( Prop - > PropertyFlags & CPF_ReturnParm ) ! = 0 )
{
SetReturnData ( PropertyToken ) ;
}
else
{
2015-11-18 16:20:49 -05:00
AddParameter ( PropertyToken , UHTMakefile , UnrealSourceFile ) ;
2014-03-14 14:13:41 -04:00
}
}
/**
* ( debug ) Dumps the values of this FFunctionData to the log file
*
* @ param Indent number of spaces to insert at the beginning of each line
*/
void Dump ( int32 Indent )
{
UE_LOG ( LogCompile , Log , TEXT ( " %sparameters: " ) , FCString : : Spc ( Indent ) ) ;
ParameterData . Dump ( Indent + 4 ) ;
UE_LOG ( LogCompile , Log , TEXT ( " %sreturn prop: " ) , FCString : : Spc ( Indent ) ) ;
if ( ReturnTypeData . Token . Type ! = CPT_None )
{
UE_LOG ( LogCompile , Log , TEXT ( " %s%s " ) , FCString : : Spc ( Indent + 4 ) , * ReturnTypeData . Token . Describe ( ) ) ;
}
}
/**
* Sets the specified function export flags
*/
void SetFunctionExportFlag ( uint32 NewFlags )
{
FunctionData . FunctionExportFlags | = NewFlags ;
}
/**
* Clears the specified function export flags
*/
void ClearFunctionExportFlags ( uint32 ClearFlags )
{
FunctionData . FunctionExportFlags & = ~ ClearFlags ;
}
2015-01-20 09:33:54 -05:00
/**
* Finds function data for given function object .
*/
static FFunctionData * FindForFunction ( UFunction * Function ) ;
/**
* Adds function data object for given function object .
*/
static FFunctionData * Add ( UFunction * Function ) ;
/**
* Adds function data object for given function object .
*/
static FFunctionData * Add ( const FFuncInfo & FunctionInfo ) ;
/**
* Tries to find function data for given function object .
*/
static bool TryFindForFunction ( UFunction * Function , FFunctionData * & OutData ) ;
private :
2015-09-21 07:53:49 -04:00
static TMap < UFunction * , TUniqueObj < FFunctionData > > FunctionDataMap ;
2014-03-14 14:13:41 -04:00
} ;
/**
* Tracks information about a multiple inheritance parent declaration for native script classes .
*/
struct FMultipleInheritanceBaseClass
{
/**
* The name to use for the base class when exporting the script class to header file .
*/
FString ClassName ;
/**
* For multiple inheritance parents declared using ' Implements ' , corresponds to the UClass for the interface . For multiple inheritance parents declared
* using ' Inherits ' , this value will be NULL .
*/
UClass * InterfaceClass ;
/**
* Constructors
*/
FMultipleInheritanceBaseClass ( const FString & BaseClassName )
: ClassName ( BaseClassName ) , InterfaceClass ( NULL )
{ }
FMultipleInheritanceBaseClass ( UClass * ImplementedInterfaceClass )
: InterfaceClass ( ImplementedInterfaceClass )
{
ClassName = FString : : Printf ( TEXT ( " I%s " ) , * ImplementedInterfaceClass - > GetName ( ) ) ;
}
} ;
/**
* Class for storing compiler metadata about a class ' s properties .
*/
class FClassMetaData
{
/** member properties for this class */
FPropertyData GlobalPropertyData ;
/** base classes to multiply inherit from (other than the main base class */
2015-11-18 16:20:49 -05:00
TArray < FMultipleInheritanceBaseClass * > MultipleInheritanceParents ;
2014-03-14 14:13:41 -04:00
/** whether this class declares delegate functions or properties */
bool bContainsDelegates ;
2015-01-20 09:33:54 -05:00
/** The line of UCLASS/UINTERFACE macro in this class. */
int32 PrologLine ;
/** The line of GENERATED_BODY/GENERATED_UCLASS_BODY macro in this class. */
int32 GeneratedBodyLine ;
/** Same as above, but for interface class associated with this class. */
int32 InterfaceGeneratedBodyLine ;
2014-03-14 14:13:41 -04:00
public :
/** Default constructor */
FClassMetaData ( )
2014-11-07 13:17:32 -05:00
: bContainsDelegates ( false )
2015-01-20 09:33:54 -05:00
, PrologLine ( - 1 )
, GeneratedBodyLine ( - 1 )
, InterfaceGeneratedBodyLine ( - 1 )
2014-11-07 13:17:32 -05:00
, bConstructorDeclared ( false )
, bDefaultConstructorDeclared ( false )
, bObjectInitializerConstructorDeclared ( false )
2015-03-02 06:44:04 -05:00
, bCustomVTableHelperConstructorDeclared ( false )
2014-11-07 13:17:32 -05:00
, GeneratedBodyMacroAccessSpecifier ( ACCESS_NotAnAccessSpecifier )
2014-03-14 14:13:41 -04:00
{
}
/**
2015-01-20 09:33:54 -05:00
* Gets prolog line number for this class .
2014-03-14 14:13:41 -04:00
*/
2015-01-20 09:33:54 -05:00
int32 GetPrologLine ( ) const
2014-03-14 14:13:41 -04:00
{
2015-01-20 09:33:54 -05:00
check ( PrologLine > 0 ) ;
return PrologLine ;
}
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
/**
* Gets generated body line number for this class .
*/
int32 GetGeneratedBodyLine ( ) const
{
check ( GeneratedBodyLine > 0 ) ;
return GeneratedBodyLine ;
}
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
/**
* Gets interface generated body line number for this class .
*/
int32 GetInterfaceGeneratedBodyLine ( ) const
{
check ( InterfaceGeneratedBodyLine > 0 ) ;
return InterfaceGeneratedBodyLine ;
}
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
/**
* Sets prolog line number for this class .
*/
void SetPrologLine ( int32 Line )
{
check ( Line > 0 ) ;
PrologLine = Line ;
}
2014-03-14 14:13:41 -04:00
2015-01-20 09:33:54 -05:00
/**
* Sets generated body line number for this class .
*/
void SetGeneratedBodyLine ( int32 Line )
{
check ( Line > 0 ) ;
GeneratedBodyLine = Line ;
}
/**
* Sets interface generated body line number for this class .
*/
void SetInterfaceGeneratedBodyLine ( int32 Line )
{
check ( Line > 0 ) ;
InterfaceGeneratedBodyLine = Line ;
}
/**
* Sets contains delegates flag for this class .
*/
void MarkContainsDelegate ( )
{
bContainsDelegates = true ;
2014-03-14 14:13:41 -04:00
}
/**
* Adds a new property to be tracked . Determines the correct list for the property based on
* its owner ( function , struct , etc ) .
*
* @ param PropertyToken the property to add
*/
2015-11-18 16:20:49 -05:00
void AddProperty ( const FToken & PropertyToken , FUHTMakefile & UHTMakefile , FUnrealSourceFile * UnrealSourceFile )
2014-03-14 14:13:41 -04:00
{
UProperty * Prop = PropertyToken . TokenProperty ;
check ( Prop ) ;
UObject * Outer = Prop - > GetOuter ( ) ;
2015-01-20 09:33:54 -05:00
UStruct * OuterClass = Cast < UStruct > ( Outer ) ;
2014-03-14 14:13:41 -04:00
if ( OuterClass ! = NULL )
{
// global property
2015-11-18 16:20:49 -05:00
GlobalPropertyData . Set ( Prop , PropertyToken , UHTMakefile , UnrealSourceFile ) ;
2014-03-14 14:13:41 -04:00
}
else
{
2015-01-20 09:33:54 -05:00
checkNoEntry ( ) ;
2014-03-14 14:13:41 -04:00
UFunction * OuterFunction = Cast < UFunction > ( Outer ) ;
if ( OuterFunction ! = NULL )
{
// function parameter, return, or local property
2015-11-18 16:20:49 -05:00
FFunctionData : : FindForFunction ( OuterFunction ) - > AddProperty ( PropertyToken , UHTMakefile , UnrealSourceFile ) ;
2014-03-14 14:13:41 -04:00
}
}
// update the optimization flags
if ( ! bContainsDelegates )
{
if ( Prop - > IsA ( UDelegateProperty : : StaticClass ( ) ) | | Prop - > IsA ( UMulticastDelegateProperty : : StaticClass ( ) ) )
{
bContainsDelegates = true ;
}
else
{
UArrayProperty * ArrayProp = Cast < UArrayProperty > ( Prop ) ;
if ( ArrayProp ! = NULL )
{
if ( ArrayProp - > Inner - > IsA ( UDelegateProperty : : StaticClass ( ) ) | | ArrayProp - > Inner - > IsA ( UMulticastDelegateProperty : : StaticClass ( ) ) )
{
bContainsDelegates = true ;
}
}
}
}
}
/**
* Adds new editor - only metadata ( key / value pairs ) to the class or struct that
* owns this property or function .
*
* @ param Field the property or function to add to
* @ param InMetaData the metadata to add
*/
2015-01-20 09:33:54 -05:00
static void AddMetaData ( UField * Field , const TMap < FName , FString > & InMetaData )
2014-03-14 14:13:41 -04:00
{
// only add if we have some!
if ( InMetaData . Num ( ) )
{
check ( Field ) ;
// get (or create) a metadata object for this package
UMetaData * MetaData = Field - > GetOutermost ( ) - > GetMetaData ( ) ;
// set the metadata for this field
MetaData - > SetObjectValues ( Field , InMetaData ) ;
}
}
/**
* Finds the metadata for the function specified
*
* @ param Func the function to search for
*
* @ return pointer to the metadata for the function specified , or NULL
* if the function doesn ' t exist in the list ( for example , if it
* is declared in a package that is already compiled and has had its
* source stripped )
*/
FFunctionData * FindFunctionData ( UFunction * Func ) ;
/**
* Finds the metadata for the property specified
*
* @ param Prop the property to search for
*
* @ return pointer to the metadata for the property specified , or NULL
* if the property doesn ' t exist in the list ( for example , if it
* is declared in a package that is already compiled and has had its
* source stripped )
*/
FTokenData * FindTokenData ( UProperty * Prop ) ;
/**
* ( debug ) Dumps the values of this FFunctionData to the log file
*
* @ param Indent number of spaces to insert at the beginning of each line
*/
void Dump ( int32 Indent ) ;
/**
* Add a string to the list of inheritance parents for this class .
*
2015-11-18 16:20:49 -05:00
* @ param Inparent The C + + class name to add to the multiple inheritance list
* @ param UHTMakefile Makefile to save parsing data to .
* @ param UnrealSourceFile Currently parsed source file .
2014-03-14 14:13:41 -04:00
*/
2015-11-18 16:20:49 -05:00
void AddInheritanceParent ( const FString & InParent , FUHTMakefile & UHTMakefile , FUnrealSourceFile * UnrealSourceFile ) ;
2014-03-14 14:13:41 -04:00
/**
* Add a string to the list of inheritance parents for this class .
*
* @ param Inparent The C + + class name to add to the multiple inheritance list
2015-11-18 16:20:49 -05:00
* @ param UHTMakefile Makefile to save parsing data to .
* @ param UnrealSourceFile Currently parsed source file .
2014-03-14 14:13:41 -04:00
*/
2015-11-18 16:20:49 -05:00
void AddInheritanceParent ( UClass * ImplementedInterfaceClass , FUHTMakefile & UHTMakefile , FUnrealSourceFile * UnrealSourceFile ) ;
2014-03-14 14:13:41 -04:00
/**
* Return the list of inheritance parents
*/
2015-11-18 16:20:49 -05:00
const TArray < FMultipleInheritanceBaseClass * > & GetInheritanceParents ( ) const
2014-03-14 14:13:41 -04:00
{
return MultipleInheritanceParents ;
}
/**
* Returns whether this class contains any delegate properties which need to be fixed up .
*/
bool ContainsDelegates ( ) const
{
return bContainsDelegates ;
}
/**
* Shrink TMaps to avoid slack in Pairs array .
*/
void Shrink ( )
{
GlobalPropertyData . Shrink ( ) ;
MultipleInheritanceParents . Shrink ( ) ;
}
2014-10-10 04:34:56 -04:00
// Is constructor declared?
bool bConstructorDeclared ;
// Is default constructor declared?
bool bDefaultConstructorDeclared ;
2014-10-14 10:29:11 -04:00
// Is ObjectInitializer constructor (i.e. a constructor with only one parameter of type FObjectInitializer) declared?
bool bObjectInitializerConstructorDeclared ;
2014-10-13 10:31:50 -04:00
2015-03-02 06:44:04 -05:00
// Is custom VTable helper constructor declared?
bool bCustomVTableHelperConstructorDeclared ;
2014-10-13 10:31:50 -04:00
// GENERATED_BODY access specifier to preserve.
EAccessSpecifier GeneratedBodyMacroAccessSpecifier ;
2015-11-18 16:20:49 -05:00
friend struct FClassMetaDataArchiveProxy ;
2014-03-14 14:13:41 -04:00
} ;
/**
* Class for storing and linking data about properties and functions that is only required by the compiler .
* The type of data tracked by this class is data that would otherwise only be accessible by adding a
* member property to UFunction / UProperty .
*/
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
class FCompilerMetadataManager : protected TMap < UStruct * , TUniquePtr < FClassMetaData > >
2014-03-14 14:13:41 -04:00
{
public :
/**
* Adds a new class to be tracked
*
2015-01-20 09:33:54 -05:00
* @ param Struct the UStruct to add
2014-03-14 14:13:41 -04:00
*
* @ return a pointer to the newly added metadata for the class specified
*/
2015-11-18 16:20:49 -05:00
FClassMetaData * AddClassData ( UStruct * Struct , FUHTMakefile & UHTMakefile , FUnrealSourceFile * UnrealSourceFile ) ;
2014-03-14 14:13:41 -04:00
/**
* Find the metadata associated with the class specified
*
2015-01-20 09:33:54 -05:00
* @ param Struct the UStruct to add
2014-03-14 14:13:41 -04:00
*
* @ return a pointer to the newly added metadata for the class specified
*/
2015-01-20 09:33:54 -05:00
FClassMetaData * FindClassData ( UStruct * Struct )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
FClassMetaData * Result = nullptr ;
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
TUniquePtr < FClassMetaData > * pClassData = Find ( Struct ) ;
2015-01-20 09:33:54 -05:00
if ( pClassData )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
Result = pClassData - > Get ( ) ;
2014-03-14 14:13:41 -04:00
}
return Result ;
}
/**
* Shrink TMaps to avoid slack in Pairs array .
*/
void Shrink ( )
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
TMap < UStruct * , TUniquePtr < FClassMetaData > > : : Shrink ( ) ;
for ( TMap < UStruct * , TUniquePtr < FClassMetaData > > : : TIterator It ( * this ) ; It ; + + It )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3173153 on 2016/10/25 by Graeme.Thornton
Pak signing changes
- Integrated into EDL loader
- Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.
Change 3173531 on 2016/10/25 by Steven.Hutton
Removing unused j query packages.
Change 3174743 on 2016/10/26 by Gil.Gribb
UE4 - fixed COTF with EDL
Change 3177896 on 2016/10/28 by Steve.Robb
TSharedPtr and TSharedRef aliasing constructors.
Removal of static_asserts for TSharedPtr<UObject>.
Change 3180343 on 2016/10/31 by Steve.Robb
Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.
Change 3181382 on 2016/11/01 by Steve.Robb
Visual Studio debugger visualizers for delegates.
Change 3182738 on 2016/11/02 by Graeme.Thornton
Re-enable signed archive reader so non-pakpreacher based reads still get signature checked
Change 3183420 on 2016/11/02 by Steve.Robb
Fix to TIsZeroConstructType for TScriptDelegate.
Change 3184872 on 2016/11/03 by Robert.Manuszewski
Fixing memory stomps in SSL certificate initialization (found with mallocstomp)
Change 3184873 on 2016/11/03 by Robert.Manuszewski
Adding thread safety checks to async loading code
Change 3185535 on 2016/11/03 by Ben.Zeigler
Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.
Change 3186636 on 2016/11/04 by Graeme.Thornton
AES encryption integrated into EDL system
Pak signing and AES encryption now configurable by ini files rather than magical text files
Change 3186637 on 2016/11/04 by Graeme.Thornton
Configured pak signing and encryption in ShooterGame for reference
Change 3186639 on 2016/11/04 by Graeme.Thornton
Encryption changes for Orion
* Move pak signing keys into new INI format
* Add AES key and enable INI file encryption
Change 3186661 on 2016/11/04 by Graeme.Thornton
Change unrealpak command line params to accept AES key as a separete parameter
Change 3186670 on 2016/11/04 by Robert.Manuszewski
Adding a null check before using a package pointer in Linker code
#jira UE-38237
Change 3186775 on 2016/11/04 by Graeme.Thornton
Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
- PS4 and Mac fixes. Other platforms might need fixing too!
Change 3186823 on 2016/11/04 by Graeme.Thornton
Fixed an incorrect size check in the EDL pak signing code
Change 3186925 on 2016/11/04 by Graeme.Thornton
Allow UnrealPak to read encryption settings from project ini files
Change 3189885 on 2016/11/08 by Graeme.Thornton
Static analysis warning fix
Change 3190015 on 2016/11/08 by Robert.Manuszewski
Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread
Change 3190253 on 2016/11/08 by Chris.Wood
Improved MDD performance for on the CR server.
[UE-37566] - Improve MDD performance on CR server
Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.
Change 3192993 on 2016/11/10 by Robert.Manuszewski
Thread Heartbeat will no longer report the same hang multiple times.
Change 3193111 on 2016/11/10 by Robert.Manuszewski
Minor change in the condition that detects the same hangs - allow the same callstacks from different threads
Change 3193168 on 2016/11/10 by Steve.Robb
TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.
Change 3193171 on 2016/11/10 by Steve.Robb
Easier debugging of FPendingRegistrantInfo map.
Change 3193188 on 2016/11/10 by Steve.Robb
TAutoPointer deprecated.
Change 3193796 on 2016/11/10 by Graeme.Thornton
Fix pak creation failure when no pak signing keys are supplied
Change 3194524 on 2016/11/11 by Graeme.Thornton
Another static analysis warning fix
Change 3195119 on 2016/11/11 by Steve.Robb
TAutoPtr deprecated.
Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
Some large headers moved into .cpp files.
Change 3196582 on 2016/11/14 by Gil.Gribb
UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.
Change 3196878 on 2016/11/14 by Steve.Robb
TScopedPointer deprecated.
Change 3198061 on 2016/11/15 by Steve.Robb
Class array is no longer regenerated when saving UClasses.
Change 3198065 on 2016/11/15 by Robert.Manuszewski
Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.
Change 3198199 on 2016/11/15 by Robert.Manuszewski
Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.
Change 3199954 on 2016/11/16 by Graeme.Thornton
Removing USING_SIGNED_CONTENT
Change 3200221 on 2016/11/16 by Chris.Wood
CrashReportProcess code cleanup - removing unused using directives
Change 3200232 on 2016/11/16 by Chris.Wood
Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives
InvalidCrashReports now saved to S3 instead of local folder
Removed option tosync MinidumpDiagnostics from Perforce
Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
Added improved logging to Slack with option to monitor MDD performance
Added hourly log folders to MDD logs
Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)
Change 3200382 on 2016/11/16 by Robert.Manuszewski
Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).
Change 3200562 on 2016/11/16 by Gil.Gribb
UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.
Change 3201093 on 2016/11/16 by Ben.Zeigler
#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.
Change 3201736 on 2016/11/17 by Steve.Robb
Strtoi64 platform and TCString functions.
#fyi robert.manuszewski
Change 3201938 on 2016/11/17 by Ben.Woodhouse
Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.
Commandline:
p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp
#fyi robert.manuszewski
Change 3203757 on 2016/11/18 by Robert.Manuszewski
Removing debug code from async loading code.
Change 3203927 on 2016/11/18 by Robert.Manuszewski
Fixing comments in the async loading code.
Change 3204851 on 2016/11/18 by Steve.Robb
Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.
Change 3204854 on 2016/11/18 by Steve.Robb
UEnumProperty.
Change 3205027 on 2016/11/18 by Ben.Zeigler
Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
Add Get() to TSubclassOf so it matches our other wrappers
Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf
Change 3206334 on 2016/11/21 by Ben.Zeigler
#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
Cook finishes but game is still crashing in some cases, so I might adjust this after other testing
Change 3206353 on 2016/11/21 by Ben.Zeigler
Fix EnumProperty to handle EDL preload dependencies properly
Change 3206625 on 2016/11/21 by Ben.Zeigler
Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient
Change 3206937 on 2016/11/21 by Ben.Zeigler
#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
Correctly save enum tag for enum properties, it was being set but not serialized
Change 3207002 on 2016/11/21 by Ben.Zeigler
#jira UE-38799
Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
We should generally outlaw non-transient objects with transient outers, it does not do what people expect.
Change 3207032 on 2016/11/21 by Ben.Zeigler
#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do
[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
FClassMetaData * MetaData = It - > Value . Get ( ) ;
2014-03-14 14:13:41 -04:00
MetaData - > Shrink ( ) ;
}
}
2015-11-18 16:20:49 -05:00
friend struct FCompilerMetadataManagerArchiveProxy ;
2014-03-14 14:13:41 -04:00
} ;
/*-----------------------------------------------------------------------------
Retry points .
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/**
* A point in the header parsing state that can be set and returned to
* using InitScriptLocation ( ) and ReturnToLocation ( ) . This is used in cases such as testing
* to see which overridden operator should be used , where code must be compiled
* and then " undone " if it was found not to match .
* < p >
* Retries are not allowed to cross command boundaries ( and thus nesting
* boundaries ) . Retries can occur across a single command or expressions and
* subexpressions within a command .
*/
struct FScriptLocation
{
static class FHeaderParser * Compiler ;
/** the text buffer for the class associated with this retry point */
const TCHAR * Input ;
/** the position into the Input buffer where this retry point is located */
int32 InputPos ;
/** the LineNumber of the compiler when this retry point was created */
int32 InputLine ;
/** Constructor */
FScriptLocation ( ) ;
} ;
/////////////////////////////////////////////////////
// FNameLookupCPP
/**
* Helper class used to cache UClass * - > TCHAR * name lookup for finding the named used for C + + declaration .
*/
struct FNameLookupCPP
{
/**
* Destructor , cleaning up allocated memory .
*/
~ FNameLookupCPP ( )
{
for ( TMap < UStruct * , TCHAR * > : : TIterator It ( StructNameMap ) ; It ; + + It )
{
TCHAR * Name = It . Value ( ) ;
delete [ ] Name ;
}
for ( TArray < TCHAR * > : : TIterator It ( InterfaceAllocations ) ; It ; + + It )
{
TCHAR * Name = * It ;
delete [ ] Name ;
}
}
/**
* Returns the name used for declaring the passed in struct in C + +
*
* @ param Struct UStruct to obtain C + + name for
* @ return Name used for C + + declaration
*/
2015-11-18 16:20:49 -05:00
const TCHAR * GetNameCPP ( UStruct * Struct , bool bForceInterface = false ) ;
2014-06-02 07:02:29 -04:00
2015-11-18 16:20:49 -05:00
void SetUHTMakefile ( FUHTMakefile * InUHTMakefile )
2014-06-02 07:02:29 -04:00
{
2015-11-18 16:20:49 -05:00
UHTMakefile = InUHTMakefile ;
2014-03-14 14:13:41 -04:00
}
2015-11-18 16:20:49 -05:00
void SetCurrentSourceFile ( FUnrealSourceFile * InUnrealSourceFile )
2014-03-14 14:13:41 -04:00
{
2015-11-18 16:20:49 -05:00
UnrealSourceFile = InUnrealSourceFile ;
2014-03-14 14:13:41 -04:00
}
private :
/** Map of UStruct pointers to C++ names */
TMap < UStruct * , TCHAR * > StructNameMap ;
TArray < TCHAR * > InterfaceAllocations ;
2015-11-18 16:20:49 -05:00
friend class FUHTMakefile ;
FUHTMakefile * UHTMakefile ;
FUnrealSourceFile * UnrealSourceFile ;
2014-03-14 14:13:41 -04:00
} ;
2014-06-02 07:02:29 -04:00
extern FNameLookupCPP NameLookupCPP ;
2014-03-14 14:13:41 -04:00
/////////////////////////////////////////////////////
// FAdvancedDisplayParameterHandler - used by FHeaderParser::ParseParameterList, to check if a property if a function parameter has 'AdvancedDisplay' flag
/**
* AdvancedDisplay can be used in two ways :
* 1. ' AdvancedDisplay = " 3 " ' - the number tells how many parameters ( from beginning ) should NOT BE marked
* 2. ' AdvancedDisplay = " AttachPointName, Location, LocationType " ' - list the parameters , that should BE marked
*/
class FAdvancedDisplayParameterHandler
{
TArray < FString > ParametersNames ;
int32 NumberLeaveUnmarked ;
int32 AlreadyLeft ;
bool bUseNumber ;
public :
FAdvancedDisplayParameterHandler ( const TMap < FName , FString > * MetaData ) ;
/**
* return if given parameter should be marked as Advance View ,
* the function should be called only once for any parameter
*/
bool ShouldMarkParameter ( const FString & ParameterName ) ;
/** return if more parameters can be marked */
bool CanMarkMore ( ) const ;
} ;