コード例 #1
0
ファイル: memory.cpp プロジェクト: pereckerdal/relacy
bool memory_mgr::free(void* pp, bool defer)
{
    if (0 == pp)
        return true;

    rl_map<void*, size_t>::iterator iter = allocs_.find(pp);
    if (allocs_.end() == iter)
        return false;

    allocs_.erase(iter);

    void* p = (char*)pp - alignment;
    size_t size = *(size_t*)p;

    if (defer)
    {
        deferred_free_[deferred_index_ % deferred_count] = p;
        deferred_free_size_[deferred_index_ % deferred_count] = size;
        deferred_index_ += 1;
        p = deferred_free_[deferred_index_ % deferred_count];
        size = deferred_free_size_[deferred_index_ % deferred_count];
        if (p)
            free_impl(p, size);
    }
    else
    {
        free_impl(p, size);
    }
    return true;
}
コード例 #2
0
ファイル: replace_malloc.c プロジェクト: franzks/gecko-dev
static void
zone_free(malloc_zone_t *zone, void *ptr)
{
  if (malloc_usable_size_impl(ptr)) {
    free_impl(ptr);
    return;
  }
  free(ptr);
}
コード例 #3
0
ファイル: replace_malloc.c プロジェクト: franzks/gecko-dev
static void
zone_free_definite_size(malloc_zone_t *zone, void *ptr, size_t size)
{
  size_t current_size = malloc_usable_size_impl(ptr);
  if (current_size) {
    MOZ_ASSERT(current_size == size);
    free_impl(ptr);
    return;
  }
  free(ptr);
}
コード例 #4
0
ファイル: mem.c プロジェクト: 2007750219/openssl
void CRYPTO_free(void *str, const char *file, int line)
{
    if (free_impl != NULL && free_impl != &CRYPTO_free) {
        free_impl(str, file, line);
        return;
    }

#ifndef OPENSSL_NO_CRYPTO_MDEBUG
    if (call_malloc_debug) {
        CRYPTO_mem_debug_free(str, 0, file, line);
        free(str);
        CRYPTO_mem_debug_free(str, 1, file, line);
    } else {
        free(str);
    }
#else
    free(str);
#endif
}
コード例 #5
0
/* operator delete[](void*, std::nothrow_t const&) */
MOZ_MEMORY_API void
mozmem_malloc_impl(_ZdaPvRKSt9nothrow_t)(void *ptr)
{
  free_impl(ptr);
}
コード例 #6
0
/* operator delete[](void*) */
MOZ_MEMORY_API void
mozmem_malloc_impl(_ZdaPv)(void *ptr)
{
  free_impl(ptr);
}