Author: kremenek Date: Tue Jan 8 15:05:59 2008 New Revision: 45756 URL: http://llvm.org/viewvc/llvm-project?rev=45756&view=rev Log: Added "getRoot()" to ImmutableMap. Made the ctor for ImmutableMap to construct a map from an AVL tree public.
Modified: llvm/trunk/include/llvm/ADT/ImmutableMap.h Modified: llvm/trunk/include/llvm/ADT/ImmutableMap.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableMap.h?rev=45756&r1=45755&r2=45756&view=diff ============================================================================== --- llvm/trunk/include/llvm/ADT/ImmutableMap.h (original) +++ llvm/trunk/include/llvm/ADT/ImmutableMap.h Tue Jan 8 15:05:59 2008 @@ -52,20 +52,24 @@ template <typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT> > class ImmutableMap { +public: typedef typename ValInfo::value_type value_type; typedef typename ValInfo::value_type_ref value_type_ref; typedef typename ValInfo::key_type key_type; typedef typename ValInfo::key_type_ref key_type_ref; typedef typename ValInfo::data_type data_type; typedef typename ValInfo::data_type_ref data_type_ref; + typedef ImutAVLTree<ValInfo> TreeTy; -private: - typedef ImutAVLTree<ValInfo> TreeTy; +private: TreeTy* Root; - - ImmutableMap(TreeTy* R) : Root(R) {} - + public: + /// Constructs a map from a pointer to a tree root. In general one + /// should use a Factory object to create maps instead of directly + /// invoking the constructor, but there are cases where make this + /// constructor public is useful. + explicit ImmutableMap(TreeTy* R) : Root(R) {} class Factory { typename TreeTy::Factory F; @@ -112,6 +116,8 @@ return Root && RHS.Root ? Root->isNotEqual(*RHS.Root) : Root != RHS.Root; } + TreeTy* getRoot() const { return Root; } + bool isEmpty() const { return !Root; } //===--------------------------------------------------===// _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits