예제 #1
0
void
memory_set_tracker(memory_tracker_t tracker) {
	memory_tracker_t old_tracker = _memory_tracker;

	if ((old_tracker.track == tracker.track) && (old_tracker.untrack == tracker.untrack))
		return;

	_memory_tracker = _memory_no_tracker;

	if (old_tracker.finalize)
		old_tracker.finalize();

	if (tracker.initialize)
		tracker.initialize();

	_memory_tracker = tracker;
}
예제 #2
0
void memory_set_tracker( memory_tracker_t tracker )
{
	memory_tracker_t no_tracker = {0};
	memory_tracker_t old_tracker = _memory_tracker;

	if( ( old_tracker.track == tracker.track ) && ( old_tracker.untrack == tracker.untrack ) )
		return;
	
	_memory_tracker = no_tracker;
	
	if( old_tracker.shutdown )
		old_tracker.shutdown();
	
	if( tracker.initialize )
		tracker.initialize();

	_memory_tracker = tracker;
}
예제 #3
0
static void _memory_untrack( void* addr )
{
	if( _memory_tracker.untrack )
		_memory_tracker.untrack( addr );
}
예제 #4
0
static void _memory_track( void* addr, uint64_t size )
{
	if( _memory_tracker.track )
		_memory_tracker.track( addr, size );
}