Skip to content

mem leak #12

@gongweixue

Description

@gongweixue
MemoryPool* MemoryPoolInit(mem_size_t maxmempoolsize, mem_size_t mempoolsize) {
    if (mempoolsize > maxmempoolsize) {
        // printf("[MemoryPool_Init] MemPool Init ERROR! Mempoolsize is too big!
        // \n");
        return NULL;
    }

    MemoryPool* mp = (MemoryPool*) malloc(sizeof(MemoryPool));
    if (!mp) return NULL;

    mp->last_id = 0;
    if (mempoolsize < maxmempoolsize) mp->auto_extend = 1;
    mp->max_mem_pool_size = maxmempoolsize;
    mp->total_mem_pool_size = mp->mem_pool_size = mempoolsize;

#ifdef _Z_MEMORYPOOL_THREAD_
    pthread_mutex_init(&mp->lock, NULL);
#endif

    char* s = (char*) malloc(sizeof(_MP_Memory) +
                             sizeof(char) * mp->mem_pool_size);
    if (!s) return NULL;                       //HERE!!!!!!!!!!!!!!!!!!!!, leads mem leak as mp is not free yet :-)
    ......
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions