Ejemplo n.º 1
0
void DefaultAllocator::Free(void *p)
{
    untrackAlloc(p);
    OVR_ALLOC_BENCHMARK_START();
#ifdef OVR_USE_JEMALLOC
    je_free(p);
#else // OVR_USE_JEMALLOC
    free(p);
#endif // OVR_USE_JEMALLOC
    OVR_ALLOC_BENCHMARK_END();
}
void* DefaultAllocator::Realloc(void* p, size_t newSize)
{
    void* newP = realloc(p, newSize);

    // This used to more efficiently check if (newp != p) but static analyzers were erroneously flagging this.
    if (newP) // Need to check newP because realloc doesn't free p unless it returns a valid newP.
    {
#if !defined(__clang_analyzer__)  // The analyzer complains that we are using p after it was freed.
        untrackAlloc(p);
#endif
    }
    trackAlloc(newP, newSize);
    return newP;
}
void DefaultAllocator::Free(void *p)
{
    untrackAlloc(p);
    return free(p);
}