From d273e649bdf95014dbd33ff4992e116153aab622 Mon Sep 17 00:00:00 2001 From: Ivan Chikish Date: Mon, 10 Jul 2023 05:19:21 +0300 Subject: [PATCH] [orbis-kernel] Optimize kalloc a bit --- orbis-kernel/src/KernelContext.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/orbis-kernel/src/KernelContext.cpp b/orbis-kernel/src/KernelContext.cpp index 67b8d8c3b..8ef3a50a6 100644 --- a/orbis-kernel/src/KernelContext.cpp +++ b/orbis-kernel/src/KernelContext.cpp @@ -85,7 +85,10 @@ void *KernelContext::kalloc(std::size_t size, std::size_t align) { for (auto [it, end] = m_free_heap.equal_range(size); it != end; it++) { auto result = it->second; if (!(reinterpret_cast(result) & (align - 1))) { - m_used_node.insert(m_free_heap.extract(it)); + auto node = m_free_heap.extract(it); + node.key() = 0; + node.mapped() = nullptr; + m_used_node.insert(m_used_node.begin(), std::move(node)); pthread_mutex_unlock(&m_heap_mtx); return result; }