Coverage Report

Created: 2026-02-06 10:54

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-2026 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
90.1k
{
14
90.1k
    void *const ptr = mem->funcs->malloc_callback(mem->user_data, size);
15
90.1k
    return ptr;
16
90.1k
}
17
18
void *mem_brealloc(const Memory *mem, void *ptr, uint32_t size)
19
46.9k
{
20
46.9k
    void *const new_ptr = mem->funcs->realloc_callback(mem->user_data, ptr, size);
21
46.9k
    return new_ptr;
22
46.9k
}
23
24
void *mem_alloc(const Memory *mem, uint32_t size)
25
75.7k
{
26
75.7k
    void *const ptr = mem_balloc(mem, size);
27
75.7k
    if (ptr != nullptr) {
28
75.5k
        memset(ptr, 0, size);
29
75.5k
    }
30
75.7k
    return ptr;
31
75.7k
}
32
33
void *mem_valloc(const Memory *mem, uint32_t nmemb, uint32_t size)
34
18.1k
{
35
18.1k
    const uint32_t bytes = nmemb * size;
36
37
18.1k
    if (size != 0 && bytes / size != nmemb) {
38
0
        return nullptr;
39
0
    }
40
41
18.1k
    void *const ptr = mem_alloc(mem, bytes);
42
18.1k
    return ptr;
43
18.1k
}
44
45
void *mem_vrealloc(const Memory *mem, void *ptr, uint32_t nmemb, uint32_t size)
46
44.9k
{
47
44.9k
    const uint32_t bytes = nmemb * size;
48
49
44.9k
    if (size != 0 && bytes / size != nmemb) {
50
0
        return nullptr;
51
0
    }
52
53
44.9k
    void *const new_ptr = mem_brealloc(mem, ptr, bytes);
54
44.9k
    return new_ptr;
55
44.9k
}
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