JDevlieghere added a comment. I like the new approach, it's much easier to follow. I also like the wrapper class to abstract over the common operations. It just seems like there are some remnants of the canonical wp approach that we no longer need.
================ Comment at: lldb/include/lldb/Symbol/CompilerType.h:51 + class ManagedTypeSystem { + lldb::TypeSystemSP m_typesystem_sp = nullptr; + ---------------- nit: `lldb::TypeSystemSP m_typesystem_sp = {};` or even `lldb::TypeSystemSP m_typesystem_sp` ================ Comment at: lldb/include/lldb/Symbol/CompilerType.h:58-60 + if (!m_typesystem_sp) + return nullptr; + return llvm::dyn_cast_or_null<TypeSystemType>(m_typesystem_sp.get()); ---------------- If it's a `dyn_cast_or_null` why not do the `m_typesystem_sp` check, won't `dyn_cast_or_null` repeat that for you anyway? ================ Comment at: lldb/include/lldb/Symbol/TypeSystem.h:88-91 + /// Returns a weak pointer to this type system. For use in + /// CompilerType and other places that need to hold on to a + /// TypeSystem. + lldb::TypeSystemWP &GetAsWeakPtr(); ---------------- Now that the weak pointer is no longer "canonical", there's no reason that this should be a reference anymore, right? ================ Comment at: lldb/include/lldb/Symbol/TypeSystem.h:517-522 + /// Only to be used by TypeSystemMap and various unit tests. + void SetCanonicalWeakPtr(lldb::TypeSystemWP wp) { m_canonical_wp = wp; } protected: + lldb::TypeSystemWP m_canonical_wp; SymbolFile *m_sym_file = nullptr; }; ---------------- Do we still need this? I assume we can now just return the weak pointer directly (through shared_from_this)? ================ Comment at: lldb/include/lldb/Symbol/TypeSystem.h:550-553 + /// A canoncial pointer to a weak pointer to the type system. This + /// allows CompilerType to store the weak pointer in a single + /// pointer-sized field. This field is never a nullptr. + lldb::TypeSystemWP *wp_ptr; ---------------- No longer necessary? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136650/new/ https://reviews.llvm.org/D136650 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits