On Mon, Dec 01, 2014 at 03:30:10PM -0500, John Snow wrote:
> +HBitmap *hbitmap_copy(const HBitmap *bitmap)
> +{
> +    int i;
> +    uint64_t size;
> +    HBitmap *hb = g_memdup(bitmap, sizeof(HBitmap));
> +
> +    size = bitmap->size;
> +    for (i = HBITMAP_LEVELS - 1; i >= 0; i--) {
> +        size = MAX((size + BITS_PER_LONG - 1) >> BITS_PER_LEVEL, 1);
> +        hb->levels[i] = g_memdup(bitmap->levels[i],
> +                                 size * sizeof(unsigned long));
> +    }
> +
> +    return hb;
> +}

It would be handy to put a comment in struct HBitmap warning people that
hbitmap_copy() must be kept in sync when new pointer fields are added.

Attachment: pgpo8xpfV7Cz_.pgp
Description: PGP signature

Reply via email to