/* Return value: CAIRO_STATUS_SUCCESS if successful or CAIRO_STATUS_NO_MEMORY if insufficient memory is available for the operation.  */
cairo_status_t _cairo_array_append_multiple(cairo_array_t *array, const void *elements, unsigned int num_elements)
/* Return value: CAIRO_STATUS_SUCCESS if successful or CAIRO_STATUS_NO_MEMORY if insufficient memory is available for the operation.  */
cairo_status_t _cairo_array_append_multiple(cairo_array_t *array, const void *elements, unsigned int num_elements)
{
    cairo_status_t status;
    void *dest;
    status = _cairo_array_allocate (array, num_elements, &dest);
    if (unlikely (status))
	return status;
    memcpy (dest, elements, num_elements * array->element_size);
    return CAIRO_STATUS_SUCCESS;
}