| 154 | } |
| 155 | |
| 156 | void ProfileUnregisterProfiler(const char* name) |
| 157 | { |
| 158 | ProfileListener* prev = 0; |
| 159 | for (ProfileListener* p = g_ProfileListeners; p; p = p->m_Next) |
| 160 | { |
| 161 | if (strcmp(name, p->m_Name) == 0) |
| 162 | { |
| 163 | if (prev) |
| 164 | prev->m_Next = p->m_Next; |
| 165 | else |
| 166 | g_ProfileListeners = p->m_Next; // it was the first one in the list |
| 167 | return; |
| 168 | } |
| 169 | prev = p; |
| 170 | } |
| 171 | g_ProfileListeners = 0; |
| 172 | } |
| 173 | |
| 174 | #define DO_LOOP_NOARGS(_FUNC) \ |
| 175 | for (ProfileListener* p = g_ProfileListeners; p!=0; p = p->m_Next) \ |
no outgoing calls