- libbson 1.13.1 »
- API Reference »
- bson_t

# bson_destroy_with_steal()

## Synopsis

    uint8_t *
    bson_destroy_with_steal (bson_t *bson, bool steal, uint32_t *length);

## Parameters

- `bson`: A bson_t.
- `steal`: A bool indicating if the underlying buffer should be stolen.
- `length`: A location for storing the resulting buffer length.

## Description

The bson_destroy_with_steal() function shall destroy a bson_t structure but return the underlying buffer instead of freeing it. If steal is false, this is equivalent to calling bson_destroy(). It is a programming error to call this function on a bson_t that is not a top-level bson_t, such as those initialized with bson_append_document_begin(), bson_append_array_begin(), and bson_writer_begin().

See also bson_steal(), a higher-level function that efficiently transfers the contents of one bson_t to another.

## Returns

bson_destroy_with_steal() shall return a buffer containing the contents of the bson_t if `steal` is non-zero. This should be freed with bson_free() when no longer in use. `length` will be set to the length of the bson document if non-NULL.

Created using Sphinx 1.8.3, based on Sphinx Readable Theme.