aboutsummaryrefslogtreecommitdiff
path: root/common/hashmap.h
diff options
context:
space:
mode:
authorJohannes Schickel2011-07-03 00:15:30 +0200
committerJohannes Schickel2011-07-03 00:16:07 +0200
commit7e4224e52a2202ba98dd93ffe209d231e5c1d35c (patch)
treef026976cddcd30f74475e3f5d47c92d5804eefa3 /common/hashmap.h
parent0b1cb0ebbb9a3779f8e3d1fb0d3a44252394fe0c (diff)
downloadscummvm-rg350-7e4224e52a2202ba98dd93ffe209d231e5c1d35c.tar.gz
scummvm-rg350-7e4224e52a2202ba98dd93ffe209d231e5c1d35c.tar.bz2
scummvm-rg350-7e4224e52a2202ba98dd93ffe209d231e5c1d35c.zip
COMMON: Fix compilation when USE_HASHMAP_MEMORY_POOL is not defined.
Diffstat (limited to 'common/hashmap.h')
-rw-r--r--common/hashmap.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/common/hashmap.h b/common/hashmap.h
index f2a4d843b8..347ac1fd25 100644
--- a/common/hashmap.h
+++ b/common/hashmap.h
@@ -106,8 +106,9 @@ private:
HASHMAP_MEMORYPOOL_SIZE = HASHMAP_MIN_CAPACITY * HASHMAP_LOADFACTOR_NUMERATOR / HASHMAP_LOADFACTOR_DENOMINATOR
};
-
+#ifdef USE_HASHMAP_MEMORY_POOL
ObjectPool<Node, HASHMAP_MEMORYPOOL_SIZE> _nodePool;
+#endif
Node **_storage; ///< hashtable of size arrsize.
uint _mask; ///< Capacity of the HashMap minus one; must be a power of two of minus one
@@ -128,12 +129,20 @@ private:
#endif
Node *allocNode(const Key &key) {
+#ifdef USE_HASHMAP_MEMORY_POOL
return new (_nodePool) Node(key);
+#else
+ return new Node(key);
+#endif
}
void freeNode(Node *node) {
if (node && node != HASHMAP_DUMMY_NODE)
+#ifdef USE_HASHMAP_MEMORY_POOL
_nodePool.deleteChunk(node);
+#else
+ delete node;
+#endif
}
void assign(const HM_t &map);