]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virbitmap: Allow NULL bitmap in functions returning index of a set/clear bit
authorPeter Krempa <pkrempa@redhat.com>
Wed, 9 Nov 2022 15:54:56 +0000 (16:54 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 6 Feb 2023 12:34:06 +0000 (13:34 +0100)
virBitmapNextSetBit/virBitmapLastSetBit/virBitmapNextClearBit can be
used for iteration of a bitmap. Allow NULL bitmap so that iteration of a
bitmap can be simplified in certain cases.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/util/virbitmap.c
src/util/virbitmap.h

index bdcbd0aece5f214e491625d947861be561b108d9..48ffed0a0fec8af5ff9c26ec8b0fcc05544e8577 100644 (file)
@@ -824,6 +824,9 @@ virBitmapNextSetBit(virBitmap *bitmap,
     size_t nb;
     unsigned long bits;
 
+    if (!bitmap)
+        return -1;
+
     if (pos < 0)
         pos = -1;
 
@@ -863,6 +866,9 @@ virBitmapLastSetBit(virBitmap *bitmap)
     ssize_t sz;
     unsigned long bits;
 
+    if (!bitmap)
+        return -1;
+
     /* If bitmap is empty then there is no set bit */
     if (bitmap->map_len == 0)
         return -1;
@@ -916,6 +922,9 @@ virBitmapNextClearBit(virBitmap *bitmap,
     size_t nb;
     unsigned long bits;
 
+    if (!bitmap)
+        return -1;
+
     if (pos < 0)
         pos = -1;
 
index dbd88c9bb529ec77137ac88351d9f1c175f6e3de..a9cf309884b61b9f4a622547c48ef63bf65d5cfd 100644 (file)
@@ -111,14 +111,11 @@ bool virBitmapIsAllSet(virBitmap *bitmap)
 bool virBitmapIsAllClear(virBitmap *bitmap)
     ATTRIBUTE_NONNULL(1);
 
-ssize_t virBitmapNextSetBit(virBitmap *bitmap, ssize_t pos)
-    ATTRIBUTE_NONNULL(1);
+ssize_t virBitmapNextSetBit(virBitmap *bitmap, ssize_t pos);
 
-ssize_t virBitmapLastSetBit(virBitmap *bitmap)
-    ATTRIBUTE_NONNULL(1);
+ssize_t virBitmapLastSetBit(virBitmap *bitmap);
 
-ssize_t virBitmapNextClearBit(virBitmap *bitmap, ssize_t pos)
-    ATTRIBUTE_NONNULL(1);
+ssize_t virBitmapNextClearBit(virBitmap *bitmap, ssize_t pos);
 
 size_t virBitmapCountBits(virBitmap *bitmap)
     ATTRIBUTE_NONNULL(1);