Modify get_pretty_memory_size() to return a std::string.

This commit is contained in:
David Capello 2010-09-23 20:28:38 -03:00
parent c9dfa8fc03
commit 5e253d4a76
4 changed files with 27 additions and 20 deletions

View File

@ -6,16 +6,24 @@
#include "config.h"
#include <allegro/unicode.h>
#include <string>
#include <cstring>
char *get_pretty_memory_size(unsigned int memsize, char *buf, unsigned int bufsize)
using namespace std;
string get_pretty_memory_size(size_t memsize)
{
if (memsize < 1000)
uszprintf(buf, bufsize, "%d bytes", memsize);
else if (memsize < 1000*1000)
uszprintf(buf, bufsize, "%0.1fK", memsize/1024.0f);
else
uszprintf(buf, bufsize, "%0.1fM", memsize/(1024.0f*1024.0f));
char buf[256];
if (memsize < 1000) {
sprintf(buf, "%d bytes", memsize);
}
else if (memsize < 1000*1000) {
sprintf(buf, "%0.1fK", memsize/1024.0f);
}
else {
sprintf(buf, "%0.1fM", memsize/(1024.0f*1024.0f));
}
return buf;
}

View File

@ -7,7 +7,9 @@
#ifndef BASE_MEM_UTILS_H_INCLUDED
#define BASE_MEM_UTILS_H_INCLUDED
char* get_pretty_memory_size(unsigned int memsize, char* buf, unsigned int bufsize);
#include <string>
std::string get_pretty_memory_size(size_t memsize);
#endif

View File

@ -105,13 +105,10 @@ void CelPropertiesCommand::onExecute(Context* context)
sprite->getStock()->image[cel->image]->w)*
sprite->getStock()->image[cel->image]->h;
usprintf(buf, "%dx%d (",
usprintf(buf, "%dx%d (%s)",
sprite->getStock()->image[cel->image]->w,
sprite->getStock()->image[cel->image]->h);
get_pretty_memory_size(memsize,
buf+ustrsize(buf),
sizeof(buf)-ustrsize(buf));
ustrcat(buf, ")");
sprite->getStock()->image[cel->image]->h,
get_pretty_memory_size(memsize).c_str());
label_size->setText(buf);

View File

@ -110,11 +110,11 @@ void SpritePropertiesCommand::onExecute(Context* context)
type->setText(imgtype_text.c_str());
// Sprite size (width and height)
usprintf(buf, "%dx%d (", sprite->getWidth(), sprite->getHeight());
get_pretty_memory_size(sprite->getMemSize(),
buf+ustrsize(buf),
sizeof(buf)-ustrsize(buf));
ustrcat(buf, ")");
usprintf(buf, "%dx%d (%s)",
sprite->getWidth(),
sprite->getHeight(),
get_pretty_memory_size(sprite->getMemSize()));
size->setText(buf);
// How many frames