Coverage Report

Created: 2026-10-24 08:16

/work/toxcore/mem.c
Line
Count
Source (jump to first uncovered line)
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
3.87M
{
14
3.87M
    void *const ptr = mem->funcs->malloc_callback(mem->user_data, size);
15
3.87M
    return ptr;
16
3.87M
}
17
18
void *mem_brealloc(const Memory *mem, void *ptr, uint32_t size)
19
77.2k
{
20
77.2k
    void *const new_ptr = mem->funcs->realloc_callback(mem->user_data, ptr, size);
21
77.2k
    return new_ptr;
22
77.2k
}
23
24
void *mem_alloc(const Memory *mem, uint32_t size)
25
909k
{
26
909k
    void *const ptr = mem_balloc(mem, size);
27
909k
    if (ptr != nullptr) {
28
909k
        memset(ptr, 0, size);
29
909k
    }
30
909k
    return ptr;
31
909k
}
32
33
void *mem_valloc(const Memory *mem, uint32_t nmemb, uint32_t size)
34
128k
{
35
128k
    const uint32_t bytes = nmemb * size;
36
37
128k
    if (size != 0 && bytes / size != nmemb) {
38
3
        return nullptr;
39
3
    }
40
41
128k
    void *const ptr = mem_alloc(mem, bytes);
42
128k
    return ptr;
43
128k
}
44
45
void *mem_vrealloc(const Memory *mem, void *ptr, uint32_t nmemb, uint32_t size)
46
74.0k
{
47
74.0k
    const uint32_t bytes = nmemb * size;
48
49
74.0k
    if (size != 0 && bytes / size != nmemb) {
50
0
        return nullptr;
51
0
    }
52
53
74.0k
    void *const new_ptr = mem_brealloc(mem, ptr, bytes);
54
74.0k
    return new_ptr;
55
74.0k
}
56
57
void mem_delete(const Memory *mem, void *ptr)
58
5.92M
{
59
5.92M
    mem->funcs->dealloc_callback(mem->user_data, ptr);
60
5.92M
}
61