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;
                                }
  
  
  

Reply via email to