diff options
author | michelou <michelou@epfl.ch> | 2007-03-08 14:58:02 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2007-03-08 14:58:02 +0000 |
commit | 8514f85695a5ec0fd179d4304b071e249fa4ab3b (patch) | |
tree | 16e75f84faddb36d51ecb6374f9a076d2b18c984 /src/library | |
parent | 60d600e1a14d3cc9c099a9c3a69d0f3b94c3544d (diff) | |
download | scala-8514f85695a5ec0fd179d4304b071e249fa4ab3b.tar.gz scala-8514f85695a5ec0fd179d4304b071e249fa4ab3b.tar.bz2 scala-8514f85695a5ec0fd179d4304b071e249fa4ab3b.zip |
added more test cases for class BitSet
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/collection/BitSet.scala | 14 | ||||
-rw-r--r-- | src/library/scala/collection/immutable/BitSet.scala | 2 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/library/scala/collection/BitSet.scala b/src/library/scala/collection/BitSet.scala index 62d970c4b7..0952e01432 100644 --- a/src/library/scala/collection/BitSet.scala +++ b/src/library/scala/collection/BitSet.scala @@ -1,7 +1,7 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** ** / __/ __// _ | / / / _ | (c) 2003-2007, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** \* */ @@ -35,8 +35,13 @@ abstract class BitSet extends Set[Int] { * @param i ... * @return <code>true</code> if bit <code>i</code> is set. */ - def contains(i: Int): Boolean = - (i < capacity) && ((arr(offset(i)) & mask(i)) != 0) + def contains(i: Int): Boolean = { + (i < capacity) && { + val j = offset(i) + (0 <= j) && (j < arr.length) && + ((arr(j) & mask(i)) != 0) + } + } def capacity: Int @@ -61,7 +66,8 @@ abstract class BitSet extends Set[Int] { def toArray: Array[Int] = { val length = memsize(capacity) val newarr = new Array[Int](length) - arraycopy(this.arr, 0, newarr, 0, length) + if (arr.length > 0) + arraycopy(this.arr, 0, newarr, 0, length) newarr } diff --git a/src/library/scala/collection/immutable/BitSet.scala b/src/library/scala/collection/immutable/BitSet.scala index 9dad0ba39e..946b75a406 100644 --- a/src/library/scala/collection/immutable/BitSet.scala +++ b/src/library/scala/collection/immutable/BitSet.scala @@ -40,7 +40,7 @@ class BitSet(val size: Int, val capacity: Int, ba: Array[Int], copy: Boolean) import compat.Platform.arraycopy protected val arr: Array[Int] = { - val ba1 = if (ba != null && ba.length > 0) ba else Array(0) + val ba1 = if (ba != null) ba else new Array[Int](0) if (copy) { val arr = new Array[Int](ba1.length) arraycopy(ba1, 0, arr, 0, ba1.length) |