GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: src/zserio/pmr/MemoryResource.cpp Lines: 9 9 100.0 %
Date: 2023-12-13 14:51:09 Branches: 5 6 83.3 %

Line Branch Exec Source
1
#include "zserio/pmr/MemoryResource.h"
2
3
#include "zserio/pmr/NewDeleteResource.h"
4
5
#include <algorithm>
6
7
namespace zserio
8
{
9
namespace pmr
10
{
11
12
namespace
13
{
14
15
157
MemoryResource*& getCurrentDefaultResource()
16
{
17
    // static variable is in the function to support proper early initialization (before main)
18

157
    static MemoryResource* defaultResource = getNewDeleteResource();
19
157
    return defaultResource;
20
}
21
22
} // namespace
23
24
154
MemoryResource* getDefaultResource() noexcept
25
{
26
154
    return getCurrentDefaultResource();
27
}
28
29
3
MemoryResource* setDefaultResource(MemoryResource* resource) noexcept
30
{
31
3
    MemoryResource* defaultResource = (resource != nullptr) ? resource : getNewDeleteResource();
32
3
    std::swap(defaultResource, getCurrentDefaultResource());
33
3
    return defaultResource;
34
}
35
36
} // namespace pmr
37
} // namespace zserio