Make memory menu items 64-bit safe.

Redo the precision levels of various calculations in the memory bar items
so they don't overflow on systems with > 4GB of RAM. Previously one could
see fun results like the kernel using negative amounts of memory on such
systems.
This commit is contained in:
Rene Gollent
2012-04-30 21:56:30 -04:00
parent 119c90fc35
commit aa19448875
4 changed files with 52 additions and 52 deletions
@@ -135,8 +135,8 @@ MemoryBarMenuItem::DrawBar(bool force)
rect.InsetBy(1, 1);
BRect r = rect;
float grenze1 = rect.left + (rect.right - rect.left) * float(fWriteMemory) / fCommitedMemory;
float grenze2 = rect.left + (rect.right - rect.left) * float(fAllMemory) / fCommitedMemory;
double grenze1 = rect.left + (rect.right - rect.left) * float(fWriteMemory) / fCommitedMemory;
double grenze2 = rect.left + (rect.right - rect.left) * float(fAllMemory) / fCommitedMemory;
if (grenze1 > rect.right)
grenze1 = rect.right;
if (grenze2 > rect.right)
@@ -234,7 +234,7 @@ MemoryBarMenuItem::GetContentSize(float* _width, float* _height)
int
MemoryBarMenuItem::UpdateSituation(int commitedMemory)
MemoryBarMenuItem::UpdateSituation(int64 commitedMemory)
{
fCommitedMemory = commitedMemory;
BarUpdate();
@@ -247,8 +247,8 @@ MemoryBarMenuItem::BarUpdate()
{
area_info areaInfo;
int32 cookie = 0;
size_t lram_size = 0;
size_t lwram_size = 0;
int64 lram_size = 0;
int64 lwram_size = 0;
bool exists = false;
while (get_next_area_info(fTeamID, &cookie, &areaInfo) == B_OK) {