67 memcpy(content, handle, length);
110 if (new_chunks_data == NULL) {
114 data->
chunks = new_chunks_data;
struct cbor_item_t cbor_item_t
The item handle.
bool cbor_bytestring_is_definite(const cbor_item_t *item)
Is the byte string definite?
union cbor_item_metadata metadata
Discriminated by type.
cbor_item_t * cbor_new_indefinite_bytestring()
Creates a new indefinite byte string.
void * _cbor_realloc_multiple(void *pointer, size_t item_size, size_t item_count)
Overflow-proof contiguous array reallocation.
size_t cbor_bytestring_chunk_count(const cbor_item_t *item)
Get the number of chunks this string consist of.
cbor_item_t * cbor_new_definite_bytestring()
Creates a new definite byte string.
bool cbor_isa_bytestring(const cbor_item_t *item)
Does the item have the appropriate major type?
#define CBOR_RESTRICT_POINTER
cbor_item_t ** cbor_bytestring_chunks_handle(const cbor_item_t *item)
Get the handle to the array of chunks.
bool cbor_bytestring_is_indefinite(const cbor_item_t *item)
Is the byte string indefinite?
size_t refcount
Reference count - initialize to 0.
unsigned char * cbor_mutable_data
bool cbor_bytestring_add_chunk(cbor_item_t *item, cbor_item_t *chunk)
Appends a chunk to the bytestring.
cbor_item_t * cbor_incref(cbor_item_t *item)
Increases the reference count by one.
Defines cbor_item_t::data structure for indefinite strings and bytestrings.
const unsigned char * cbor_data
void cbor_bytestring_set_handle(cbor_item_t *item, cbor_mutable_data CBOR_RESTRICT_POINTER data, size_t length)
Set the handle to the binary data.
unsigned char * cbor_bytestring_handle(const cbor_item_t *item)
Get the handle to the binary data.
unsigned char * data
Raw data block - interpretation depends on metadata.
bool _cbor_safe_to_multiply(size_t a, size_t b)
Can a and b be multiplied without overflowing size_t?
cbor_item_t * cbor_build_bytestring(cbor_data handle, size_t length)
Creates a new byte string and initializes it.
size_t cbor_bytestring_length(const cbor_item_t *item)
Returns the length of the binary data.