Author: Jorge Gorbe Moya Date: 2022-05-23T11:31:53-07:00 New Revision: f0a61c2ce2afec200967c59d45181c7a9fbe2c3f
URL: https://github.com/llvm/llvm-project/commit/f0a61c2ce2afec200967c59d45181c7a9fbe2c3f DIFF: https://github.com/llvm/llvm-project/commit/f0a61c2ce2afec200967c59d45181c7a9fbe2c3f.diff LOG: Remove `friend` classes from TypeCategoryMap As far as I can tell, the only thing those friend classes access is the `ValueSP` typedef. Given that this is a map-ish class, with "Map" in its name, it doesn't seem like a stretch to make `KeyType`, `ValueType` and `ValueSP` public. More so when the public methods of the class have `KeyType` and `ValueSP` arguments and clearly `ValueSP` needs to be accessed from the outside. `friend` complicates local reasoning about who can access private members, which is valuable in a class like this that has every method locking a mutex to prevent concurrent access. Differential Revision: https://reviews.llvm.org/D126103 Added: Modified: lldb/include/lldb/DataFormatters/TypeCategoryMap.h Removed: ################################################################################ diff --git a/lldb/include/lldb/DataFormatters/TypeCategoryMap.h b/lldb/include/lldb/DataFormatters/TypeCategoryMap.h index 4dbca29db066d..45dbb306aa758 100644 --- a/lldb/include/lldb/DataFormatters/TypeCategoryMap.h +++ b/lldb/include/lldb/DataFormatters/TypeCategoryMap.h @@ -23,13 +23,13 @@ namespace lldb_private { class TypeCategoryMap { private: - typedef ConstString KeyType; - typedef TypeCategoryImpl ValueType; - typedef ValueType::SharedPointer ValueSP; typedef std::list<lldb::TypeCategoryImplSP> ActiveCategoriesList; typedef ActiveCategoriesList::iterator ActiveCategoriesIterator; public: + typedef ConstString KeyType; + typedef TypeCategoryImpl ValueType; + typedef ValueType::SharedPointer ValueSP; typedef std::map<KeyType, ValueSP> MapType; typedef MapType::iterator MapIterator; typedef std::function<bool(const ValueSP &)> ForEachCallback; @@ -103,9 +103,6 @@ class TypeCategoryMap { ActiveCategoriesList &active_list() { return m_active_categories; } std::recursive_mutex &mutex() { return m_map_mutex; } - - friend class FormattersContainer<ValueType>; - friend class FormatManager; }; } // namespace lldb_private _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits