summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-04-27 02:53:46 +0300
committerAndrei Karas <akaras@inbox.ru>2016-04-27 02:53:46 +0300
commit64815b311e47395638a2bf5ea80f949526942570 (patch)
tree11d17054a6fbd8a779321d3bb0f1298144af248f
parent80bbbc4c18273e0d1116d7e924d1df068a5d63d5 (diff)
downloadmanaplus-64815b311e47395638a2bf5ea80f949526942570.tar.gz
manaplus-64815b311e47395638a2bf5ea80f949526942570.tar.bz2
manaplus-64815b311e47395638a2bf5ea80f949526942570.tar.xz
manaplus-64815b311e47395638a2bf5ea80f949526942570.zip
Show counted memory usage sum in chat.
-rw-r--r--src/actions/actions.cpp5
-rw-r--r--src/localconsts.h5
-rw-r--r--src/resources/memorymanager.cpp18
-rw-r--r--src/resources/memorymanager.h4
4 files changed, 28 insertions, 4 deletions
diff --git a/src/actions/actions.cpp b/src/actions/actions.cpp
index 1e7a9ad5b..9f7e5287a 100644
--- a/src/actions/actions.cpp
+++ b/src/actions/actions.cpp
@@ -1786,7 +1786,10 @@ impHandler(seen)
impHandler0(dumpMemoryUsage)
{
- memoryManager.printAllMemory();
+ if (event.tab)
+ memoryManager.printAllMemory(event.tab);
+ else
+ memoryManager.printAllMemory(localChatTab);
return true;
}
diff --git a/src/localconsts.h b/src/localconsts.h
index f5254c641..96943671e 100644
--- a/src/localconsts.h
+++ b/src/localconsts.h
@@ -93,6 +93,11 @@
#else // EATHENA_SUPPORT
#define A_TMWA_UNUSED
#endif // EATHENA_SUPPORT
+#ifdef DYECMD
+#define A_DYECMD_UNUSED __attribute__ ((unused))
+#else // DYECMD
+#define A_DYECMD_UNUSED
+#endif // DYECMD
#ifdef __native_client__
#define restrict
diff --git a/src/resources/memorymanager.cpp b/src/resources/memorymanager.cpp
index a88d53b79..ecb0879aa 100644
--- a/src/resources/memorymanager.cpp
+++ b/src/resources/memorymanager.cpp
@@ -22,8 +22,13 @@
#include "logger.h"
+#include "gui/widgets/tabs/chat/chattab.h"
+
#include "resources/resourcemanager.h"
+#include "utils/gettext.h"
+#include "utils/stringutils.h"
+
#include <SDL_video.h>
#include <string>
@@ -62,10 +67,19 @@ void MemoryManager::printMemory(const int level A_UNUSED,
childsSum);
}
-void MemoryManager::printAllMemory()
+void MemoryManager::printAllMemory(ChatTab *const tab A_DYECMD_UNUSED)
{
if (!logger)
return;
+ int sz = 0;
if (resourceManager)
- resourceManager->calcMemory(0);
+ sz += resourceManager->calcMemory(0);
+#ifndef DYECMD
+ if (tab)
+ {
+ // TRANSLATORS: memory usage chat message
+ tab->chatLog(strprintf(_("Calculated memory usage: %d"), sz),
+ ChatMsgType::BY_SERVER);
+ }
+#endif
}
diff --git a/src/resources/memorymanager.h b/src/resources/memorymanager.h
index 658876776..9243989d3 100644
--- a/src/resources/memorymanager.h
+++ b/src/resources/memorymanager.h
@@ -23,6 +23,8 @@
#include "localconsts.h"
+class ChatTab;
+
struct SDL_Surface;
class MemoryManager final
@@ -41,7 +43,7 @@ class MemoryManager final
const int localSum,
const int childsSum);
- void printAllMemory();
+ void printAllMemory(ChatTab *const tab);
};
extern MemoryManager memoryManager;