dbertoni    00/08/29 15:19:04

  Modified:    c/src/XSLT NamespacesHandler.cpp
  Log:
  Fixed problem with map::erase() on more modern STL implementations.
  
  Revision  Changes    Path
  1.2       +21 -5     xml-xalan/c/src/XSLT/NamespacesHandler.cpp
  
  Index: NamespacesHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/NamespacesHandler.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NamespacesHandler.cpp     2000/08/28 01:19:41     1.1
  +++ NamespacesHandler.cpp     2000/08/29 22:19:04     1.2
  @@ -543,6 +543,17 @@
   {
        if (m_excludedResultPrefixes.size() > 0)
        {
  +#if defined(XALAN_NO_NAMESPACES)
  +     typedef vector<NamespacesMapType::iterator>             
IteratorVectorType;
  +#else
  +     typedef std::vector<NamespacesMapType::iterator>        
IteratorVectorType;
  +#endif
  +
  +             // This vector will hold all of the iterators that we need to 
erase...
  +             IteratorVectorType      theDeadEntries;
  +
  +             theDeadEntries.reserve(m_excludedResultPrefixes.size());
  +
                const NamespacesMapType::iterator       theEnd =
                                m_namespaceDeclarations.end();
   
  @@ -565,12 +576,17 @@
                                 m_extensionNamespaceURIs.find(theURI) != 
m_extensionNamespaceURIs.end()))
                        {
                                // It's excluded, so remove it...
  -                             i = m_namespaceDeclarations.erase(i);
  -                     }
  -                     else
  -                     {
  -                             ++i;
  +                             theDeadEntries.push_back(i);
                        }
  +
  +                     ++i;
  +             }
  +
  +             while(theDeadEntries.size() > 0)
  +             {
  +                     m_namespaceDeclarations.erase(theDeadEntries.back());
  +
  +                     theDeadEntries.pop_back();
                }
        }
   }
  
  
  

Reply via email to