Skip to content

Commit 332dbb5

Browse files
committed
Streamline default value management for KotlinFeatures.
- Changed from floating-point arithmetic to bitwise arithmetic - Fixed loop on values to be done only once
1 parent fdc519b commit 332dbb5

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/main/kotlin/com/fasterxml/jackson/module/kotlin/KotlinFeature.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ enum class KotlinFeature(private val enabledByDefault: Boolean) {
4444
*/
4545
StrictNullChecks(enabledByDefault = false);
4646

47-
internal val bitSet: BitSet = 2.0.pow(ordinal).toInt().toBitSet()
47+
internal val bitSet: BitSet = (1 shl ordinal).toBitSet()
4848

4949
companion object {
5050
internal val defaults
51-
get() = 0.toBitSet().apply {
52-
values().filter { it.enabledByDefault }.forEach { or(it.bitSet) }
51+
get() = values().fold(BitSet(Int.SIZE_BITS)) { acc, cur ->
52+
acc.apply { if (cur.enabledByDefault) this.or(cur.bitSet) }
5353
}
5454
}
5555
}

0 commit comments

Comments
 (0)