File tree 1 file changed +19
-3
lines changed
1 file changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -50,18 +50,29 @@ csurface_t *CCollisionBSPData::GetSurfaceAtIndex( unsigned short surfaceIndex )
50
50
return &map_surfaces[surfaceIndex];
51
51
}
52
52
53
+ #if TEST_TRACE_POOL
54
+ CTSPool<TraceInfo_t> g_TraceInfoPool;
55
+ #else
53
56
class CTraceInfoPool : public CTSList <TraceInfo_t *>
54
57
{
55
58
public:
56
59
CTraceInfoPool () = default ;
57
60
};
58
61
59
- TraceInfo_t g_TraceInfo;
62
+ CTraceInfoPool g_TraceInfoPool;
63
+ #endif
60
64
61
65
TraceInfo_t *BeginTrace ()
62
66
{
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
65
76
if ( pTraceInfo->m_BrushCounters [0 ].Count () != GetCollisionBSPData ()->numbrushes + 1 )
66
77
{
67
78
memset ( pTraceInfo->m_Count , 0 , sizeof ( pTraceInfo->m_Count ) );
@@ -107,6 +118,11 @@ void EndTrace( TraceInfo_t *&pTraceInfo )
107
118
{
108
119
PopTraceVisits ( pTraceInfo );
109
120
Assert ( pTraceInfo->m_nCheckDepth == -1 );
121
+ #if TEST_TRACE_POOL
122
+ g_TraceInfoPool.PutObject ( pTraceInfo );
123
+ #else
124
+ g_TraceInfoPool.PushItem ( pTraceInfo );
125
+ #endif
110
126
pTraceInfo = NULL ;
111
127
}
112
128
You can’t perform that action at this time.
0 commit comments