-
Notifications
You must be signed in to change notification settings - Fork 296
Closed
Labels
Description
roaring64_bitmap_t* r1 = roaring64_bitmap_from(1, 2, 3, 4);
roaring64_bitmap_shrink_to_fit(r1);
if (!roaring64_bitmap_internal_validate(r1, &reason)) {
fail_msg("Validation failed: %s", reason);
}
char buf[1024];
size_t alignment_offset = 32 - (reinterpret_cast<uintptr_t>(buf) % 32);
size_t buf_size = sizeof(buf) - alignment_offset;
assert_in_range(roaring64_bitmap_frozen_size_in_bytes(r1), 0, buf_size);
size_t serialized_size =
roaring64_bitmap_frozen_serialize(r1, buf + alignment_offset);
assert_int_equal(serialized_size, roaring64_bitmap_frozen_size_in_bytes(r1));
roaring64_bitmap_t* r2 =
roaring64_bitmap_frozen_view(buf + alignment_offset, serialized_size);
if (!roaring64_bitmap_internal_validate(r2, &reason)) {
// Fails with "Validation failed: array elements not strictly increasing"
fail_msg("Validation failed: %s", reason);
}
assert_true(roaring64_bitmap_equals(r1, r2));
roaring64_bitmap_free(r1);
roaring64_bitmap_free(r2);The serialization appears to succeed, but the deserialized bitmap doesn't seem to contain the right array elements.
SLieve