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 |