VOID WINAPI RtlSetAllBits(PRTL_BITMAP lpBits)
{
TRACE("(%p)\n", lpBits);
- memset(lpBits->BitMapBuffer, 0xff, ((lpBits->SizeOfBitMap + 31) & 0xffffffe0) >> 3);
+ memset(lpBits->BitMapBuffer, 0xff, ((lpBits->SizeOfBitMap + 31) & ~31) >> 3);
}
/*************************************************************************
VOID WINAPI RtlClearAllBits(PRTL_BITMAP lpBits)
{
TRACE("(%p)\n", lpBits);
- memset(lpBits->BitMapBuffer, 0, ((lpBits->SizeOfBitMap + 31) & 0xffffffe0) >> 3);
+ memset(lpBits->BitMapBuffer, 0, ((lpBits->SizeOfBitMap + 31) & ~31) >> 3);
}
/*************************************************************************
TRACE("(%p,%ld,%ld)\n", lpBits, ulStart, ulCount);
- if (!lpBits || !ulCount || ulStart + ulCount > lpBits->SizeOfBitMap)
+ if (!lpBits || !ulCount ||
+ ulStart >= lpBits->SizeOfBitMap ||
+ ulCount > lpBits->SizeOfBitMap - ulStart)
return;
lpOut = lpBits->BitMapBuffer + (ulStart >> 3u);
TRACE("(%p,%ld,%ld)\n", lpBits, ulStart, ulCount);
- if (!lpBits || !ulCount || ulStart + ulCount > lpBits->SizeOfBitMap)
+ if (!lpBits || !ulCount ||
+ ulStart >= lpBits->SizeOfBitMap ||
+ ulCount > lpBits->SizeOfBitMap - ulStart)
return;
lpOut = lpBits->BitMapBuffer + (ulStart >> 3u);
TRACE("(%p,%ld,%ld)\n", lpBits, ulStart, ulCount);
- if (!lpBits || !ulCount || ulStart + ulCount > lpBits->SizeOfBitMap)
+ if (!lpBits || !ulCount ||
+ ulStart >= lpBits->SizeOfBitMap ||
+ ulCount > lpBits->SizeOfBitMap - ulStart)
return FALSE;
lpOut = lpBits->BitMapBuffer + (ulStart >> 3u);
TRACE("(%p,%ld,%ld)\n", lpBits, ulStart, ulCount);
- if (!lpBits || !ulCount || ulStart + ulCount > lpBits->SizeOfBitMap)
+ if (!lpBits || !ulCount ||
+ ulStart >= lpBits->SizeOfBitMap ||
+ ulCount > lpBits->SizeOfBitMap - ulStart)
return FALSE;
lpOut = lpBits->BitMapBuffer + (ulStart >> 3u);
TRACE("(%p,%ld,%ld)\n", lpBits, ulCount, ulHint);
if (!lpBits || !ulCount || ulCount > lpBits->SizeOfBitMap)
- return -1u;
+ return ~0UL;
ulEnd = lpBits->SizeOfBitMap;
else
ulPos++;
}
- return -1u;
+ return ~0UL;
}
/*************************************************************************
TRACE("(%p,%ld,%ld)\n", lpBits, ulCount, ulHint);
if (!lpBits || !ulCount || ulCount > lpBits->SizeOfBitMap)
- return -1u;
+ return ~0UL;
ulEnd = lpBits->SizeOfBitMap;
else
ulPos++;
}
- return -1u;
+ return ~0UL;
}
/*************************************************************************
TRACE("(%p,%ld,%ld)\n", lpBits, ulCount, ulHint);
ulPos = RtlFindSetBits(lpBits, ulCount, ulHint);
- if (ulPos != -1u)
+ if (ulPos != ~0UL)
RtlClearBits(lpBits, ulPos, ulCount);
return ulPos;
}
TRACE("(%p,%ld,%ld)\n", lpBits, ulCount, ulHint);
ulPos = RtlFindClearBits(lpBits, ulCount, ulHint);
- if (ulPos != -1u)
+ if (ulPos != ~0UL)
RtlSetBits(lpBits, ulPos, ulCount);
return ulPos;
}
ulStart = (ulStart & ~7u) + 8;
lpOut++;
if (ulStart >= lpBits->SizeOfBitMap)
- return -1u;
+ return ~0UL;
}
/* Count blocks of 8 set bits */
ulStart = (ulStart & ~7u) + 8;
lpOut++;
if (ulStart >= lpBits->SizeOfBitMap)
- return -1u;
+ return ~0UL;
}
/* Count blocks of 8 clear bits */
TRACE("(%p,%p,%ld,%d)\n", lpBits, lpSeries, ulCount, bLongest);
if (!ulCount)
- return -1u;
+ return ~0UL;
while (ulPos < lpBits->SizeOfBitMap)
{
/* Find next set/clear run */
ULONG ulSize, ulNextPos = fn(lpBits, ulPos, &ulSize);
- if (ulNextPos == -1u)
+ if (ulNextPos == ~0UL)
break;
if (bLongest && ulRuns == ulCount)