Restore tslist for trace info( fix #295 )
This commit is contained in:
parent
efeda62add
commit
6447101546
@ -50,18 +50,29 @@ csurface_t *CCollisionBSPData::GetSurfaceAtIndex( unsigned short surfaceIndex )
|
|||||||
return &map_surfaces[surfaceIndex];
|
return &map_surfaces[surfaceIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if TEST_TRACE_POOL
|
||||||
|
CTSPool<TraceInfo_t> g_TraceInfoPool;
|
||||||
|
#else
|
||||||
class CTraceInfoPool : public CTSList<TraceInfo_t *>
|
class CTraceInfoPool : public CTSList<TraceInfo_t *>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CTraceInfoPool() = default;
|
CTraceInfoPool() = default;
|
||||||
};
|
};
|
||||||
|
|
||||||
TraceInfo_t g_TraceInfo;
|
CTraceInfoPool g_TraceInfoPool;
|
||||||
|
#endif
|
||||||
|
|
||||||
TraceInfo_t *BeginTrace()
|
TraceInfo_t *BeginTrace()
|
||||||
{
|
{
|
||||||
TraceInfo_t * pTraceInfo = &g_TraceInfo;
|
#if TEST_TRACE_POOL
|
||||||
|
TraceInfo_t *pTraceInfo = g_TraceInfoPool.GetObject();
|
||||||
|
#else
|
||||||
|
TraceInfo_t *pTraceInfo;
|
||||||
|
if ( !g_TraceInfoPool.PopItem( &pTraceInfo ) )
|
||||||
|
{
|
||||||
|
pTraceInfo = new TraceInfo_t;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if ( pTraceInfo->m_BrushCounters[0].Count() != GetCollisionBSPData()->numbrushes + 1 )
|
if ( pTraceInfo->m_BrushCounters[0].Count() != GetCollisionBSPData()->numbrushes + 1 )
|
||||||
{
|
{
|
||||||
memset( pTraceInfo->m_Count, 0, sizeof( pTraceInfo->m_Count ) );
|
memset( pTraceInfo->m_Count, 0, sizeof( pTraceInfo->m_Count ) );
|
||||||
@ -107,6 +118,11 @@ void EndTrace( TraceInfo_t *&pTraceInfo )
|
|||||||
{
|
{
|
||||||
PopTraceVisits( pTraceInfo );
|
PopTraceVisits( pTraceInfo );
|
||||||
Assert( pTraceInfo->m_nCheckDepth == -1 );
|
Assert( pTraceInfo->m_nCheckDepth == -1 );
|
||||||
|
#if TEST_TRACE_POOL
|
||||||
|
g_TraceInfoPool.PutObject( pTraceInfo );
|
||||||
|
#else
|
||||||
|
g_TraceInfoPool.PushItem( pTraceInfo );
|
||||||
|
#endif
|
||||||
pTraceInfo = NULL;
|
pTraceInfo = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user