aboutsummaryrefslogtreecommitdiff
path: root/src/NonStupidBitfield.h
diff options
context:
space:
mode:
authorRSDuck <RSDuck@users.noreply.github.com>2023-08-01 03:00:41 +0200
committerRSDuck <RSDuck@users.noreply.github.com>2023-08-01 03:00:41 +0200
commit7731f66e553a396f136953798751d5b6f84a9dd1 (patch)
treeb302debfed8bdcccfbb76cee82f57d50c0774898 /src/NonStupidBitfield.h
parent3efbf1b813e40c02e3e12488712f33bb0b63f468 (diff)
fix some UB
Diffstat (limited to 'src/NonStupidBitfield.h')
-rw-r--r--src/NonStupidBitfield.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/NonStupidBitfield.h b/src/NonStupidBitfield.h
index badefaf..a4fe7ec 100644
--- a/src/NonStupidBitfield.h
+++ b/src/NonStupidBitfield.h
@@ -144,10 +144,11 @@ struct NonStupidBitField
{
for (u32 i = 0; i < DataLength; i++)
{
- u32 idx = __builtin_ctzll(Data[i]);
- if (Data[i] && idx + i * 64 < Size)
+ if (Data[i])
{
- return {*this, i, idx, Data[i] & ~(1ULL << idx)};
+ u32 idx = __builtin_ctzll(Data[i]);
+ if (idx + i * 64 < Size)
+ return {*this, i, idx, Data[i] & ~(1ULL << idx)};
}
}
return End();