Browse Source

AP_Common: added first_set() method to Bitmask

master
Andrew Tridgell 7 years ago committed by Randy Mackay
parent
commit
0fcb22afde
  1. 15
      libraries/AP_Common/Bitmask.h

15
libraries/AP_Common/Bitmask.h

@ -102,13 +102,24 @@ public:
return sum; return sum;
} }
// return first bit set, or -1 if none set
int16_t first_set() const {
for (uint16_t i=0; i<numwords; i++) {
if (bits[i] == 0) {
continue;
}
return i*32 + __builtin_ffs(bits[i]) - 1;
}
return -1;
}
// return number of bits available // return number of bits available
uint16_t size() const { uint16_t size() const {
return numbits; return numbits;
} }
private: private:
uint16_t numbits; const uint16_t numbits;
uint16_t numwords; const uint16_t numwords;
uint32_t *bits; uint32_t *bits;
}; };

Loading…
Cancel
Save