diff options
author | Lenny Maiorani <lenny@colorado.edu> | 2021-05-19 08:35:09 -0600 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2021-05-19 21:21:47 +0100 |
commit | 57513271956942bbe51b39afeb4bb445aaff21fb (patch) | |
tree | 38fb1fc2a13b8f8d7538a214195bee6936d2da24 /Kernel/VM | |
parent | 2b64d163cd9f25bd2951bf8721ef9325decb1b72 (diff) | |
download | serenity-57513271956942bbe51b39afeb4bb445aaff21fb.zip |
Kernel: static vs non-static constexpr variables
Problem:
- `static` variables consume memory and sometimes are less
optimizable.
- `static const` variables can be `constexpr`, usually.
- `static` function-local variables require an initialization check
every time the function is run.
Solution:
- If a global `static` variable is only used in a single function then
move it into the function and make it non-`static` and `constexpr`.
- Make all global `static` variables `constexpr` instead of `const`.
- Change function-local `static const[expr]` variables to be just
`constexpr`.
Diffstat (limited to 'Kernel/VM')
-rw-r--r-- | Kernel/VM/MemoryManager.h | 2 | ||||
-rw-r--r-- | Kernel/VM/PageDirectory.cpp | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/Kernel/VM/MemoryManager.h b/Kernel/VM/MemoryManager.h index cb6b860b17..0800428f27 100644 --- a/Kernel/VM/MemoryManager.h +++ b/Kernel/VM/MemoryManager.h @@ -54,7 +54,7 @@ enum class UsedMemoryRangeType { BootModule, }; -constexpr static const char* UserMemoryRangeTypeNames[] { +static constexpr StringView UserMemoryRangeTypeNames[] { "Low memory", "Kernel", "Boot module", diff --git a/Kernel/VM/PageDirectory.cpp b/Kernel/VM/PageDirectory.cpp index b8bbbdbe9b..b6b5287b48 100644 --- a/Kernel/VM/PageDirectory.cpp +++ b/Kernel/VM/PageDirectory.cpp @@ -13,9 +13,6 @@ namespace Kernel { -static const FlatPtr userspace_range_base = 0x00800000; -static const FlatPtr userspace_range_ceiling = 0xbe000000; - static AK::Singleton<HashMap<u32, PageDirectory*>> s_cr3_map; static HashMap<u32, PageDirectory*>& cr3_map() @@ -53,6 +50,9 @@ UNMAP_AFTER_INIT PageDirectory::PageDirectory() PageDirectory::PageDirectory(const RangeAllocator* parent_range_allocator) { + constexpr FlatPtr userspace_range_base = 0x00800000; + constexpr FlatPtr userspace_range_ceiling = 0xbe000000; + ScopedSpinLock lock(s_mm_lock); if (parent_range_allocator) { m_range_allocator.initialize_from_parent(*parent_range_allocator); |