Revision 1b095244

b/include/qemu/hbitmap.h
128 128
 * hbitmap_iter_init:
129 129
 * @hbi: HBitmapIter to initialize.
130 130
 * @hb: HBitmap to iterate on.
131
 * @first: First bit to visit (0-based).
131
 * @first: First bit to visit (0-based, must be strictly less than the
132
 * size of the bitmap).
132 133
 *
133 134
 * Set up @hbi to iterate on the HBitmap @hb.  hbitmap_iter_next will return
134 135
 * the lowest-numbered bit that is set in @hb, starting at @first.
b/tests/test-hbitmap.c
86 86
    data->bits = g_new0(unsigned long, n);
87 87
    data->size = size;
88 88
    data->granularity = granularity;
89
    hbitmap_test_check(data, 0);
89
    if (size) {
90
        hbitmap_test_check(data, 0);
91
    }
90 92
}
91 93

  
92 94
static void hbitmap_test_teardown(TestHBitmapData *data,
......
198 200
    hbitmap_test_check(data, L3 / 2);
199 201
}
200 202

  
201
static void test_hbitmap_iter_past(TestHBitmapData *data,
202
                                    const void *unused)
203
{
204
    hbitmap_test_init(data, L3, 0);
205
    hbitmap_test_set(data, 0, L3);
206
    hbitmap_test_check(data, L3);
207
}
208

  
209 203
static void test_hbitmap_set_all(TestHBitmapData *data,
210 204
                                 const void *unused)
211 205
{
......
388 382
    hbitmap_test_add("/hbitmap/size/0", test_hbitmap_zero);
389 383
    hbitmap_test_add("/hbitmap/size/unaligned", test_hbitmap_unaligned);
390 384
    hbitmap_test_add("/hbitmap/iter/empty", test_hbitmap_iter_empty);
391
    hbitmap_test_add("/hbitmap/iter/past", test_hbitmap_iter_past);
392 385
    hbitmap_test_add("/hbitmap/iter/partial", test_hbitmap_iter_partial);
393 386
    hbitmap_test_add("/hbitmap/iter/granularity", test_hbitmap_iter_granularity);
394 387
    hbitmap_test_add("/hbitmap/get/all", test_hbitmap_get_all);
b/util/hbitmap.c
147 147

  
148 148
    hbi->hb = hb;
149 149
    pos = first >> hb->granularity;
150
    assert(pos < hb->size);
150 151
    hbi->pos = pos >> BITS_PER_LEVEL;
151 152
    hbi->granularity = hb->granularity;
152 153

  

Also available in: Unified diff