i2psnark: Fix overflow in ratio sorter (ticket #2129)

This commit is contained in:
zzz
2018-01-04 11:28:49 +00:00
parent a827b2f964
commit 62210c8165
3 changed files with 36 additions and 9 deletions

View File

@ -313,16 +313,18 @@ class Sorters {
private static class RatioComparator extends Sort {
private static final long M = 128 * 1024 * 1024;
public RatioComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
long lt = l.getTotalLength();
long ld = lt > 0 ? ((M * l.getUploaded()) / lt) : 0;
long rt = r.getTotalLength();
long rd = rt > 0 ? ((M * r.getUploaded()) / rt) : 0;
return compLong(ld, rd);
double lt = l.getTotalLength();
double ld = lt > 0 ? (l.getUploaded() / lt) : 0d;
double rt = r.getTotalLength();
double rd = rt > 0 ? (r.getUploaded() / rt) : 0d;
if (ld < rd)
return -1;
if (ld > rd)
return 1;
return 0;
}
}