mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-05-31 06:48:22 -04:00
kern: avoid constexpr init for many objects (avoids unnecessary memory clear) (#1668)
This commit is contained in:
parent
20716cb3de
commit
36e4914be8
77 changed files with 489 additions and 339 deletions
|
@ -28,6 +28,7 @@
|
|||
#pragma once
|
||||
#include <vapours/common.hpp>
|
||||
#include <vapours/assert.hpp>
|
||||
#include <vapours/util/util_type_traits.hpp>
|
||||
|
||||
#pragma GCC push_options
|
||||
#pragma GCC optimize ("-O3")
|
||||
|
@ -57,11 +58,14 @@ namespace ams::freebsd {
|
|||
template<typename T>
|
||||
class RBEntry {
|
||||
private:
|
||||
T *m_rbe_left = nullptr;
|
||||
T *m_rbe_right = nullptr;
|
||||
T *m_rbe_parent = nullptr;
|
||||
RBColor m_rbe_color = RBColor::RB_BLACK;
|
||||
T *m_rbe_left ;
|
||||
T *m_rbe_right;
|
||||
T *m_rbe_parent;
|
||||
RBColor m_rbe_color;
|
||||
public:
|
||||
constexpr ALWAYS_INLINE explicit RBEntry(util::ConstantInitializeTag) : m_rbe_left(nullptr), m_rbe_right(nullptr), m_rbe_parent(nullptr), m_rbe_color(RBColor::RB_BLACK) { /* ... */ }
|
||||
explicit ALWAYS_INLINE RBEntry() { /* ... */ }
|
||||
|
||||
[[nodiscard]] constexpr ALWAYS_INLINE T *Left() { return m_rbe_left; }
|
||||
[[nodiscard]] constexpr ALWAYS_INLINE const T *Left() const { return m_rbe_left; }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue