================
@@ -36,18 +36,19 @@ class FuncUnwinders {
 
   ~FuncUnwinders();
 
-  lldb::UnwindPlanSP GetUnwindPlanAtCallSite(Target &target, Thread &thread);
+  std::shared_ptr<const UnwindPlan> GetUnwindPlanAtCallSite(Target &target,
----------------
labath wrote:

Currently we need them, because the unwind plans are (sometimes) stored in a 
shared pointer while they are being constructed. That could be avoided because 
we don't really need the shared ownership at that point (they could be a 
unique_ptr or a value). However, I'm not particularly thrilled with the idea of 
repurposing UnwindPlanSP for this, as I think that would be surprising -- 
there's nothing in that name that indicates this is a const pointer, and I 
think it's important to see that.

One idea I have had that could solve this (but have never found the time to 
propose) is to replace the individual FoobarSP typedefs with a `SP = 
std::shared_ptr<T>` template alias. That would let us write `SP<const Foobar>` 
in exactly the places which need it; and it might also help with the 
hypothetical migration to the llvm naming convention (frees up `FoobarSP` as a 
member name)

https://github.com/llvm/llvm-project/pull/133247
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to