You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Legacy/CryCommon
lumberyard-employee-dm 97e9f4dc7d
[LYN-6838] Various Monolithic shutdown fixes for the GameLauncher (#4564)
* Added a stateless allocator which uses AZ_OS_MALLOC/AZ_OS_FREE to
allocate memory for objects in static memory.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the Maestro and LyShine Anim Nodes to use the
stateless_allocator for its static containers.

This prevents crashes in static de-init due to the SystemAllocator being
destroyed at that poitn

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the EBus AllocatorType to use the EBusEnvironmentAllocator

Because the EBus Context resides in static memory, the SystemAllocator
lifetime is shorter than the EBus Context.

This results in shutdown crashes in monolithic builds due to all of the
gem modules being linked in as static libraries and the EBus context now
destructing at the point of the executable static de-init, instead of
the module de-init, where the SystemAllocator would still be around.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed an assortment of shutdown issues due to deleting objects after
AZ allocators are no longer available

Fixed the NameDictionary IsReady() function to not assert when the
dictionary when invoked after the environment variable it was stored in
was destroyed.
Updated the NameData destructor to check that the NameDictionary
IsReady() before attempting to remove itself from the dictionary

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed NameDictionary destory workflow, to reset the EnvironmentVariable
instance

Updated the EnvironmentVariable instance to store the NameDictionary as a
value.

Added a rvalue reference `Set` function overload to the
EnvironmentVariable class to support move only types.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Clang 6.0.0 build fixes

The C++17 std::launder feature isn't available in that compiler version

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
4 years ago
..
LyShine Legacy code cleanup - part 3 (#3903) 4 years ago
Maestro Cleanup SerializeContext.h pt.1 (#4264) 4 years ago
Mocks Updated the GameApplication to mount the engine.pak (#4128) 4 years ago
Platform Various fixes and empty boilerplate files required for restricted platforms. (#3610) 4 years ago
AndroidSpecific.h remove unnecessary ALIGN macros 4 years ago
AnimKey.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
AppleSpecific.h XCode doesnt support files per configuration, using the old method (#3789) 4 years ago
BaseTypes.h Legacy code cleanup - part 3 (#3903) 4 years ago
CMakeLists.txt Various fixes and empty boilerplate files required for restricted platforms. (#3610) 4 years ago
CryAssert.h platform.h cleanup 4 years ago
CryAssert_Android.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
CryAssert_Linux.h [redcode/crythread-2nd-pass] replaced instances of AZStd::lock_guard<> with AZStd::scoped_lock as per feedback 4 years ago
CryAssert_Mac.h [redcode/crythread-2nd-pass] removed or replaced remaining CryMutex/CryLock usage with equivalent AZStd version 4 years ago
CryAssert_iOS.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
CryAssert_impl.h Merge branch 'development' into cmake/SPEC-7179 4 years ago
CryEndian.h Legacy code cleanup - part 3 (#3903) 4 years ago
CryFile.h Updated the GameApplication to mount the engine.pak (#4128) 4 years ago
CryHalf.inl Legacy code cleanup - part 3 (#3903) 4 years ago
CryLegacyAllocator.h CryLegacyAllocator cleanup 4 years ago
CryLibrary.cpp Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
CryLibrary.h fixes for Android 4 years ago
CryListenerSet.h Legacy code cleanup - part 3 (#3903) 4 years ago
CryPath.h Update the FileIO Aliases (#4186) 4 years ago
CryRandomInternal.h removing more unused stuff 4 years ago
CrySystemBus.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
CryVersion.h some fixes 4 years ago
Cry_Camera.h Fix some debug compile errors introduced by https://github.com/o3de/o3de/pull/3903 4 years ago
Cry_Color.h Legacy code cleanup - part 3 (#3903) 4 years ago
Cry_Geo.h Legacy code cleanup - part 3 (#3903) 4 years ago
Cry_GeoDistance.h Legacy cleanup (#3383) 4 years ago
Cry_GeoIntersect.h Legacy cleanup (#3383) 4 years ago
Cry_Math.h Legacy code cleanup - part 3 (#3903) 4 years ago
Cry_Matrix33.h Legacy code cleanup - part 3 (#3903) 4 years ago
Cry_Matrix34.h Fix some debug compile errors introduced by https://github.com/o3de/o3de/pull/3903 4 years ago
Cry_Matrix44.h Legacy code cleanup - part 3 (#3903) 4 years ago
Cry_Quat.h Legacy code cleanup - part 3 (#3903) 4 years ago
Cry_ValidNumber.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
Cry_Vector2.h Legacy code cleanup - part 3 (#3903) 4 years ago
Cry_Vector3.h Legacy code cleanup - part 3 (#3903) 4 years ago
Cry_Vector4.h Fix some debug compile errors introduced by https://github.com/o3de/o3de/pull/3903 4 years ago
HMDBus.h Legacy cleanup, part 2 (#3659) 4 years ago
IAudioInterfacesCommonData.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
IAudioSystem.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
ICmdLine.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
IConsole.h Merge branch 'development' into cmake/warn_virtual 4 years ago
IEntityRenderState.h Legacy code cleanup - part 3 (#3903) 4 years ago
IFont.h Legacy code cleanup - part 3 (#3903) 4 years ago
IFunctorBase.h [redcode/crythread-2nd-pass] post merge include fixes 4 years ago
IGem.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
IIndexedMesh.h Legacy code cleanup - part 3 (#3903) 4 years ago
ILevelSystem.h Legacy code cleanup - part 3 (#3903) 4 years ago
ILocalizationManager.h Merge branch 'development' into cmake/warn_virtual 4 years ago
ILog.h Legacy code cleanup - part 3 (#3903) 4 years ago
IMNM.h Merge branch 'development' into cmake/SPEC-7179 4 years ago
IMaterial.h Legacy code cleanup - part 3 (#3903) 4 years ago
IMiniLog.h more fixes 4 years ago
IMovieSystem.h [LYN-6838] Various Monolithic shutdown fixes for the GameLauncher (#4564) 4 years ago
INavigationSystem.h Legacy cleanup (#3383) 4 years ago
IPathfinder.h Legacy code cleanup - part 3 (#3903) 4 years ago
IProcess.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
IRenderAuxGeom.h Legacy code cleanup - part 3 (#3903) 4 years ago
IRenderer.h Legacy code cleanup - part 3 (#3903) 4 years ago
ISerialize.h Legacy code cleanup - part 3 (#3903) 4 years ago
IShader.h Legacy code cleanup - part 3 (#3903) 4 years ago
ISplines.h Legacy code cleanup - part 3 (#3903) 4 years ago
IStatObj.h Legacy code cleanup - part 3 (#3903) 4 years ago
ISystem.h Legacy code cleanup - part 3 (#3903) 4 years ago
ITexture.h Legacy code cleanup - part 3 (#3903) 4 years ago
ITimer.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
IValidator.h Legacy code cleanup - part 3 (#3903) 4 years ago
IViewSystem.h Legacy cleanup, part 2 (#3659) 4 years ago
IWindowMessageHandler.h Merge branch 'development' into cmake/SPEC-7179 4 years ago
IXml.h Legacy code cleanup - part 3 (#3903) 4 years ago
LCGRandom.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
LegacyAllocator.cpp Merge branch 'development' into cmake/AddressSanitizer 4 years ago
LegacyAllocator.h Deprecate profiler categories based on global enum 4 years ago
Linux32Specific.h remove unnecessary ALIGN macros 4 years ago
Linux64Specific.h remove unnecessary ALIGN macros 4 years ago
LinuxSpecific.h remove unnecessary ALIGN macros 4 years ago
Linux_Win32Wrapper.h Legacy code cleanup - part 3 (#3903) 4 years ago
LoadScreenBus.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
LocalizationManagerBus.h Legacy code cleanup - part 3 (#3903) 4 years ago
LocalizationManagerBus.inl Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
MacSpecific.h Several build fixes 4 years ago
MainThreadRenderRequestBus.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
MathConversion.h Legacy code cleanup - part 3 (#3903) 4 years ago
MicrophoneBus.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
MiniQueue.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
MultiThread_Containers.h Legacy code cleanup - part 3 (#3903) 4 years ago
NullAudioSystem.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
PNoise3.h fixes for Code/CryEngine 4 years ago
ProjectDefines.h fixes some install paths issues in monolithic release (#4422) 4 years ago
Random.h Legacy code cleanup - part 3 (#3903) 4 years ago
Range.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
ScopedVariableSetter.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
SerializationTypes.h Legacy code cleanup - part 3 (#3903) 4 years ago
SerializeFwd.h Legacy code cleanup - part 3 (#3903) 4 years ago
SimpleSerialize.h more fixes 4 years ago
StatObjBus.h Legacy code cleanup - part 3 (#3903) 4 years ago
StaticInstance.h Legacy cleanup (#3383) 4 years ago
StlUtils.h [LYN-6838] Various Monolithic shutdown fixes for the GameLauncher (#4564) 4 years ago
Synchronization.h Legacy code cleanup - part 3 (#3903) 4 years ago
TimeValue.h Legacy code cleanup - part 3 (#3903) 4 years ago
Timer.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
VRCommon.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
VectorMap.h some fixes 4 years ago
Vertex.h Legacy cleanup, part 2 (#3659) 4 years ago
VertexFormats.h Legacy code cleanup - part 3 (#3903) 4 years ago
Win32specific.h remove unnecessary ALIGN macros 4 years ago
Win64specific.h remove unnecessary ALIGN macros 4 years ago
WinBase.cpp Miscellaneous fixes and PAL changes required for restricted platforms. (#4021) 4 years ago
XMLBinaryHeaders.h Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
crycommon_files.cmake Legacy code cleanup - part 3 (#3903) 4 years ago
crycommon_testing_files.cmake Legacy cleanup (#3383) 4 years ago
iOSSpecific.h removing more unused stuff 4 years ago
platform.h Avoid redefining `PRI` macros on Linux (#4055) 4 years ago
platform_impl.cpp fixes some install paths issues in monolithic release (#4422) 4 years ago
smartptr.h Legacy cleanup, part 2 (#3659) 4 years ago