| // Copyright 2019 Joe Drago. All rights reserved. |
| // SPDX-License-Identifier: BSD-2-Clause |
| void avifRawDataRealloc(avifRawData * raw, size_t newSize) |
| if (raw->size != newSize) { |
| uint8_t * old = raw->data; |
| size_t oldSize = raw->size; |
| raw->data = avifAlloc(newSize); |
| size_t bytesToCopy = (oldSize < raw->size) ? oldSize : raw->size; |
| memcpy(raw->data, old, bytesToCopy); |
| void avifRawDataSet(avifRawData * raw, const uint8_t * data, size_t len) |
| avifRawDataRealloc(raw, len); |
| memcpy(raw->data, data, len); |
| void avifRawDataFree(avifRawData * raw) |
| void avifRawDataConcat(avifRawData * dst, avifRawData ** srcs, int srcsCount) |
| for (int i = 0; i < srcsCount; ++i) { |
| totalSize += srcs[i]->size; |
| avifRawDataRealloc(dst, totalSize); |
| for (int i = 0; i < srcsCount; ++i) { |
| memcpy(p, srcs[i]->data, srcs[i]->size); |