Skip to content

Commit

Permalink
fix some LGTM.com alerts (#373)
Browse files Browse the repository at this point in the history
  • Loading branch information
richardstartin committed Mar 16, 2020
1 parent 7af40c5 commit a03f716
Show file tree
Hide file tree
Showing 9 changed files with 43 additions and 41 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ RoaringBitmap
[![][license img]][license]
[![docs-badge][]][docs]
[![Coverage Status](https://coveralls.io/repos/github/RoaringBitmap/RoaringBitmap/badge.svg?branch=master)](https://coveralls.io/github/RoaringBitmap/RoaringBitmap?branch=master)
[![Total alerts](https://img.shields.io/lgtm/alerts/g/RoaringBitmap/RoaringBitmap.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/RoaringBitmap/RoaringBitmap/alerts/)
[![Language grade: Java](https://img.shields.io/lgtm/grade/java/g/RoaringBitmap/RoaringBitmap.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/RoaringBitmap/RoaringBitmap/context:java)

Bitsets, also called bitmaps, are commonly used as fast data structures.
Unfortunately, they can use too much memory. To compensate, we often use
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,7 @@ public Container iand(BitmapContainer value2) {
for (int k = 0; k < cardinality; ++k) {
char v = this.content[k];
this.content[pos] = v;
pos += value2.bitValue(v);
pos += (int)value2.bitValue(v);
}
cardinality = pos;
return this;
Expand All @@ -569,7 +569,7 @@ public ArrayContainer iandNot(BitmapContainer value2) {
for (int k = 0; k < cardinality; ++k) {
char v = this.content[k];
this.content[pos] = v;
pos += 1 - value2.bitValue(v);
pos += 1 - (int)value2.bitValue(v);
}
this.cardinality = pos;
return this;
Expand Down
20 changes: 10 additions & 10 deletions RoaringBitmap/src/main/java/org/roaringbitmap/BitmapContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ public Container add(final char i) {
long newval = previous | (1L << i);
bitmap[i >>> 6] = newval;
if (USE_BRANCHLESS) {
cardinality += (previous ^ newval) >>> i;
cardinality += (int)((previous ^ newval) >>> i);
} else if (previous != newval) {
++cardinality;
}
Expand All @@ -162,7 +162,7 @@ public ArrayContainer and(final ArrayContainer value2) {
for (int k = 0; k < c; ++k) {
char v = value2.content[k];
answer.content[answer.cardinality] = v;
answer.cardinality += this.bitValue(v);
answer.cardinality += (int)this.bitValue(v);
}
return answer;
}
Expand Down Expand Up @@ -198,7 +198,7 @@ public int andCardinality(final ArrayContainer value2) {
int c = value2.cardinality;
for (int k = 0; k < c; ++k) {
char v = value2.content[k];
answer += this.bitValue(v);
answer += (int)this.bitValue(v);
}
return answer;
}
Expand Down Expand Up @@ -478,7 +478,7 @@ public Container flip(char i) {
}
}
// TODO: check whether a branchy version could be faster
cardinality += 1 - 2 * ((bef & mask) >>> i);
cardinality += 1 - 2 * (int)((bef & mask) >>> i);
bitmap[index] ^= mask;
return this;
}
Expand Down Expand Up @@ -575,7 +575,7 @@ public Container iand(RunContainer x) {
int runEnd = runStart + (x.getLength(rlepos));
for (int runValue = runStart; runValue <= runEnd; ++runValue) {
answer.content[answer.cardinality] = (char) runValue;
answer.cardinality += this.bitValue((char) runValue);
answer.cardinality += (int)this.bitValue((char) runValue);
}
}
return answer;
Expand Down Expand Up @@ -746,7 +746,7 @@ public BitmapContainer ior(final ArrayContainer value2) {
long aft = bef | (1L << value2.content[k]);
this.bitmap[i] = aft;
if (USE_BRANCHLESS) {
cardinality += (bef - aft) >>> 63;
cardinality += (int)((bef - aft) >>> 63);
} else {
if (bef != aft) {
cardinality++;
Expand Down Expand Up @@ -835,7 +835,7 @@ public Container ixor(final ArrayContainer value2) {
final int index = (vc) >>> 6;
long ba = this.bitmap[index];
// TODO: check whether a branchy version could be faster
this.cardinality += 1 - 2 * ((ba & mask) >>> vc);
this.cardinality += 1 - 2 * (int)((ba & mask) >>> vc);
this.bitmap[index] = ba ^ mask;
}
if (this.cardinality <= ArrayContainer.DEFAULT_MAX_SIZE) {
Expand Down Expand Up @@ -1012,7 +1012,7 @@ int numberOfRuns() {
for (int i = 0; i < bitmap.length - 1; i++) {
long word = nextWord;
nextWord = bitmap[i + 1];
numRuns += Long.bitCount((~word) & (word << 1)) + ((word >>> 63) & ~nextWord);
numRuns += Long.bitCount((~word) & (word << 1)) + (int)((word >>> 63) & ~nextWord);
}

long word = nextWord;
Expand All @@ -1036,7 +1036,7 @@ public int numberOfRunsAdjustment() {
final long word = nextWord;

nextWord = bitmap[i + 1];
ans += ((word >>> 63) & ~nextWord);
ans += (int)((word >>> 63) & ~nextWord);
}
final long word = nextWord;

Expand Down Expand Up @@ -1079,7 +1079,7 @@ public Container or(final ArrayContainer value2) {
long aft = w | (1L << v);
answer.bitmap[i] = aft;
if (USE_BRANCHLESS) {
answer.cardinality += (w - aft) >>> 63;
answer.cardinality += (int)((w - aft) >>> 63);
} else {
if (w != aft) {
answer.cardinality++;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ public long getLongSizeInBytes() {
long size = 8;
size += super.getLongSizeInBytes();
if (highToCumulatedCardinality != null) {
size += 4 * highToCumulatedCardinality.length;
size += 4L * highToCumulatedCardinality.length;
}
return size;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -829,7 +829,7 @@ protected boolean contains(BitmapContainer bitmapContainer) {
int start = (getValue(ir));
int stop = start+ (getLength(ir));
long t = w & -w;
long r = ib * 64 + Long.numberOfTrailingZeros(w);
long r = ib * 64L + Long.numberOfTrailingZeros(w);
if (r < start) {
return false;
} else if(r > stop) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,13 +307,13 @@ public MappeableArrayContainer andNot(MappeableBitmapContainer value2) {
for (int k = 0; k < cardinality; ++k) {
char v = c[k];
sarray[pos] = v;
pos += 1 - value2.bitValue(v);
pos += 1 - (int)value2.bitValue(v);
}
} else {
for (int k = 0; k < cardinality; ++k) {
char v = this.content.get(k);
sarray[pos] = v;
pos += 1 - value2.bitValue(v);
pos += 1 - (int)value2.bitValue(v);
}
}
answer.cardinality = pos;
Expand Down Expand Up @@ -642,7 +642,7 @@ public MappeableContainer iand(MappeableBitmapContainer value2) {
for (int k = 0; k < cardinality; ++k) {
char v = this.content.get(k);
this.content.put(pos, v);
pos += value2.bitValue(v);
pos += (int)value2.bitValue(v);
}
cardinality = pos;
return this;
Expand Down Expand Up @@ -682,7 +682,7 @@ public MappeableArrayContainer iandNot(MappeableBitmapContainer value2) {
for (int k = 0; k < cardinality; ++k) {
char v = c[k];
c[pos] = v;
pos += 1 - value2.bitValue(v);
pos += 1 - (int)value2.bitValue(v);
}
this.cardinality = pos;
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ public MappeableContainer add(final char i) {
final long newv = previous | (1L << i);
bitmap.put(i / 64, newv);
if (USE_BRANCHLESS) {
cardinality += (previous ^ newv) >>> i;
cardinality += (int)((previous ^ newv) >>> i);
} else if (previous != newv) {
cardinality++;
}
Expand All @@ -161,15 +161,15 @@ public MappeableArrayContainer and(final MappeableArrayContainer value2) {
for (int k = 0; k < ca; ++k) {
char v = c[k];
sarray[answer.cardinality] = v;
answer.cardinality += this.bitValue(v);
answer.cardinality += (int)this.bitValue(v);
}

} else {
int ca = value2.cardinality;
for (int k = 0; k < ca; ++k) {
char v = value2.content.get(k);
sarray[answer.cardinality] = v;
answer.cardinality += this.bitValue(v);
answer.cardinality += (int)this.bitValue(v);
}
}
return answer;
Expand Down Expand Up @@ -530,7 +530,7 @@ public MappeableContainer flip(char i) {
}
long aft = bef ^ mask;
// TODO: check whether a branchy version could be faster
cardinality += 1 - 2 * ((bef & mask) >>> i);
cardinality += 1 - 2 * (int)((bef & mask) >>> i);
bitmap.put(i >>> 6, aft);
return this;
}
Expand Down Expand Up @@ -659,7 +659,7 @@ public MappeableContainer iand(final MappeableRunContainer x) {
int runEnd = runStart + (x.getLength(rlepos));
for (int runValue = runStart; runValue <= runEnd; ++runValue) {
answer.content.put(answer.cardinality, (char) runValue);
answer.cardinality += this.bitValue((char) runValue);
answer.cardinality += (int)this.bitValue((char) runValue);
}
}
return answer;
Expand Down Expand Up @@ -894,7 +894,7 @@ public MappeableBitmapContainer ior(final MappeableArrayContainer value2) {
long aft = bef | (1L << v2[k]);
b[i] = aft;
if (USE_BRANCHLESS) {
cardinality += (bef - aft) >>> 63;
cardinality += (int)((bef - aft) >>> 63);
} else {
if (aft != bef) {
cardinality++;
Expand All @@ -911,7 +911,7 @@ public MappeableBitmapContainer ior(final MappeableArrayContainer value2) {
long aft = bef | (1L << v2);
b[i] = aft;
if (USE_BRANCHLESS) {
cardinality += (bef - aft) >>> 63;
cardinality += (int)((bef - aft) >>> 63);
} else {
if (aft != bef) {
cardinality++;
Expand Down Expand Up @@ -1043,7 +1043,7 @@ public MappeableContainer ixor(final MappeableArrayContainer value2) {
final int index = (vc) >>> 6;
long ba = b[index];
// TODO: check whether a branchy version could be faster
this.cardinality += 1 - 2 * ((ba & mask) >>> vc);
this.cardinality += 1 - 2 * (int)((ba & mask) >>> vc);
b[index] = ba ^ mask;
}

Expand All @@ -1055,7 +1055,7 @@ public MappeableContainer ixor(final MappeableArrayContainer value2) {
final int index = (v2) >>> 6;
long ba = b[index];
// TODO: check whether a branchy version could be faster
this.cardinality += 1 - 2 * ((ba & mask) >>> v2);
this.cardinality += 1 - 2 * (int)((ba & mask) >>> v2);
b[index] = ba ^ mask;
}
}
Expand Down Expand Up @@ -1306,7 +1306,7 @@ int numberOfRuns() {
for (int i = 0; i < src.length - 1; i++) {
long word = nextWord;
nextWord = src[i + 1];
numRuns += Long.bitCount((~word) & (word << 1)) + ((word >>> 63) & ~nextWord);
numRuns += Long.bitCount((~word) & (word << 1)) + (int)((word >>> 63) & ~nextWord);
}

long word = nextWord;
Expand All @@ -1324,7 +1324,7 @@ int numberOfRuns() {
for (int i = 0; i < len - 1; i++) {
long word = nextWord;
nextWord = bitmap.get(i + 1);
numRuns += Long.bitCount((~word) & (word << 1)) + ((word >>> 63) & ~nextWord);
numRuns += Long.bitCount((~word) & (word << 1)) + (int)((word >>> 63) & ~nextWord);
}

long word = nextWord;
Expand Down Expand Up @@ -1352,7 +1352,7 @@ private int numberOfRunsAdjustment() {
final long word = nextWord;

nextWord = b[i + 1];
ans += ((word >>> 63) & ~nextWord);
ans += (int)((word >>> 63) & ~nextWord);
}

final long word = nextWord;
Expand All @@ -1368,7 +1368,7 @@ private int numberOfRunsAdjustment() {
final long word = nextWord;

nextWord = bitmap.get(i + 1);
ans += ((word >>> 63) & ~nextWord);
ans += (int)((word >>> 63) & ~nextWord);
}

final long word = nextWord;
Expand Down Expand Up @@ -1438,7 +1438,7 @@ public MappeableContainer or(final MappeableArrayContainer value2) {
long aft = w | (1L << v);
bitArray[i] = aft;
if (USE_BRANCHLESS) {
answer.cardinality += (w - aft) >>> 63;
answer.cardinality += (int)((w - aft) >>> 63);
} else {
if (w != aft) {
answer.cardinality++;
Expand All @@ -1454,7 +1454,7 @@ public MappeableContainer or(final MappeableArrayContainer value2) {
long aft = w | (1L << v2);
bitArray[i] = aft;
if (USE_BRANCHLESS) {
answer.cardinality += (w - aft) >>> 63;
answer.cardinality += (int)((w - aft) >>> 63);
} else {
if (w != aft) {
answer.cardinality++;
Expand Down Expand Up @@ -1777,7 +1777,7 @@ public MappeableContainer xor(final MappeableArrayContainer value2) {
final int index = (vc) >>> 6;
long ba = bitArray[index];
// TODO: check whether a branchy version could be faster
answer.cardinality += 1 - 2 * ((ba & mask) >>> vc);
answer.cardinality += 1 - 2 * (int)((ba & mask) >>> vc);
bitArray[index] = ba ^ mask;
}
} else {
Expand All @@ -1788,7 +1788,7 @@ public MappeableContainer xor(final MappeableArrayContainer value2) {
final int index = (v2) >>> 6;
long ba = bitArray[index];
// TODO: check whether a branchy version could be faster
answer.cardinality += 1 - 2 * ((ba & mask) >>> v2);
answer.cardinality += 1 - 2 * (int)((ba & mask) >>> v2);
bitArray[index] = ba ^ mask;
}
}
Expand Down Expand Up @@ -1877,7 +1877,7 @@ public int andCardinality(final MappeableArrayContainer value2) {
int c = value2.cardinality;
for (int k = 0; k < c; ++k) {
char v = value2.content.get(k);
answer += this.bitValue(v);
answer += (int)this.bitValue(v);
}
return answer;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1048,14 +1048,14 @@ public long getLongSizeInBytes() {

// Size of Map data-structure: we consider each TreeMap entry costs 40 bytes
// http://java-performance.info/memory-consumption-of-java-data-types-2/
size += 8 + 40 * highToBitmap.size();
size += 8L + 40L * highToBitmap.size();

// Size of (boxed) Integers used as keys
size += 16 * highToBitmap.size();
size += 16L * highToBitmap.size();

// The cache impacts the size in heap
size += 8 * sortedCumulatedCardinality.length;
size += 4 * sortedHighs.length;
size += 8L * sortedCumulatedCardinality.length;
size += 4L * sortedHighs.length;

return size;
}
Expand Down
2 changes: 1 addition & 1 deletion examples/src/main/java/CompressionResults.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public static void testSuperDense() {
int howmany = 100;
int gap = universe_size / howmany;
for (int i = 1; i < howmany; i++) {
r.add(i * gap+1,((i+1) * gap));
r.add(i * gap + 1,((i + 1) * gap));
}
System.out.println("Adding "+r.getCardinality()+" values partionned by "+howmany+" gaps of 1 ...");
System.out.println("As a bitmap it would look like 01111...11011111... ");
Expand Down

0 comments on commit a03f716

Please sign in to comment.