Coverage Report

Created: 2023-12-13 14:58

src/zserio/pmr/MemoryResource.cpp
Line
Count
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
MemoryResource*& getCurrentDefaultResource()
16
157
{
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
157
}
21
22
} // namespace
23
24
MemoryResource* getDefaultResource() noexcept
25
154
{
26
154
    return getCurrentDefaultResource();
27
154
}
28
29
MemoryResource* setDefaultResource(MemoryResource* resource) noexcept
30
3
{
31
3
    MemoryResource* defaultResource = (resource != nullptr) ? 
resource2
:
getNewDeleteResource()1
;
32
3
    std::swap(defaultResource, getCurrentDefaultResource());
33
3
    return defaultResource;
34
3
}
35
36
} // namespace pmr
37
} // namespace zserio