mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-15 21:26:57 +00:00
1
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
|
||||
#include "valobject.h"
|
||||
|
||||
#ifndef VALIDATOR_H
|
||||
#define VALIDATOR_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DBGFLAG_VALIDATE
|
||||
|
||||
|
||||
class CValidator
|
||||
{
|
||||
public:
|
||||
// Constructors & destructors
|
||||
CValidator( void );
|
||||
~CValidator( void );
|
||||
|
||||
// Call this each time we enter a new Validate function
|
||||
void Push( tchar *pchType, void *pvObj, tchar *pchName );
|
||||
|
||||
// Call this each time we exit a Validate function
|
||||
void Pop( void );
|
||||
|
||||
// Claim ownership of a memory block
|
||||
void ClaimMemory( void *pvMem );
|
||||
|
||||
// Finish performing a check and perform necessary computations
|
||||
void Finalize( void );
|
||||
|
||||
// Render our results to the console
|
||||
void RenderObjects( int cubThreshold ); // Render all reported objects
|
||||
void RenderLeaks( void ); // Render all memory leaks
|
||||
|
||||
// List manipulation functions:
|
||||
CValObject *FindObject( void *pvObj ); // Returns CValObject containing pvObj, or NULL.
|
||||
void DiffAgainst( CValidator *pOtherValidator ); // Removes any entries from this validator that are also present in the other.
|
||||
|
||||
// Accessors
|
||||
bool BMemLeaks( void ) { return m_bMemLeaks; };
|
||||
CValObject *PValObjectFirst( void ) { return m_pValObjectFirst; };
|
||||
|
||||
void Validate( CValidator &validator, tchar *pchName ); // Validate our internal structures
|
||||
|
||||
|
||||
private:
|
||||
CValObject *m_pValObjectFirst; // Linked list of all ValObjects
|
||||
CValObject *m_pValObjectLast; // Last ValObject on the linked list
|
||||
|
||||
CValObject *m_pValObjectCur; // Object we're current processing
|
||||
|
||||
int m_cpvOwned; // Total # of blocks owned
|
||||
|
||||
int m_cpubLeaked; // # of leaked memory blocks
|
||||
int m_cubLeaked; // Amount of leaked memory
|
||||
bool m_bMemLeaks; // Has any memory leaked?
|
||||
};
|
||||
|
||||
|
||||
#endif // DBGFLAG_VALIDATE
|
||||
|
||||
|
||||
#endif // VALIDATOR_H
|
||||
Reference in New Issue
Block a user