uid issue
This commit is contained in:
commit
c2130ba4e9
13850 files changed
+6241419
No files matched your search
@@ -0,0 +1,64 @@
|
||||
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#include "bitbuf.h"
|
||||
#include "bitbuf_errorhandler.h"
|
||||
#include "tier0/dbg.h"
|
||||
#include "tier0/threadtools.h"
|
||||
#include "utlsymbol.h"
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
static CUtlSymbolTable g_ErrorNames[BITBUFERROR_NUM_ERRORS];
|
||||
|
||||
// This is needed to make bf_write / bf_read thread safe;
|
||||
// this error case is expected to happen rarely.
|
||||
static CThreadRWLock g_ErrorNamesLock;
|
||||
|
||||
void EngineBitBufErrorHandler( BitBufErrorType errorType, const char *pDebugName )
|
||||
{
|
||||
if ( !pDebugName )
|
||||
{
|
||||
pDebugName = "(unknown)";
|
||||
}
|
||||
|
||||
// Only print an error a couple times.
|
||||
g_ErrorNamesLock.LockForRead();
|
||||
CUtlSymbol sym = g_ErrorNames[ errorType ].Find( pDebugName );
|
||||
g_ErrorNamesLock.UnlockRead();
|
||||
|
||||
if ( UTL_INVAL_SYMBOL == sym )
|
||||
{
|
||||
g_ErrorNamesLock.LockForWrite();
|
||||
g_ErrorNames[ errorType ].AddString( pDebugName );
|
||||
g_ErrorNamesLock.UnlockWrite();
|
||||
|
||||
if ( errorType == BITBUFERROR_VALUE_OUT_OF_RANGE )
|
||||
{
|
||||
Warning( "Error in bitbuf [%s]: out of range value. Debug in bitbuf_errorhandler.cpp\n", pDebugName );
|
||||
}
|
||||
else if ( errorType == BITBUFERROR_BUFFER_OVERRUN )
|
||||
{
|
||||
Warning( "Error in bitbuf [%s]: buffer overrun. Debug in bitbuf_errorhandler.cpp\n", pDebugName );
|
||||
}
|
||||
}
|
||||
|
||||
Assert( 0 );
|
||||
}
|
||||
|
||||
|
||||
void InstallBitBufErrorHandler()
|
||||
{
|
||||
SetBitBufErrorHandler( EngineBitBufErrorHandler );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user