// Copyright 2019 Joe Drago. All rights reserved.
// SPDX-License-Identifier: BSD-2-Clause

#include "avif/internal.h"

#include <stdlib.h>

void * avifAlloc(size_t size)
{
    // malloc(0) is implementation-defined (see
    // https://en.cppreference.com/w/cpp/memory/c/malloc), so collapse the
    // zero-size case to a deterministic NULL return. Callers must either treat
    // 0 as an allocation failure or guard against it before calling.
    if (size == 0) {
        return NULL;
    }
    return malloc(size);
}

void * avifCalloc(size_t count, size_t size)
{
    return calloc(count, size);
}

void avifFree(void * p)
{
    free(p);
}
