mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-26 22:53:16 -04:00
putil: fix crash in BitArray::has_any_of()
This commit is contained in:
parent
446c01c796
commit
a9b158192f
@ -114,6 +114,11 @@ has_any_of(int low_bit, int size) const {
|
||||
++w;
|
||||
|
||||
while (size > 0) {
|
||||
if ((size_t)w >= get_num_words()) {
|
||||
// Now we're up to the highest bits.
|
||||
return (_highest_bits != 0);
|
||||
}
|
||||
|
||||
if (size <= num_bits_per_word) {
|
||||
// The remainder fits within one word of the array.
|
||||
return _array[w].has_any_of(0, size);
|
||||
@ -125,11 +130,6 @@ has_any_of(int low_bit, int size) const {
|
||||
}
|
||||
size -= num_bits_per_word;
|
||||
++w;
|
||||
|
||||
if (w >= (int)get_num_words()) {
|
||||
// Now we're up to the highest bits.
|
||||
return (_highest_bits != 0);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
18
tests/putil/test_bitarray.py
Normal file
18
tests/putil/test_bitarray.py
Normal file
@ -0,0 +1,18 @@
|
||||
from panda3d.core import BitArray
|
||||
|
||||
|
||||
def test_bitarray_has_any_of():
|
||||
ba = BitArray()
|
||||
assert not ba.has_any_of(100, 200)
|
||||
|
||||
ba = BitArray()
|
||||
ba.set_range(0, 53)
|
||||
assert ba.has_any_of(52, 1)
|
||||
assert ba.has_any_of(52, 100)
|
||||
assert not ba.has_any_of(53, 45)
|
||||
|
||||
ba = BitArray()
|
||||
ba.invert_in_place()
|
||||
assert ba.has_any_of(0, 1)
|
||||
assert ba.has_any_of(53, 45)
|
||||
assert ba.has_any_of(0, 100)
|
Loading…
x
Reference in New Issue
Block a user