diff options
author | Behdad Esfahbod <behdad@google.com> | 2014-07-10 17:48:37 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@google.com> | 2014-07-10 17:48:37 -0400 |
commit | 329ae0639e332fa0ca85049f738776083b6dbafc (patch) | |
tree | bd5796569fde4c971adb930668b813931d3627aa | |
parent | f8134eff0007533f213925d3e8e37d213b3afdee (diff) | |
download | android_frameworks_minikin-329ae0639e332fa0ca85049f738776083b6dbafc.tar.gz android_frameworks_minikin-329ae0639e332fa0ca85049f738776083b6dbafc.tar.bz2 android_frameworks_minikin-329ae0639e332fa0ca85049f738776083b6dbafc.zip |
Use __builtin_clzl if element is long
Change-Id: I50a112739847fa826088854f6d172a188ff4cfb3
-rw-r--r-- | libs/minikin/SparseBitSet.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/minikin/SparseBitSet.cpp b/libs/minikin/SparseBitSet.cpp index e0b3c1d..7acb7ba 100644 --- a/libs/minikin/SparseBitSet.cpp +++ b/libs/minikin/SparseBitSet.cpp @@ -105,9 +105,9 @@ void SparseBitSet::initFromRanges(const uint32_t* ranges, size_t nRanges) { } } -// Note: this implementation depends on GCC builtin, and also assumes 32-bit elements. int SparseBitSet::CountLeadingZeros(element x) { - return __builtin_clz(x); + // Note: GCC / clang builtin + return sizeof(element) <= sizeof(int) ? __builtin_clz(x) : __builtin_clzl(x); } uint32_t SparseBitSet::nextSetBit(uint32_t fromIndex) const { |