================
@@ -1410,8 +1416,22 @@ class Thread : public 
std::enable_shared_from_this<Thread>,
   /// The Thread backed by this thread, if any.
   lldb::ThreadWP m_backed_thread;
 
-  /// The Scripted Frame Providers for this thread.
-  llvm::SmallVector<lldb::SyntheticFrameProviderSP, 0> m_frame_providers;
+  /// Map from frame list ID to its frame provider.
+  /// Cleared in ClearStackFrames(), repopulated in GetStackFrameList().
+  llvm::SmallDenseMap<uint64_t, lldb::SyntheticFrameProviderSP, 4>
+      m_frame_providers;
+
+  /// Ordered chain of provider IDs.
+  /// Persists across ClearStackFrames() to maintain stable provider IDs.
+  llvm::SmallVector<std::pair<ScriptedFrameProviderDescriptor, uint64_t>, 0>
----------------
adrian-prantl wrote:

SmallVectors make most sense in a leaf function, in a long-lived object like 
this, I would probably just use a std::vector? Especially since the inline size 
is 0.

https://github.com/llvm/llvm-project/pull/178823
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to