extern "C" {
inline unsigned char _BitScanForward64(unsigned long* Index, uint64_t Mask)
{
+ if (Mask == 0)
+ return 0;
#ifdef __GNUC__
*Index = __builtin_ctzll(Mask);
#else
if ((1ULL << i) & Mask)
*Index = i;
#endif
- return (Mask != 0);
+ return 1;
}
inline unsigned char _BitScanReverse64(unsigned long* Index, uint64_t Mask)
{
+ if (Mask == 0)
+ return 0;
#ifdef __GNUC__
*Index = 63 - __builtin_clzll(Mask);
#else
if ((1ULL << i) & Mask)
*Index = i;
#endif
- return (Mask != 0);
+ return 1;
}
}
#endif
inline unsigned char _BitScanForward64(unsigned long* Index, uint64_t Mask)
{
+ if (Mask == 0)
+ return 0;
*Index = __builtin_ctzll(Mask);
- return (Mask != 0);
+ return 1;
}
inline unsigned char _BitScanForward(unsigned long* Index, uint32_t Mask)
{
+ if (Mask == 0)
+ return 0;
*Index = __builtin_ctz(Mask);
- return (Mask != 0);
+ return 1;
}
inline unsigned char _BitScanReverse64(unsigned long* Index, uint64_t Mask)
{
+ if (Mask == 0)
+ return 0;
*Index = 63 - __builtin_clzll(Mask);
- return (Mask != 0);
+ return 1;
}
inline unsigned char _BitScanReverse(unsigned long* Index, uint32_t Mask)
{
+ if (Mask == 0)
+ return 0;
*Index = 31 - __builtin_clz(Mask);
- return (Mask != 0);
+ return 1;
}
inline void* AlignedMalloc(size_t size, size_t alignment)