GeneralAllocator struct

Public types

struct allocator_mutex
struct Chunk
struct SkipListChunk
using MallocFailureFunction_t = bool(*)(GeneralAllocator*, unsigned int, unsigned int, int)

Public static variables

static const int NUM_FAST_BINS
static const int NUM_BINS
static const int MIN_SIZE
static const int BIN_MAP_SIZE
static const int INUSE_FLAG

Public static functions

static auto Get() -> GeneralAllocator*

Constructors, destructors, conversion operators

ASSERT_SIZE(allocator_mutex, 0x1C)

Public functions

auto GetFastBinIndexFromChunkSize(unsigned int chunkSize) -> int
auto GetSmallBinIndexFromChunkSize(unsigned int chunkSize) -> int
auto GetLargeBinIndexFromChunkSize(unsigned int chunkSize) -> int
auto GetFastBinChunksExist() -> bool
auto GetBin(int index) -> SkipListChunk*
auto GetUnsortedBin() -> SkipListChunk*
auto GetNextBin(SkipListChunk* bin) -> SkipListChunk*
auto GetFirstChunkInBin(SkipListChunk* bin) -> Chunk*
auto GetLastChunkInBin(SkipListChunk* bin) -> Chunk*
auto ChunkMatchesLowHigh(bool, Chunk* chunk, int offset) -> bool
auto GetDataPtrFromChunkPtr(Chunk* chunk) -> void*
auto GetChunkSize(Chunk* chunk) -> unsigned int
auto SetChunkSize(Chunk* chunk, unsigned int size) -> void
auto SetNextChunkPrevSize(Chunk* chunk, unsigned int size) -> void
auto GetChunkAtOffset(Chunk* chunk, unsigned int offset) -> Chunk*
auto GetPrevChunkIsInUse(Chunk* chunk) -> bool
auto GetChunkIsLargeBin(Chunk* chunk) -> bool
auto SizeIsWithinSmallBinRange(int size) -> bool
auto SetChunkInUseOffset(Chunk* chunk, unsigned int offset) -> void
auto LinkChunk(Chunk* chunk, Chunk* bck, Chunk* fwd) -> void
auto UnlinkChunk(Chunk* chunk) -> void
auto SplitChunkTail(Chunk* victim, unsigned int requestedSize, bool isSmallBin) -> void
auto AdjustTopChunk(Chunk* chunk, unsigned int size) -> void
auto AdjustHighFence() -> void
auto GetBinBitmapWordFromBinIndex(unsigned int index) -> unsigned int
auto GetBinBitmapBitFromBinIndex(unsigned int index) -> unsigned int

Public variables

int field_0
unsigned int max_fastbin_size
Chunk* fastbins
Chunk* field_28
Chunk* field_2C
Chunk* bins
unsigned int binmap
Chunk* top
Chunk* last_remainder
int field_448
int field_44C
int field_450
int field_454
int field_458
int field_45C
int field_460
int field_464
Chunk* field_468
bool field_46C
bool field_46D
int field_470
char padding_474
int field_488
int field_48C
int field_490
unsigned int field_494
int field_498
int field_49C
int field_4A0
int field_4A4
int field_4A8
MallocFailureFunction_t malloc_failure_function
int field_4B0
int field_4B4
char field_4B8
allocator_mutex* field_4E4

Variable documentation

unsigned int GeneralAllocator::binmap

  • 430h *‍/ eastl::bitset<128> binmap; //TODO how many?