[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 50/59] libxl: Fix Bitmap.Max(), make Test() / Clear() more robust
From: George Dunlap <george.dunlap@xxxxxxxxxx> Bitmap.Max() should return the largest currently addressable bit; at the moment it returns the total number of bits (which is one greater than the largest addressable bit). This also implicitly fixes a bug in Test() and Clear() which would cause an out-of-range error when testing a bit equal to Max(). While we're here, allow Test() and Clear() to handle null bitmaps, the same way Set() can. Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx> --- libxl.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libxl.go b/libxl.go index dfe4f40..bfcaf0d 100644 --- a/libxl.go +++ b/libxl.go @@ -270,7 +270,7 @@ func bitmapGotoC(gbm Bitmap) (cbm C.libxl_bitmap) { func (bm *Bitmap) Test(bit int) (bool) { ubit := uint(bit) - if (bit > bm.Max()) { + if (bit > bm.Max() || bm.bitmap == nil) { return false } @@ -294,7 +294,7 @@ func (bm *Bitmap) SetRange(start int, end int) { func (bm *Bitmap) Clear(bit int) { ubit := uint(bit) - if (bit > bm.Max()) { + if (bit > bm.Max() || bm.bitmap == nil) { return } @@ -308,7 +308,7 @@ func (bm *Bitmap) ClearRange(start int, end int) { } func (bm *Bitmap) Max() (int) { - return len(bm.bitmap) * 8 + return len(bm.bitmap) * 8 - 1 } func (bm *Bitmap) IsEmpty() (bool) { -- 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |