Skip to content

Commit 6447101

Browse files
committed
Restore tslist for trace info( fix #295 )
1 parent efeda62 commit 6447101

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

engine/cmodel.cpp

+19-3
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,29 @@ csurface_t *CCollisionBSPData::GetSurfaceAtIndex( unsigned short surfaceIndex )
5050
return &map_surfaces[surfaceIndex];
5151
}
5252

53+
#if TEST_TRACE_POOL
54+
CTSPool<TraceInfo_t> g_TraceInfoPool;
55+
#else
5356
class CTraceInfoPool : public CTSList<TraceInfo_t *>
5457
{
5558
public:
5659
CTraceInfoPool() = default;
5760
};
5861

59-
TraceInfo_t g_TraceInfo;
62+
CTraceInfoPool g_TraceInfoPool;
63+
#endif
6064

6165
TraceInfo_t *BeginTrace()
6266
{
63-
TraceInfo_t * pTraceInfo = &g_TraceInfo;
64-
67+
#if TEST_TRACE_POOL
68+
TraceInfo_t *pTraceInfo = g_TraceInfoPool.GetObject();
69+
#else
70+
TraceInfo_t *pTraceInfo;
71+
if ( !g_TraceInfoPool.PopItem( &pTraceInfo ) )
72+
{
73+
pTraceInfo = new TraceInfo_t;
74+
}
75+
#endif
6576
if ( pTraceInfo->m_BrushCounters[0].Count() != GetCollisionBSPData()->numbrushes + 1 )
6677
{
6778
memset( pTraceInfo->m_Count, 0, sizeof( pTraceInfo->m_Count ) );
@@ -107,6 +118,11 @@ void EndTrace( TraceInfo_t *&pTraceInfo )
107118
{
108119
PopTraceVisits( pTraceInfo );
109120
Assert( pTraceInfo->m_nCheckDepth == -1 );
121+
#if TEST_TRACE_POOL
122+
g_TraceInfoPool.PutObject( pTraceInfo );
123+
#else
124+
g_TraceInfoPool.PushItem( pTraceInfo );
125+
#endif
110126
pTraceInfo = NULL;
111127
}
112128

0 commit comments

Comments
 (0)