You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by au...@locus.apache.org on 2000/11/30 20:26:36 UTC
cvs commit: xml-xalan/c/src/PlatformSupport ReusableArenaAllocator.hpp ReusableArenaBlock.hpp
auriemma 00/11/30 11:26:31
Modified: c/src/PlatformSupport ReusableArenaAllocator.hpp
ReusableArenaBlock.hpp
Log:
HP port based on work from Trevor Smigiel and Troy Heber.
Revision Changes Path
1.11 +17 -12 xml-xalan/c/src/PlatformSupport/ReusableArenaAllocator.hpp
Index: ReusableArenaAllocator.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/ReusableArenaAllocator.hpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ReusableArenaAllocator.hpp 2000/11/03 21:38:18 1.10
+++ ReusableArenaAllocator.hpp 2000/11/30 19:26:19 1.11
@@ -78,7 +78,7 @@
typedef ReusableArenaBlock<ObjectType> ReusableArenaBlockType;
- typedef ReusableArenaBlockType::size_type size_type;
+ typedef typename ReusableArenaBlockType::size_type size_type;
typedef ArenaAllocator<ObjectType,
ReusableArenaBlockType> BaseClassType;
@@ -126,9 +126,10 @@
}
else
{
- const ArenaBlockListType::reverse_iterator theEnd = m_blocks.rend();
+ // Note that this-> is required by template lookup rules.
+ const typename ArenaBlockListType::reverse_iterator theEnd = this->m_blocks.rend();
- ArenaBlockListType::reverse_iterator i = m_blocks.rbegin();
+ typename ArenaBlockListType::reverse_iterator i = this->m_blocks.rbegin();
while(i != theEnd)
{
@@ -167,11 +168,12 @@
if (m_lastBlockReferenced == 0 ||
m_lastBlockReferenced->blockAvailable() == false)
{
- // Search back for a block with some space available...
- const ArenaBlockListType::reverse_iterator theEnd = m_blocks.rend();
+ // Search back for a block with some space available...
+ const typename ArenaBlockListType::reverse_iterator theEnd = this->m_blocks.rend();
+
+ // Note that this-> is required by template lookup rules.
+ typename ArenaBlockListType::reverse_iterator i = this->m_blocks.rbegin();
- ArenaBlockListType::reverse_iterator i = m_blocks.rbegin();
-
while(i != theEnd)
{
assert(*i != 0);
@@ -193,9 +195,10 @@
{
// No blocks have free space available, so create a new block, and
// push it on the list.
- m_lastBlockReferenced = new ReusableArenaBlockType(m_blockSize);
+ // Note that this-> is required by template lookup rules.
+ m_lastBlockReferenced = new ReusableArenaBlockType(this->m_blockSize);
- m_blocks.push_back(m_lastBlockReferenced);
+ this->m_blocks.push_back(m_lastBlockReferenced);
}
}
assert(m_lastBlockReferenced != 0 && m_lastBlockReferenced->blockAvailable() == true);
@@ -212,7 +215,8 @@
virtual void
commitAllocation(ObjectType* theObject)
{
- assert(m_blocks.size() != 0 && m_lastBlockReferenced != 0 && m_lastBlockReferenced->ownsBlock(theObject) == true);
+ // Note that this-> is required by template lookup rules.
+ assert(this->m_blocks.size() != 0 && m_lastBlockReferenced != 0 && m_lastBlockReferenced->ownsBlock(theObject) == true);
m_lastBlockReferenced->commitAllocation(theObject);
assert(m_lastBlockReferenced->ownsObject(theObject) == true);
@@ -241,9 +245,10 @@
if (fResult == false)
{
// Search back for a block with some space available...
- const ArenaBlockListType::const_reverse_iterator theEnd = m_blocks.rend();
+ // Note that this-> is required by template lookup rules.
+ const typename ArenaBlockListType::const_reverse_iterator theEnd = this->m_blocks.rend();
- ArenaBlockListType::const_reverse_iterator i = m_blocks.rbegin();
+ typename ArenaBlockListType::const_reverse_iterator i = this->m_blocks.rbegin();
while(i != theEnd)
{
1.7 +7 -3 xml-xalan/c/src/PlatformSupport/ReusableArenaBlock.hpp
Index: ReusableArenaBlock.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/ReusableArenaBlock.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ReusableArenaBlock.hpp 2000/08/22 20:18:51 1.6
+++ ReusableArenaBlock.hpp 2000/11/30 19:26:22 1.7
@@ -71,8 +71,10 @@
{
public:
- typedef ArenaBlock<ObjectType> BaseClassType;
+ typedef ArenaBlock<ObjectType> BaseClassType;
+ typedef typename BaseClassType::size_type size_type;
+
/*
* Construct an ArenaBlock of the specified size
* of objects.
@@ -88,7 +90,8 @@
~ReusableArenaBlock()
{
- destroyAll();
+ // Note that this-> is required by template lookup rules.
+ this->destroyAll();
}
/*
@@ -295,7 +298,8 @@
{
if (m_freeList.isSet(i) == true)
{
- theResult = getBlockAddress(i);
+ // Note that this-> is required by template lookup rules.
+ theResult = this->getBlockAddress(i);
break;
}