DEPRECATED: Provides an interface for memory reporting.
Typedefs
SbMemoryReporterOnAlloc
A function to report a memory allocation from SbMemoryAllocate(). Note that operator new calls SbMemoryAllocate which will delegate to this callback.
Definition
typedef void(* SbMemoryReporterOnAlloc) (void *context, const void *memory, size_t size)
SbMemoryReporterOnDealloc
A function to report a memory deallocation from SbMemoryDeallcoate(). Note that operator delete calls SbMemoryDeallocate which will delegate to this callback.
Definition
typedef void(* SbMemoryReporterOnDealloc) (void *context, const void *memory)
SbMemoryReporterOnMapMemory
A function to report a memory mapping from SbMemoryMap().
Definition
typedef void(* SbMemoryReporterOnMapMemory) (void *context, const void *memory, size_t size)
SbMemoryReporterOnUnMapMemory
A function to report a memory unmapping from SbMemoryUnmap().
Definition
typedef void(* SbMemoryReporterOnUnMapMemory) (void *context, const void *memory, size_t size)
Structs
SbMemoryReporter
SbMemoryReporter allows memory reporting via user-supplied functions. The void* context is passed to every call back. It's strongly recommended that C-Style struct initialization is used so that the arguments can be typed check by the compiler. For example, SbMemoryReporter mem_reporter = { MallocCallback, .... context };
Members
SbMemoryReporterOnAlloc on_alloc_cb
Callback to report allocations.
SbMemoryReporterOnDealloc on_dealloc_cb
Callback to report deallocations.
SbMemoryReporterOnMapMemory on_mapmem_cb
Callback to report memory map.
SbMemoryReporterOnUnMapMemory on_unmapmem_cb
Callback to report memory unmap.
void * context
Optional, is passed to callbacks as first argument.
Functions
SbMemorySetReporter
Sets the MemoryReporter. Any previous memory reporter is unset. No lifetime management is done internally on input pointer.
NOTE: This module is unused starting with Starboard 15 and will be removed in the future.
Returns true if the memory reporter was set with no errors. If an error was reported then check the log for why it failed.
Note that other than a thread-barrier-write of the input pointer, there is no thread safety guarantees with this function due to performance considerations. It's recommended that this be called once during the lifetime of the program, or not at all. Do not delete the supplied pointer, ever. Example (Good): SbMemoryReporter* mem_reporter = new ...; SbMemorySetReporter(&mem_reporter); ... SbMemorySetReporter(NULL); // allow value to leak. Example (Bad): SbMemoryReporter* mem_reporter = new ...; SbMemorySetReporter(&mem_reporter); ... SbMemorySetReporter(NULL); delete mem_reporter; // May crash.
Declaration
bool SbMemorySetReporter(struct SbMemoryReporter *tracker)