Kernel: Specify inline capacity of return type in capture_stack_trace

Since the inline capacity of the Vector return type was not specified
explicitly, the vector was automatically copied to a 0-length inline
capacity one, essentially eliminating the optimization.
This commit is contained in:
Idan Horowitz 2022-01-15 21:16:53 +02:00
parent d3dfb957a6
commit 03b7352286
Notes: sideshowbarker 2024-07-17 20:49:14 +09:00
2 changed files with 2 additions and 2 deletions

View file

@ -398,7 +398,7 @@ public:
NEVER_INLINE void switch_context(Thread*& from_thread, Thread*& to_thread);
[[noreturn]] static void assume_context(Thread& thread, FlatPtr flags);
FlatPtr init_context(Thread& thread, bool leave_crit);
static Vector<FlatPtr> capture_stack_trace(Thread& thread, size_t max_frames = 0);
static Vector<FlatPtr, 32> capture_stack_trace(Thread& thread, size_t max_frames = 0);
static StringView platform_string();
};

View file

@ -491,7 +491,7 @@ const DescriptorTablePointer& Processor::get_gdtr()
return m_gdtr;
}
Vector<FlatPtr> Processor::capture_stack_trace(Thread& thread, size_t max_frames)
Vector<FlatPtr, 32> Processor::capture_stack_trace(Thread& thread, size_t max_frames)
{
FlatPtr frame_ptr = 0, ip = 0;
Vector<FlatPtr, 32> stack_trace;