Page MenuHomeFreeBSD

D33701.id100765.diff
No OneTemporary

D33701.id100765.diff

Index: sys/sys/bitset.h
===================================================================
--- sys/sys/bitset.h
+++ sys/sys/bitset.h
@@ -229,17 +229,20 @@
__size_t __i; \
long __bit, __mask; \
\
- __mask = ~0UL << ((start) % _BITSET_BITS); \
__bit = 0; \
- for (__i = __bitset_word((_s), (start)); \
- __i < __bitset_words((_s)); \
- __i++) { \
- if (((p)->__bits[__i] & __mask) != 0) { \
- __bit = ffsl((p)->__bits[__i] & __mask); \
+ __i = __bitset_word((_s), (start)); \
+ if (__i < __bitset_words((_s))) { \
+ __mask = ~0UL << ((start) % _BITSET_BITS); \
+ __mask &= (p)->__bits[__i]; \
+ while (__mask == 0 && ++__i < __bitset_words((_s))) \
+ __mask = (p)->__bits[__i]; \
+ if (__i == __bitset_words((_s)) - 1 && \
+ (_s) % _BITSET_BITS != 0) \
+ __mask &= ~(~0UL << ((_s) % _BITSET_BITS)); \
+ if (__mask) != 0) { \
+ __bit = ffsl(__mask); \
__bit += __i * _BITSET_BITS; \
- break; \
} \
- __mask = ~0UL; \
} \
__bit; \
})

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 29, 11:18 AM (9 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30523779
Default Alt Text
D33701.id100765.diff (1 KB)

Event Timeline