FrameHeap class
Base classes
- class Heap
Public types
- struct State
- using HeapList = OffsetList<Heap>
- using DisposerList = OffsetList<IDisposer>
- enum class HeapNullOption { AlwaysUseSpecifiedHeap = 0, UseSpecifiedOrContainHeap = 1, DoNotAppendDisposerIfNoHeapSpecified = 2, UseSpecifiedOrCurrentHeap = 3 }
- enum class NodeClassType { Reflexible = 0, Node = 1, Other = 2 }
- enum class AllocFlg { Name = 1u << 0u, Meta = 1u << 1u }
Public static functions
-
static auto tryCreate(size_
t size, const SafeString& name, Heap* parent, s32, HeapDirection direction, bool) -> FrameHeap* -
static auto create(size_
t size, const SafeString& name, Heap* parent, s32, HeapDirection direction, bool) -> FrameHeap* -
static auto getManagementAreaSize(s32) -> size_
t - static auto getListNodeOffset() -> u32
Constructors, destructors, conversion operators
- SEAD_ENUM(Flag, cEnableLock, cDisposing, cEnableWarning, cEnableDebugFillSystem, cEnableDebugFillUser) enum HeapDirection
-
FrameHeap(const SafeString& name,
Heap* parent,
void* address,
size_
t size, HeapDirection direction, bool) protected - ~FrameHeap() protected override
Public functions
- void restoreState(const State& state)
- void freeHead()
- void freeTail()
- void destroy() override
-
auto adjust() -> size_
t override -
auto tryAlloc(size_
t size, s32 alignment) -> void* override - void free(void* ptr) override
-
auto resizeFront(void* p_void,
size_
t size) -> void* override -
auto resizeBack(void* p_void,
size_
t size) -> void* override - void freeAll() override
- auto getStartAddress() const -> uintptr_t override
- auto getEndAddress() const -> uintptr_t override
-
auto getSize() const -> size_
t override -
auto getFreeSize() const -> size_
t override -
auto getMaxAllocatableSize(int alignment) const -> size_
t override - auto isInclude(const void* p_void) const -> bool override
- auto isEmpty() const -> bool override
- auto isFreeable() const -> bool override
- auto isResizable() const -> bool override
- auto isAdjustable() const -> bool override
- void dump() const override
- void dumpYAML(WriteStream& stream, int i) const override
- void genInformation_(hostio::Context* context) override
-
auto tryRealloc(void* ptr,
size_
t size, s32 alignment) -> void* virtual - void dumpTreeYAML(WriteStream& stream, int) const
- void makeMetaString_(BufferedSafeString*) virtual
- void pushBackChild_(Heap* child) virtual
- void appendDisposer_(IDisposer* disposer)
- void removeDisposer_(IDisposer* disposer)
- auto findContainHeap_(const void* ptr) -> Heap*
-
auto alloc(size_
t size, s32 alignment = sizeof(void*)) -> void* - void enableLock(bool on)
- void enableWarning(bool on)
- void enableDebugFillSystem(bool on)
- void enableDebugFillUser(bool on)
- auto isLockEnabled() const -> bool
- auto isWarningEnabled() const -> bool
- auto isDebugFillSystemEnabled() const -> bool
- auto isDebugFillUserEnabled() const -> bool
-
auto getCriticalSection() -> sead::
CriticalSection& - auto getName() const -> const SafeString&
- void setName(const SafeString& name)
- auto getNodeClassType() const -> NodeClassType virtual
Public variables
- void* mStart
-
size_
t mSize - Heap* mParent
- HeapList mChildren
- ListNode mListNode
- DisposerList mDisposerList
- HeapDirection mDirection
- CriticalSection mCS
- BitFlag16 mFlag
- u16 mHeapCheckTag
Protected functions
- void initialize_()
- auto getAreaStart_() const -> void*
- auto getAreaEnd_() const -> void*
- auto getDisposerHeap_() const -> Heap*
Protected variables
Enum documentation
enum class sead:: FrameHeap:: HeapNullOption
#include <heap/seadDisposer.h>
enum class sead:: FrameHeap:: NodeClassType
#include <hostio/seadHostIOReflexible.h>
| Enumerators | |
|---|---|
| Reflexible | |
| Node | |
| Other |
Other classes. |
enum class sead:: FrameHeap:: AllocFlg
#include <hostio/seadHostIOReflexible.h>
Typedef documentation
using sead:: FrameHeap:: HeapList = OffsetList<Heap>
#include <heap/seadHeap.h>
using sead:: FrameHeap:: DisposerList = OffsetList<IDisposer>
#include <heap/seadHeap.h>
Function documentation
static u32 sead:: FrameHeap:: getListNodeOffset()
#include <heap/seadDisposer.h>
sead:: FrameHeap:: SEAD_ENUM(Flag,
cEnableLock,
cDisposing,
cEnableWarning,
cEnableDebugFillSystem,
cEnableDebugFillUser) enum HeapDirection
#include <heap/seadHeap.h>
void* sead:: FrameHeap:: tryRealloc(void* ptr,
size_ t size,
s32 alignment) virtual
#include <heap/seadHeap.h>
void sead:: FrameHeap:: dumpTreeYAML(WriteStream& stream,
int) const
#include <heap/seadHeap.h>
void sead:: FrameHeap:: makeMetaString_(BufferedSafeString*) virtual
#include <heap/seadHeap.h>
void sead:: FrameHeap:: pushBackChild_(Heap* child) virtual
#include <heap/seadHeap.h>
void sead:: FrameHeap:: appendDisposer_(IDisposer* disposer)
#include <heap/seadHeap.h>
void sead:: FrameHeap:: removeDisposer_(IDisposer* disposer)
#include <heap/seadHeap.h>
Heap* sead:: FrameHeap:: findContainHeap_(const void* ptr)
#include <heap/seadHeap.h>
void* sead:: FrameHeap:: alloc(size_ t size,
s32 alignment = sizeof(void*))
#include <heap/seadHeap.h>
void sead:: FrameHeap:: enableLock(bool on)
#include <heap/seadHeap.h>
void sead:: FrameHeap:: enableWarning(bool on)
#include <heap/seadHeap.h>
void sead:: FrameHeap:: enableDebugFillSystem(bool on)
#include <heap/seadHeap.h>
void sead:: FrameHeap:: enableDebugFillUser(bool on)
#include <heap/seadHeap.h>
bool sead:: FrameHeap:: isLockEnabled() const
#include <heap/seadHeap.h>
bool sead:: FrameHeap:: isWarningEnabled() const
#include <heap/seadHeap.h>
bool sead:: FrameHeap:: isDebugFillSystemEnabled() const
#include <heap/seadHeap.h>
bool sead:: FrameHeap:: isDebugFillUserEnabled() const
#include <heap/seadHeap.h>
sead:: CriticalSection& sead:: FrameHeap:: getCriticalSection()
#include <heap/seadHeap.h>
const SafeString& sead:: FrameHeap:: getName() const
#include <prim/seadNamable.h>
void sead:: FrameHeap:: setName(const SafeString& name)
#include <prim/seadNamable.h>
NodeClassType sead:: FrameHeap:: getNodeClassType() const virtual
#include <hostio/seadHostIOReflexible.h>
Heap* sead:: FrameHeap:: getDisposerHeap_() const protected
#include <heap/seadDisposer.h>
Variable documentation
void* sead:: FrameHeap:: mStart
#include <heap/seadHeap.h>
size_ t sead:: FrameHeap:: mSize
#include <heap/seadHeap.h>
Heap* sead:: FrameHeap:: mParent
#include <heap/seadHeap.h>
HeapList sead:: FrameHeap:: mChildren
#include <heap/seadHeap.h>
ListNode sead:: FrameHeap:: mListNode
#include <heap/seadHeap.h>
DisposerList sead:: FrameHeap:: mDisposerList
#include <heap/seadHeap.h>
HeapDirection sead:: FrameHeap:: mDirection
#include <heap/seadHeap.h>
CriticalSection sead:: FrameHeap:: mCS
#include <heap/seadHeap.h>
BitFlag16 sead:: FrameHeap:: mFlag
#include <heap/seadHeap.h>
u16 sead:: FrameHeap:: mHeapCheckTag
#include <heap/seadHeap.h>