1.1 --- a/extensions/topmenus/TopMenu.cpp Wed Dec 05 15:38:45 2007 +0000
1.2 +++ b/extensions/topmenus/TopMenu.cpp Wed Dec 05 18:07:18 2007 +0000
1.3 @@ -87,6 +87,29 @@
1.4 delete [] m_clients;
1.5 }
1.6
1.7 +unsigned int TopMenu::CalcMemUsage()
1.8 +{
1.9 + unsigned int size = sizeof(TopMenu);
1.10 +
1.11 + size += m_Config.strings.GetMemTable()->MemUsage();
1.12 + size += (m_Config.cats.size() * sizeof(int));
1.13 + size += (sizeof(topmenu_player_t) * m_max_clients);
1.14 + size += (m_SortedCats.size() * sizeof(unsigned int));
1.15 + size += (m_UnsortedCats.size() * sizeof(unsigned int));
1.16 + size += (m_Categories.size() * (sizeof(topmenu_category_t *) + sizeof(topmenu_category_t)));
1.17 + size += (m_Objects.size() * (sizeof(topmenu_object_t *) + sizeof(topmenu_object_t)));
1.18 + size += m_ObjLookup.mem_usage();
1.19 +
1.20 + for (size_t i = 0; i < m_Categories.size(); i++)
1.21 + {
1.22 + size += m_Categories[i]->obj_list.size() * sizeof(topmenu_object_t *);
1.23 + size += m_Categories[i]->sorted.size() * sizeof(topmenu_object_t *);
1.24 + size += m_Categories[i]->unsorted.size() * sizeof(topmenu_object_t *);
1.25 + }
1.26 +
1.27 + return size;
1.28 +}
1.29 +
1.30 void TopMenu::OnClientConnected(int client)
1.31 {
1.32 if (m_clients == NULL)