aboutsummaryrefslogtreecommitdiff
path: root/src/NonStupidBitfield.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/NonStupidBitfield.h')
-rw-r--r--src/NonStupidBitfield.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/NonStupidBitfield.h b/src/NonStupidBitfield.h
index 124ba76..22e13a9 100644
--- a/src/NonStupidBitfield.h
+++ b/src/NonStupidBitfield.h
@@ -51,9 +51,14 @@ struct NonStupidBitField
template <typename T>
void Next()
{
- while (RemainingBits == 0 && DataIdx < DataLength)
+ if (DataIdx >= DataLength)
+ return;
+
+ while (RemainingBits == 0)
{
DataIdx += sizeof(T);
+ if (DataIdx >= DataLength)
+ return;
RemainingBits = *(T*)&BitField.Data[DataIdx];
}