fix divide 0 error when caculating disk usage percentage (#791)

This commit is contained in:
Xoris 2024-06-15 10:49:23 +08:00
parent 516979b2ae
commit ed51c2a751
4 changed files with 28 additions and 8 deletions

View file

@ -771,8 +771,13 @@ namespace Mem {
disk.total = vfs.f_blocks * vfs.f_frsize;
disk.free = vfs.f_bfree * vfs.f_frsize;
disk.used = disk.total - disk.free;
disk.used_percent = round((double)disk.used * 100 / disk.total);
disk.free_percent = 100 - disk.used_percent;
if (disk.total != 0) {
disk.used_percent = round((double)disk.used * 100 / disk.total);
disk.free_percent = 100 - disk.used_percent;
} else {
disk.used_percent = 0;
disk.free_percent = 0;
}
}
//? Setup disks order in UI and add swap if enabled

View file

@ -1936,8 +1936,13 @@ namespace Mem {
disk.total = vfs.f_blocks * vfs.f_frsize;
disk.free = (free_priv ? vfs.f_bfree : vfs.f_bavail) * vfs.f_frsize;
disk.used = disk.total - disk.free;
disk.used_percent = round((double)disk.used * 100 / disk.total);
disk.free_percent = 100 - disk.used_percent;
if (disk.total != 0) {
disk.used_percent = round((double)disk.used * 100 / disk.total);
disk.free_percent = 100 - disk.used_percent;
} else {
disk.used_percent = 0;
disk.free_percent = 0;
}
return pair{disk, -1};
});
++it;

View file

@ -723,8 +723,13 @@ namespace Mem {
disk.total = vfs.f_blocks * vfs.f_frsize;
disk.free = vfs.f_bfree * vfs.f_frsize;
disk.used = disk.total - disk.free;
disk.used_percent = round((double)disk.used * 100 / disk.total);
disk.free_percent = 100 - disk.used_percent;
if (disk.total != 0) {
disk.used_percent = round((double)disk.used * 100 / disk.total);
disk.free_percent = 100 - disk.used_percent;
} else {
disk.used_percent = 0;
disk.free_percent = 0;
}
}
//? Setup disks order in UI and add swap if enabled

View file

@ -795,8 +795,13 @@ namespace Mem {
disk.total = vfs.f_blocks * vfs.f_frsize;
disk.free = vfs.f_bfree * vfs.f_frsize;
disk.used = disk.total - disk.free;
disk.used_percent = round((double)disk.used * 100 / disk.total);
disk.free_percent = 100 - disk.used_percent;
if (disk.total != 0) {
disk.used_percent = round((double)disk.used * 100 / disk.total);
disk.free_percent = 100 - disk.used_percent;
} else {
disk.used_percent = 0;
disk.free_percent = 0;
}
}
//? Setup disks order in UI and add swap if enabled