From e26d7fb75ee5cce2f26e803dfe4abb00a3330e3e Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 14 Jun 2012 20:44:05 +0400 Subject: [PATCH] Added method converting int to BitSet to BitSetUtils. --- .../jet/lang/resolve/java/kt/JetClassAnnotation.java | 8 ++------ .../jet/lang/resolve/java/kt/JetMethodAnnotation.java | 6 ++---- .../util/src/org/jetbrains/jet/utils/BitSetUtils.java | 10 ++++++++++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetClassAnnotation.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetClassAnnotation.java index bbb73583374..4304702e760 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetClassAnnotation.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetClassAnnotation.java @@ -21,6 +21,7 @@ import com.intellij.psi.PsiClass; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.resolve.java.JvmStdlibNames; +import org.jetbrains.jet.utils.BitSetUtils; import java.util.BitSet; @@ -45,12 +46,7 @@ public class JetClassAnnotation extends PsiAnnotationWrapper { private BitSet flags = null; public BitSet flags() { if (flags == null) { - int flagsValue = getIntAttribute(JvmStdlibNames.JET_CLASS_FLAGS_FIELD, JvmStdlibNames.FLAGS_DEFAULT_VALUE); - - flags = new BitSet(JvmStdlibNames.FLAGS_BITS); - for (int bit = 0; bit < JvmStdlibNames.FLAGS_BITS; bit++) { - flags.set(bit, (flagsValue & (1 << bit)) != 0); - } + flags = BitSetUtils.toBitSet(getIntAttribute(JvmStdlibNames.JET_CLASS_FLAGS_FIELD, JvmStdlibNames.FLAGS_DEFAULT_VALUE)); } return flags; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetMethodAnnotation.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetMethodAnnotation.java index fe6ef3da155..3b8f30a550a 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetMethodAnnotation.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kt/JetMethodAnnotation.java @@ -21,6 +21,7 @@ import com.intellij.psi.PsiMethod; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.resolve.java.JvmStdlibNames; +import org.jetbrains.jet.utils.BitSetUtils; import java.util.BitSet; @@ -42,10 +43,7 @@ public class JetMethodAnnotation extends PsiAnnotationWrapper { flagsValue = getIntAttribute(JvmStdlibNames.JET_METHOD_KIND_FIELD, JvmStdlibNames.FLAGS_DEFAULT_VALUE); } - flags = new BitSet(JvmStdlibNames.FLAGS_BITS); - for (int bit = 0; bit < JvmStdlibNames.FLAGS_BITS; bit++) { - flags.set(bit, (flagsValue & (1 << bit)) != 0); - } + flags = BitSetUtils.toBitSet(flagsValue); } return flags; } diff --git a/compiler/util/src/org/jetbrains/jet/utils/BitSetUtils.java b/compiler/util/src/org/jetbrains/jet/utils/BitSetUtils.java index 8bfda1fc4e0..1c4a47c2a7b 100644 --- a/compiler/util/src/org/jetbrains/jet/utils/BitSetUtils.java +++ b/compiler/util/src/org/jetbrains/jet/utils/BitSetUtils.java @@ -35,4 +35,14 @@ public class BitSetUtils { } return intValue; } + + public static BitSet toBitSet(int value) { + BitSet bitSet = new BitSet(); + int bit = 0; + while (value > 0) { + bitSet.set(bit++, value % 2 == 1); + value >>= 1; + } + return bitSet; + } }