Coverage Report

Created: 2026-02-01 10:37

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/c-toxcore/toxcore/mem.c
Line
Count
Source
1
/* SPDX-License-Identifier: GPL-3.0-or-later
2
 * Copyright © 2016-2025 The TokTok team.
3
 * Copyright © 2013 Tox project.
4
 */
5
6
#include "mem.h"
7
8
#include <string.h>
9
10
#include "ccompat.h"
11
12
void *mem_balloc(const Memory *mem, uint32_t size)
13
88.6k
{
14
88.6k
    void *const ptr = mem->funcs->malloc_callback(mem->user_data, size);
15
88.6k
    return ptr;
16
88.6k
}
17
18
void *mem_brealloc(const Memory *mem, void *ptr, uint32_t size)
19
47.5k
{
20
47.5k
    void *const new_ptr = mem->funcs->realloc_callback(mem->user_data, ptr, size);
21
47.5k
    return new_ptr;
22
47.5k
}
23
24
void *mem_alloc(const Memory *mem, uint32_t size)
25
74.3k
{
26
74.3k
    void *const ptr = mem_balloc(mem, size);
27
74.3k
    if (ptr != nullptr) {
28
74.1k
        memset(ptr, 0, size);
29
74.1k
    }
30
74.3k
    return ptr;
31
74.3k
}
32
33
void *mem_valloc(const Memory *mem, uint32_t nmemb, uint32_t size)
34
17.8k
{
35
17.8k
    const uint32_t bytes = nmemb * size;
36
37
17.8k
    if (size != 0 && bytes / size != nmemb) {
38
0
        return nullptr;
39
0
    }
40
41
17.8k
    void *const ptr = mem_alloc(mem, bytes);
42
17.8k
    return ptr;
43
17.8k
}
44
45
void *mem_vrealloc(const Memory *mem, void *ptr, uint32_t nmemb, uint32_t size)
46
45.6k
{
47
45.6k
    const uint32_t bytes = nmemb * size;
48
49
45.6k
    if (size != 0 && bytes / size != nmemb) {
50
0
        return nullptr;
51
0
    }
52
53
45.6k
    void *const new_ptr = mem_brealloc(mem, ptr, bytes);
54
45.6k
    return new_ptr;
55
45.6k
}
56
57
void mem_delete(const Memory *mem, void *ptr)
58
1.11M
{
59
1.11M
    mem->funcs->dealloc_callback(mem->user_data, ptr);
60
1.11M
}
61