Restore tslist for trace info( fix #295 )

This commit is contained in:
nillerusr 2023-10-05 19:36:24 +03:00
parent efeda62add
commit 6447101546

View File

@ -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;
} }