|
GblContext * | GblObject_findContext (GblObject *pSelf) |
|
GBL_RESULT | GblObject_property (const GblObject *pSelf, const char *pName,...) |
|
GBL_RESULT | GblObject_propertyByQuark (const GblObject *pSelf, GblQuark name,...) |
|
GBL_RESULT | GblObject_propertyVaList (const GblObject *pSelf, const char *pName, va_list *pList) |
|
GBL_RESULT | GblObject_propertyVaListByQuark (const GblObject *pSelf, GblQuark name, va_list *pList) |
|
GBL_RESULT | GblObject_propertyVariant (const GblObject *pSelf, const char *pName, GblVariant *pValue) |
|
GBL_RESULT | GblObject_propertyVariantByQuark (const GblObject *pSelf, GblQuark name, GblVariant *pValue) |
|
GBL_RESULT | GblObject_properties (const GblObject *pSelf,...) |
|
GBL_RESULT | GblObject_propertiesVaList (const GblObject *pSelf, va_list *pList) |
|
GBL_RESULT | GblObject_propertiesVariants (const GblObject *pSelf, size_t count, const char *pNames[], GblVariant *pValue) |
|
GBL_RESULT | GblObject_setProperty (GblObject *pSelf, const char *pName,...) |
|
GBL_RESULT | GblObject_setPropertyByQuark (GblObject *pSelf, GblQuark quark,...) |
|
GBL_RESULT | GblObject_setPropertyVaList (GblObject *pSelf, const char *pName, va_list *pList) |
|
GBL_RESULT | GblObject_setPropertyVaListByQuark (GblObject *pSelf, GblQuark name, va_list *pList) |
|
GBL_RESULT | GblObject_setPropertyVariant (GblObject *pSelf, const char *pName, GblVariant *pValue) |
|
GBL_RESULT | GblObject_setPropertyVariantByQuark (GblObject *pSelf, GblQuark name, GblVariant *pValue) |
|
GBL_RESULT | GblObject_setProperties (GblObject *pSelf,...) |
|
GBL_RESULT | GblObject_setPropertiesVaList (GblObject *pSelf, va_list *pList) |
|
GBL_RESULT | GblObject_setPropertiesVariants (GblObject *pSelf, size_t count, const char *pNames[], GblVariant *pValue) |
|
const GblStringRef * | GblObject_name (const GblObject *pSelf) |
|
void | GblObject_setName (GblObject *pSelf, const char *pName) |
|
void | GblObject_setNameRef (GblObject *pSelf, const GblStringRef *pRef) |
|
GblObject * | GblObject_parent (const GblObject *pSelf) |
|
void | GblObject_setParent (GblObject *pSelf, GblObject *pParent) |
|
void | GblObject_addChild (GblObject *pSelf, GblObject *pChild) |
|
GblBool | GblObject_removeChild (GblObject *pSelf, GblObject *pChild) |
|
size_t | GblObject_depth (const GblObject *pSelf) |
|
GblObject * | GblObject_childFirst (const GblObject *pSelf) |
|
size_t | GblObject_childCount (const GblObject *pSelf) |
|
GblObject * | GblObject_siblingNext (const GblObject *pSelf) |
|
GblObject * | GblObject_findAncestorByType (const GblObject *pSelf, GblType ancestorType) |
|
GblObject * | GblObject_findAncestorByName (const GblObject *pSelf, const char *pName) |
|
GblObject * | GblObject_findAncestorByHeight (const GblObject *pSelf, size_t height) |
|
GblObject * | GblObject_findBaseByDepth (const GblObject *pSelf, size_t depth) |
|
GblObject * | GblObject_findChildByType (const GblObject *pSelf, GblType childType) |
|
GblObject * | GblObject_findChildByName (const GblObject *pSelf, const char *pName) |
|
GblObject * | GblObject_findChildByIndex (const GblObject *pSelf, size_t index) |
|
GblObject * | GblObject_findSiblingByType (const GblObject *pSelf, GblType siblingType) |
|
GblObject * | GblObject_findSiblingByName (const GblObject *pSelf, const char *pName) |
|
GblObject * | GblObject_findSiblingByIndex (const GblObject *pSelf, size_t index) |
|
GBL_RESULT | GblObject_sendEvent (GblObject *pSelf, GblEvent *pEvent) |
|
GBL_RESULT | GblObject_notifyEvent (GblObject *pSelf, GblEvent *pEvent) |
|
GBL_RESULT | GblObject_installEventFilter (GblObject *pSelf, GblIEventFilter *pFilter) |
|
GBL_RESULT | GblObject_uninstallEventFilter (GblObject *pSelf, GblIEventFilter *pFilter) |
|
size_t | GblObject_eventFilterCount (const GblObject *pSelf) |
|
GblIEventFilter * | GblObject_eventFilter (const GblObject *pSelf, size_t index) |
|
GblBox * | GblBox_ref (GblBox *pSelf) |
|
GblRefCount | GblBox_unref (GblBox *pSelf) |
|
GblRefCount | GblBox_refCount (const GblBox *pSelf) |
|
void * | GblBox_userdata (const GblBox *pSelf) |
|
GBL_RESULT | GblBox_setUserdata (GblBox *pSelf, void *pUserdata) |
|
GBL_RESULT | GblBox_setUserDestructor (GblBox *pSelf, GblArrayMapDtorFn pFnUdDtor) |
|
uintptr_t | GblBox_field (const GblBox *pSelf, GblQuark key) |
|
uintptr_t | GblBox_takeField (GblBox *pSelf, GblQuark key) |
|
GblBool | GblBox_clearField (GblBox *pSelf, GblQuark key) |
|
GblBool | GblBox_hasField (const GblBox *pSelf, GblQuark key) |
|
GBL_RESULT | GblBox_setField (GblBox *pSelf, GblQuark key, uintptr_t ud, GblArrayMapDtorFn pFnDtor) |
|
GblRefCount | GblInstance_destroy (GblInstance *pSelf) |
|
#define | GBL_TYPEOF(self) |
|
#define | GBL_PRIVATE(cType, self) |
|
#define | GBL_PUBLIC(cType, selfPriv) |
|
#define | GBL_TYPECHECK(cType, self) |
|
#define | GBL_CAST(cType, self) |
|
#define | GBL_AS(cType, self) |
|
#define | GBL_CLASSOF(cType, self) |
|
#define | GBL_CLASSOF_AS(cType, self) |
|
#define | GBL_VCALL(cType, method, ...) |
|
#define | GBL_VCALL_DEFAULT(cType, method, ...) |
|
GblBool | GblInstance_check (const GblInstance *pSelf, GblType toType) |
|
GblInstance * | GblInstance_cast (GblInstance *pSelf, GblType toType) |
|
GblInstance * | GblInstance_as (GblInstance *pSelf, GblType toType) |
|
void * | GblInstance_private (const GblInstance *pSelf, GblType base) |
|
GblInstance * | GblInstance_public (const void *pPriv, GblType base) |
|
GblType | GblInstance_typeOf (const GblInstance *pSelf) |
|
size_t | GblInstance_size (const GblInstance *pSelf) |
|
size_t | GblInstance_privateSize (const GblInstance *pSelf) |
|
size_t | GblInstance_totalSize (const GblInstance *pSelf) |
|
GblClass * | GblInstance_class (const GblInstance *pSelf) |
|
GBL_RESULT | GblInstance_swizzleClass (GblInstance *pSelf, GblClass *pClass) |
|
GBL_RESULT | GblInstance_sinkClass (GblInstance *pSelf) |
|
GBL_RESULT | GblInstance_floatClass (GblInstance *pSelf) |
|
Arena/zone/region/area-based paged allocator.
GblArenaAllocator is a custom allocator which is useful for when you are allocating a bunch of data dynamically which all has the same shared lifetime. The allocator is created once, then as allocations are requested, it only allocates new memory in per-page incremements rather than for individual allocations. Finally, when you're done, rather than calling delete, you simply destruct the allocator, which frees its pages all at once. This can be SUBSTANTIALLY faster than calling malloc() or new for backing data structures with such allocation patterns.
- Note
- It's often useful to create the first allocation page as a static buffer somewhere in a source file, so that heap memory isn't even used until it's necessary. Be sure to set the GblArenaAllocatorPage::staticAlloc flag to ensure the allocator does not attempt to free it!
- See also
- GblArenaAllocatorPage, GblPoolAllocator
Definition at line 92 of file gimbal_arena_allocator.h.