Files
Project-Reboot-3.0/Project Reboot 3.0/DelegateBase.h
Milxnor 5da8485485 a lot
fix 1.11 replication, fix some ltm specific stuff, start on shadow stones, fix some events not having foundations, fix s4-s6 gadgets, fix clear inventory on some versions
2023-04-22 23:52:20 -04:00

28 lines
867 B
C++

#pragma once
#include "inc.h"
#include "TypeCompatibleBytes.h"
#include "ContainerAllocationPolicies.h"
#if !defined(_WIN32) || defined(_WIN64)
// Let delegates store up to 32 bytes which are 16-byte aligned before we heap allocate
typedef TAlignedBytes<16, 16> FAlignedInlineDelegateType;
#if USE_SMALL_DELEGATES
typedef FHeapAllocator FDelegateAllocatorType;
#else
typedef TInlineAllocator<2> FDelegateAllocatorType;
#endif
#else
// ... except on Win32, because we can't pass 16-byte aligned types by value, as some delegates are
// so we'll just keep it heap-allocated, which are always sufficiently aligned.
typedef TAlignedBytes<16, 8> FAlignedInlineDelegateType;
typedef FHeapAllocator FDelegateAllocatorType;
#endif
class FDelegateBase
{
public:
FDelegateAllocatorType::ForElementType<FAlignedInlineDelegateType> DelegateAllocator;
int32 DelegateSize;
};