summaryrefslogtreecommitdiff
path: root/Kernel/VM
diff options
context:
space:
mode:
authorLenny Maiorani <lenny@colorado.edu>2021-05-19 08:35:09 -0600
committerLinus Groh <mail@linusgroh.de>2021-05-19 21:21:47 +0100
commit57513271956942bbe51b39afeb4bb445aaff21fb (patch)
tree38fb1fc2a13b8f8d7538a214195bee6936d2da24 /Kernel/VM
parent2b64d163cd9f25bd2951bf8721ef9325decb1b72 (diff)
downloadserenity-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.h2
-rw-r--r--Kernel/VM/PageDirectory.cpp6
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);