Coverage Report

Created: 2024-07-18 11:41

src/zserio/pmr/MemoryResource.cpp
Line
Count
Source
1
#include <algorithm>
2
3
#include "zserio/pmr/MemoryResource.h"
4
#include "zserio/pmr/NewDeleteResource.h"
5
6
namespace zserio
7
{
8
namespace pmr
9
{
10
11
namespace
12
{
13
14
MemoryResource*& getCurrentDefaultResource()
15
137
{
16
    // static variable is in the function to support proper early initialization (before main)
17
137
    static MemoryResource* defaultResource = getNewDeleteResource();
18
137
    return defaultResource;
19
137
}
20
21
} // namespace
22
23
MemoryResource* getDefaultResource() noexcept
24
134
{
25
134
    return getCurrentDefaultResource();
26
134
}
27
28
MemoryResource* setDefaultResource(MemoryResource* resource) noexcept
29
3
{
30
3
    MemoryResource* defaultResource = (resource != nullptr) ? 
resource2
:
getNewDeleteResource()1
;
31
3
    std::swap(defaultResource, getCurrentDefaultResource());
32
3
    return defaultResource;
33
3
}
34
35
} // namespace pmr
36
} // namespace zserio