UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IOSMallocZone.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "HAL/MemoryBase.h"
6
9
10/*
11 * A malloc interface using a unique malloc zone
12 */
13class FIOSMallocZone : public FMalloc
14{
15public:
16 FIOSMallocZone( uint64 const InitialSize );
17 virtual ~FIOSMallocZone();
18
19 // FMalloc interface.
20 virtual void* Malloc( SIZE_T Size, uint32 Alignment ) override;
21
22 virtual void* Realloc( void* Ptr, SIZE_T NewSize, uint32 Alignment ) override;
23
24 virtual void Free( void* Ptr ) override;
25
26 virtual bool GetAllocationSize(void *Original, SIZE_T &SizeOut) override;
27
28 virtual bool IsInternallyThreadSafe() const override;
29
30 virtual bool ValidateHeap() override;
31
32 virtual const TCHAR* GetDescriptiveName() override;
33
34protected:
36};
37
38/*
39 * Specific FIOSMallocZone for the crash handler malloc override so that we avoid malloc reentrancy problems
40 */
42{
43public:
44 FIOSMallocCrashHandler( uint64 const InitialSize );
45
47
48 void Enable( FIOSCrashContext* Context, uint32 CrashedThreadId );
49
51
52 // FMalloc interface.
53 virtual void* Malloc( SIZE_T Size, uint32 Alignment ) override;
54
55 virtual void* Realloc( void* Ptr, SIZE_T NewSize, uint32 Alignment ) override;
56
57 virtual void Free( void* Ptr ) override;
58
59 virtual bool GetAllocationSize( void *Original, SIZE_T &SizeOut ) override;
60
61 virtual const TCHAR* GetDescriptiveName() override;
62
63private:
64 bool IsOnCrashedThread(void);
65
66private:
67 FMalloc* OriginalHeap;
68 FIOSCrashContext* CrashContext;
69 int32 ThreadId;
70};
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
struct _malloc_zone_t malloc_zone_t
Definition IOSMallocZone.h:7
uint32 Size
Definition VulkanMemory.cpp:4034
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IOSMallocZone.h:42
virtual void * Malloc(SIZE_T Size, uint32 Alignment) override
Definition IOSMallocZone.cpp:102
void SetContext(FIOSCrashContext *Context)
Definition IOSMallocZone.cpp:96
virtual const TCHAR * GetDescriptiveName() override
Definition IOSMallocZone.cpp:178
virtual ~FIOSMallocCrashHandler()
Definition IOSMallocZone.cpp:74
virtual bool GetAllocationSize(void *Original, SIZE_T &SizeOut) override
Definition IOSMallocZone.cpp:168
virtual void * Realloc(void *Ptr, SIZE_T NewSize, uint32 Alignment) override
Definition IOSMallocZone.cpp:117
Definition IOSMallocZone.h:14
virtual const TCHAR * GetDescriptiveName() override
Definition IOSMallocZone.cpp:60
virtual void * Realloc(void *Ptr, SIZE_T NewSize, uint32 Alignment) override
Definition IOSMallocZone.cpp:30
virtual bool GetAllocationSize(void *Original, SIZE_T &SizeOut) override
Definition IOSMallocZone.cpp:43
virtual void * Malloc(SIZE_T Size, uint32 Alignment) override
Definition IOSMallocZone.cpp:23
malloc_zone_t * MemoryZone
Definition IOSMallocZone.h:35
virtual bool ValidateHeap() override
Definition IOSMallocZone.cpp:54
virtual bool IsInternallyThreadSafe() const override
Definition IOSMallocZone.cpp:49
virtual ~FIOSMallocZone()
Definition IOSMallocZone.cpp:15
Definition MemoryBase.h:99
Definition IOSPlatformCrashContext.h:69