51Degrees Common C/C++  4.1

A shared functionality library that is used by 51Degrees products

Memory

Detailed Description

Utility methods used to handle common memory operations such as allocating memory and freeing it, or reading through continuous memory checking for buffer over or under runs.

Structs

struct  fiftyoneDegreesMemoryReader
Used to read data from memory in a similar manner to a file handle. More...

Functions

bool  fiftyoneDegreesMemoryAdvance (fiftyoneDegreesMemoryReader *reader, size_t advanceBy)
Used to read continuous memory checking for buffer over or under runs. More...
EXTERNAL void *  fiftyoneDegreesMemoryStandardMalloc (size_t __size)
Allocates memory using the standard malloc method. More...
EXTERNAL void *  fiftyoneDegreesMemoryTrackingMalloc (size_t __size)
Allocates memory while keeping track of the memory which has been allocated using this method since calling fiftyoneDegreesMemoryTrackingReset. More...
EXTERNAL void  fiftyoneDegreesMemoryTrackingFree (void *__ptr)
Frees memory allocated using the fiftyoneDegreesMemoryTrackingMalloc method, noting that it has now been freed and does not contribute to the current total. More...
EXTERNAL void  fiftyoneDegreesMemoryStandardFree (void *__ptr)
Frees memory using the standard free method. More...
EXTERNAL size_t  fiftyoneDegreesMemoryTrackingGetMax ()
Gets the maximum total number of bytes that have been allocated using the fiftyoneDegreesMemoryTrackingMalloc method. More...
EXTERNAL size_t  fiftyoneDegreesMemoryTrackingGetAllocated ()
Gets the current number of bytes allocated using the tracking malloc and free methods. More...
EXTERNAL void  fiftyoneDegreesMemoryTrackingReset ()
Resets the memory trackers keeping track of the data allocated using the fiftyoneDegreesMemoryTrackingMalloc method. More...

Variables

EXTERNAL void *(*  fiftyoneDegreesMalloc )(size_t __size)
Pointer to the method used to allocate memory. More...
EXTERNAL void(*  fiftyoneDegreesFree )(void *__ptr)
Pointer to the method used to free memory. More...

Function Documentation

◆ fiftyoneDegreesMemoryAdvance()

bool fiftyoneDegreesMemoryAdvance ( fiftyoneDegreesMemoryReader *   reader,
size_t   advanceBy  
)

Used to read continuous memory checking for buffer over or under runs.

Parameters
reader - structure used to check for last byte
advanceBy - number of bytes to advance current by
Returns
true if the advance succeeded, otherwise false

◆ fiftyoneDegreesMemoryStandardFree()

EXTERNAL void fiftyoneDegreesMemoryStandardFree ( void *   __ptr )

Frees memory using the standard free method.

Parameters
__ptr - data to free

◆ fiftyoneDegreesMemoryStandardMalloc()

EXTERNAL void* fiftyoneDegreesMemoryStandardMalloc ( size_t   __size )

Allocates memory using the standard malloc method.

Returns
pointer to allocated memory or NULL

◆ fiftyoneDegreesMemoryTrackingFree()

EXTERNAL void fiftyoneDegreesMemoryTrackingFree ( void *   __ptr )

Frees memory allocated using the fiftyoneDegreesMemoryTrackingMalloc method, noting that it has now been freed and does not contribute to the current total.

Parameters
__ptr - data to free

◆ fiftyoneDegreesMemoryTrackingGetAllocated()

EXTERNAL size_t fiftyoneDegreesMemoryTrackingGetAllocated ( )

Gets the current number of bytes allocated using the tracking malloc and free methods.

Returns
total bytes currently allocated

◆ fiftyoneDegreesMemoryTrackingGetMax()

EXTERNAL size_t fiftyoneDegreesMemoryTrackingGetMax ( )

Gets the maximum total number of bytes that have been allocated using the fiftyoneDegreesMemoryTrackingMalloc method.

NOTE: this is the total at any point in time since the fiftyoneDegreesMemoryTrackingReset method was called, NOT the total allocated in a single allocation.

Returns
maximum total allocation

◆ fiftyoneDegreesMemoryTrackingMalloc()

EXTERNAL void* fiftyoneDegreesMemoryTrackingMalloc ( size_t   __size )

Allocates memory while keeping track of the memory which has been allocated using this method since calling fiftyoneDegreesMemoryTrackingReset.

Parameters
__size - number of bytes to allocate
Returns
pointer to allocated memory or NULL

◆ fiftyoneDegreesMemoryTrackingReset()

EXTERNAL void fiftyoneDegreesMemoryTrackingReset ( )

Resets the memory trackers keeping track of the data allocated using the fiftyoneDegreesMemoryTrackingMalloc method.

This should always be called before tracking memory allocations.

Variable Documentation

◆ fiftyoneDegreesFree

EXTERNAL void( * fiftyoneDegreesFree) (void *__ptr)

Pointer to the method used to free memory.

By default this maps to fiftyoneDegreesMemoryStandardFree which calls the standard library free.

Parameters
__ptr - pointer to free

◆ fiftyoneDegreesMalloc

EXTERNAL void*( * fiftyoneDegreesMalloc) (size_t __size)

Pointer to the method used to allocate memory.

By default this maps to fiftyoneDegreesMemoryStandardMalloc which calls the standard library malloc.

Parameters
__size - to allocate
Returns
pointer to allocated memory or NULL