Index: trunk/Source/WTF/wtf/HashMap.h =================================================================== --- trunk/Source/WTF/wtf/HashMap.h (revision 147344) +++ trunk/Source/WTF/wtf/HashMap.h (revision 147345) @@ -137,27 +137,33 @@ AddResult inlineAdd(const KeyType&, MappedPassInReferenceType); - class HashMapKeysProxy : private HashMap { + HashTableType m_impl; + }; + + template + class HashMap::HashMapKeysProxy : + private HashMap { public: - typedef typename HashMap::iterator::Keys iterator; - typedef typename HashMap::const_iterator::Keys const_iterator; - + typedef HashMap HashMapType; + typedef typename HashMapType::iterator::Keys iterator; + typedef typename HashMapType::const_iterator::Keys const_iterator; + iterator begin() { - return HashMap::begin().keys(); - } - + return HashMapType::begin().keys(); + } + iterator end() { - return HashMap::end().keys(); + return HashMapType::end().keys(); } const_iterator begin() const { - return HashMap::begin().keys(); - } - + return HashMapType::begin().keys(); + } + const_iterator end() const { - return HashMap::end().keys(); + return HashMapType::end().keys(); } @@ -170,29 +176,32 @@ HashMapKeysProxy& operator=(const HashMapKeysProxy&); ~HashMapKeysProxy(); - }; - - class HashMapValuesProxy : private HashMap { + }; + + template + class HashMap::HashMapValuesProxy : + private HashMap { public: - typedef typename HashMap::iterator::Values iterator; - typedef typename HashMap::const_iterator::Values const_iterator; - + typedef HashMap HashMapType; + typedef typename HashMapType::iterator::Values iterator; + typedef typename HashMapType::const_iterator::Values const_iterator; + iterator begin() { - return HashMap::begin().values(); - } - + return HashMapType::begin().values(); + } + iterator end() { - return HashMap::end().values(); + return HashMapType::end().values(); } const_iterator begin() const { - return HashMap::begin().values(); - } - + return HashMapType::begin().values(); + } + const_iterator end() const { - return HashMap::end().values(); + return HashMapType::end().values(); } @@ -205,7 +214,4 @@ HashMapValuesProxy& operator=(const HashMapValuesProxy&); ~HashMapValuesProxy(); - }; - - HashTableType m_impl; };