// Copyright 2019 Joe Drago. All rights reserved. // SPDX-License-Identifier: BSD-2-Clause #include "avif/avif.h" #include void avifRWDataRealloc(avifRWData * raw, size_t newSize) { if (raw->size != newSize) { uint8_t * old = raw->data; size_t oldSize = raw->size; raw->data = avifAlloc(newSize); raw->size = newSize; if (oldSize) { size_t bytesToCopy = (oldSize < raw->size) ? oldSize : raw->size; memcpy(raw->data, old, bytesToCopy); avifFree(old); } } } void avifRWDataSet(avifRWData * raw, const uint8_t * data, size_t len) { if (len) { avifRWDataRealloc(raw, len); memcpy(raw->data, data, len); } else { avifRWDataFree(raw); } } void avifRWDataFree(avifRWData * raw) { avifFree(raw->data); raw->data = NULL; raw->size = 0; }