diff options
author | Max Horn | 2008-10-12 22:05:26 +0000 |
---|---|---|
committer | Max Horn | 2008-10-12 22:05:26 +0000 |
commit | 95474b048aa742f500f276f782e9998eccfce8d9 (patch) | |
tree | d1724aeabc9af30742c64a2cb85e27970bfd648a /common/xmlparser.h | |
parent | 24dea3aff2e635f19695ac680a33bb6738bbad97 (diff) | |
download | scummvm-rg350-95474b048aa742f500f276f782e9998eccfce8d9.tar.gz scummvm-rg350-95474b048aa742f500f276f782e9998eccfce8d9.tar.bz2 scummvm-rg350-95474b048aa742f500f276f782e9998eccfce8d9.zip |
COMMON: Added a new ObjectPool class, with matching operator new/delete overloads
svn-id: r34785
Diffstat (limited to 'common/xmlparser.h')
-rw-r--r-- | common/xmlparser.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/common/xmlparser.h b/common/xmlparser.h index cd2580b448..31ba4e594e 100644 --- a/common/xmlparser.h +++ b/common/xmlparser.h @@ -51,7 +51,7 @@ namespace Common { #define MAX_XML_DEPTH 8 #define XML_KEY(keyName) {\ - lay = new CustomXMLKeyLayout;\ + lay = new CustomXMLKeyLayout;\ lay->callback = (&kLocalParserName::parserCallback_##keyName);\ layout.top()->children[#keyName] = lay;\ layout.push(lay); \ @@ -169,16 +169,14 @@ public: XMLKeyLayout *layout; }; - FixedSizeMemoryPool<sizeof(ParserNode), MAX_XML_DEPTH> _nodePool; + ObjectPool<ParserNode, MAX_XML_DEPTH> _nodePool; ParserNode *allocNode() { - void* mem = _nodePool.malloc(); - return new (mem) ParserNode; + return new (_nodePool) ParserNode; } void freeNode(ParserNode *node) { - node->~ParserNode(); - _nodePool.free(node); + _nodePool.deleteChunk(node); } /** |