ruby: Make ruby's Map use hashmap.hh to simplify things.
authorNathan Binkert <nate@binkert.org>
Wed, 13 May 2009 05:33:05 +0000 (22:33 -0700)
committerNathan Binkert <nate@binkert.org>
Wed, 13 May 2009 05:33:05 +0000 (22:33 -0700)
src/mem/gems_common/Map.hh

index 6b145a90a9fc29c5e4091d5ef54dd8a95b735eee..5128a0feecb756817fbcda5a56ae7a9241ea071c 100644 (file)
 #ifndef MAP_H
 #define MAP_H
 
+#include "base/hashmap.hh"
 #include "mem/gems_common/Vector.hh"
 
-namespace __gnu_cxx {
-  template <> struct hash <std::string>
-  {
-    size_t operator()(const string& s) const { return hash<char*>()(s.c_str()); }
-  };
-}
-
-typedef unsigned long long uint64;
-//hack for uint64 hashes...
-namespace __gnu_cxx {
-  template <> struct hash <uint64>
-  {
-    size_t operator()(const uint64 & s) const { return (size_t) s; }
-  };
-}
-
 template <class KEY_TYPE, class VALUE_TYPE>
 class Map
 {
@@ -84,7 +69,7 @@ private:
   // m_map is declared mutable because some methods from the STL "map"
   // class that should be const are not.  Thus we define this as
   // mutable so we can still have conceptually const accessors.
-  mutable __gnu_cxx::hash_map<KEY_TYPE, VALUE_TYPE> m_map;
+  mutable m5::hash_map<KEY_TYPE, VALUE_TYPE> m_map;
 };
 
 template <class KEY_TYPE, class VALUE_TYPE>