Browse Source

AP_Common: Bitmask: choose builtin based on type for find_first_set

master
Peter Barker 6 years ago committed by Randy Mackay
parent
commit
e198b0c7e6
  1. 10
      libraries/AP_Common/Bitmask.h

10
libraries/AP_Common/Bitmask.h

@ -108,7 +108,15 @@ public: @@ -108,7 +108,15 @@ public:
if (bits[i] == 0) {
continue;
}
return i*32 + __builtin_ffs(bits[i]) - 1;
int fs;
if (sizeof(bits[i]) <= sizeof(int)) {
fs = __builtin_ffs(bits[i]);
} else if (sizeof(bits[i]) <= sizeof(long)) {
fs = __builtin_ffsl(bits[i]);
} else {
fs = __builtin_ffsll(bits[i]);
}
return i*32 + fs - 1;
}
return -1;
}

Loading…
Cancel
Save