Counter Strike : Global Offensive Source Code
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright � 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "pch_tier0.h"
#include "vstdlib/pch_vstdlib.h"
// NOTE: This has to be the last file included!
#include "tier0/memdbgon.h"
#ifdef DBGFLAG_VALIDATE
//-----------------------------------------------------------------------------
// Purpose: Initializer
// Input: pchType - Type of the object we represent.
// WARNING: pchType must be a static (since we keep a copy of it around for a while)
// pvObj - Pointer to the object we represent
// pchName - Name of the individual object we represent
// WARNING: pchName must be a static (since we keep a copy of it around for a while)
// pValObjectparent- Our parent object (ie, the object that our object is a member of)
// pValObjectPrev - Object that precedes us in the linked list (we're
// always added to the end)
//-----------------------------------------------------------------------------
void CValObject::Init( tchar *pchType, void *pvObj, tchar *pchName, CValObject *pValObjectParent, CValObject *pValObjectPrev ) { m_nUser = 0;
// Initialize pchType:
if ( NULL != pchType ) { Q_strncpy( m_rgchType, pchType, (int) ( sizeof(m_rgchType) / sizeof(*m_rgchType) ) ); } else { m_rgchType[0] = '\0'; }
m_pvObj = pvObj; // Initialize pchName:
if ( NULL != pchName ) { Q_strncpy( m_rgchName, pchName, sizeof(m_rgchName) / sizeof(*m_rgchName) ); } else { m_rgchName[0] = NULL; }
m_pValObjectParent = pValObjectParent;
if ( NULL == pValObjectParent ) m_nLevel = 0; else m_nLevel = pValObjectParent->NLevel( ) + 1;
m_cpubMemSelf = 0; m_cubMemSelf = 0; m_cpubMemTree = 0; m_cubMemTree = 0;
// Insert us at the back of the linked list
if ( NULL != pValObjectPrev ) { Assert( NULL == pValObjectPrev->m_pValObjectNext ); pValObjectPrev->m_pValObjectNext = this; } m_pValObjectNext = NULL; }
//-----------------------------------------------------------------------------
// Purpose: Destructor
//-----------------------------------------------------------------------------
CValObject::~CValObject( ) { }
//-----------------------------------------------------------------------------
// Purpose: The object we represent has claimed direct ownership of a block of
// memory. Record that we own it.
// Input: pvMem - Address of the memory block
//-----------------------------------------------------------------------------
void CValObject::ClaimMemoryBlock( void *pvMem ) { // Get the memory block header
CMemBlockHdr *pMemBlockHdr = CMemBlockHdr::PMemBlockHdrFromPvUser( pvMem ); pMemBlockHdr->CheckValid( );
// Update our counters
m_cpubMemSelf++; m_cubMemSelf+= pMemBlockHdr->CubUser( ); m_cpubMemTree++; m_cubMemTree+= pMemBlockHdr->CubUser( );
// If we have a parent object, let it know about the memory (it'll recursively call up the tree)
if ( NULL != m_pValObjectParent ) m_pValObjectParent->ClaimChildMemoryBlock( pMemBlockHdr->CubUser( ) ); }
//-----------------------------------------------------------------------------
// Purpose: A child of ours has claimed ownership of a memory block. Make
// a note of it, and pass the message back up the tree.
// Input: cubUser - Size of the memory block
//-----------------------------------------------------------------------------
void CValObject::ClaimChildMemoryBlock( int cubUser ) { m_cpubMemTree++; m_cubMemTree += cubUser;
if ( NULL != m_pValObjectParent ) m_pValObjectParent->ClaimChildMemoryBlock( cubUser ); }
#endif // DBGFLAG_VALIDATE
|