dbertoni    01/04/30 11:11:12

  Modified:    c/src/XPath QName.cpp XPath.cpp XPathEnvSupportDefault.cpp
                        XPathExecutionContextDefault.cpp
                        XPathExecutionContextDefault.hpp
                        XPathFunctionTable.hpp
  Log:
  Changes required to move STLHelper.hpp to Include.  Use new cache template.
  
  Revision  Changes    Path
  1.15      +4 -1      xml-xalan/c/src/XPath/QName.cpp
  
  Index: QName.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/QName.cpp,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- QName.cpp 2001/04/23 14:19:05     1.14
  +++ QName.cpp 2001/04/30 18:10:58     1.15
  @@ -59,8 +59,11 @@
   
   
   
  +#include <Include/STLHelper.hpp>
  +
  +
  +
   #include <PlatformSupport/DOMStringHelper.hpp>
  -#include <PlatformSupport/STLHelper.hpp>
   #include <PlatformSupport/XalanUnicode.hpp>
   
   
  
  
  
  1.51      +4 -1      xml-xalan/c/src/XPath/XPath.cpp
  
  Index: XPath.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPath.cpp,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- XPath.cpp 2001/04/18 14:46:10     1.50
  +++ XPath.cpp 2001/04/30 18:10:59     1.51
  @@ -67,8 +67,11 @@
   
   
   
  +#include <Include/STLHelper.hpp>
  +
  +
  +
   #include <PlatformSupport/DoubleSupport.hpp>
  -#include <PlatformSupport/STLHelper.hpp>
   
   
   
  
  
  
  1.25      +4 -1      xml-xalan/c/src/XPath/XPathEnvSupportDefault.cpp
  
  Index: XPathEnvSupportDefault.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathEnvSupportDefault.cpp,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- XPathEnvSupportDefault.cpp        2001/03/29 22:18:12     1.24
  +++ XPathEnvSupportDefault.cpp        2001/04/30 18:11:01     1.25
  @@ -73,8 +73,11 @@
   
   
   
  +#include <Include/STLHelper.hpp>
  +
  +
  +
   #include <PlatformSupport/DOMStringHelper.hpp>
  -#include <PlatformSupport/STLHelper.hpp>
   
   
   
  
  
  
  1.35      +11 -103   xml-xalan/c/src/XPath/XPathExecutionContextDefault.cpp
  
  Index: XPathExecutionContextDefault.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathExecutionContextDefault.cpp,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- XPathExecutionContextDefault.cpp  2001/03/29 22:19:08     1.34
  +++ XPathExecutionContextDefault.cpp  2001/04/30 18:11:02     1.35
  @@ -62,7 +62,7 @@
   
   
   
  -#include <PlatformSupport/STLHelper.hpp>
  +#include <Include/STLHelper.hpp>
   
   
   
  @@ -98,15 +98,10 @@
        m_contextNodeList(theContextNodeList == 0 ? &s_dummyList : 
theContextNodeList),
        m_prefixResolver(thePrefixResolver),
        m_throwFoundIndex(false),
  -     m_availableCachedNodeLists(),
  -     m_busyCachedNodeLists(),
  -     m_availableCachedResultTreeFrags(),
  -     m_busyCachedResultTreeFrags(),
  +     m_nodeListCache(),
  +     m_resultTreeFragCache(),
        m_stringCache()
   {
  -     m_availableCachedNodeLists.reserve(eMutableNodeRefListCacheMax);
  -
  -     m_busyCachedNodeLists.reserve(eMutableNodeRefListCacheMax);
   }
   
   
  @@ -123,15 +118,10 @@
        m_contextNodeList(theContextNodeList == 0 ? &s_dummyList : 
theContextNodeList),
        m_prefixResolver(thePrefixResolver),
        m_throwFoundIndex(false),
  -     m_availableCachedNodeLists(),
  -     m_busyCachedNodeLists(),
  -     m_availableCachedResultTreeFrags(),
  -     m_busyCachedResultTreeFrags(),
  +     m_nodeListCache(),
  +     m_resultTreeFragCache(),
        m_stringCache()
   {
  -     m_availableCachedNodeLists.reserve(eMutableNodeRefListCacheMax);
  -
  -     m_busyCachedNodeLists.reserve(eMutableNodeRefListCacheMax);
   }
   
   
  @@ -139,21 +129,7 @@
   
   XPathExecutionContextDefault::~XPathExecutionContextDefault()
   {
  -#if !defined(XALAN_NO_NAMESPACES)
  -     using std::for_each;
  -#endif
  -
        reset();
  -
  -     for_each(
  -             m_availableCachedNodeLists.begin(),
  -             m_availableCachedNodeLists.end(),
  -             DeleteFunctor<MutableNodeRefList>());
  -
  -     for_each(
  -             m_availableCachedResultTreeFrags.begin(),
  -             m_availableCachedResultTreeFrags.end(),
  -             DeleteFunctor<ResultTreeFragBase>());
   }
   
   
  @@ -180,20 +156,9 @@
        m_contextNodeList = &s_dummyList;
        m_prefixResolver = 0;
        m_throwFoundIndex = false;
  -
  -     while (m_busyCachedNodeLists.size() != 0)
  -     {
  -             
m_availableCachedNodeLists.push_back(m_busyCachedNodeLists.back());
   
  -             m_busyCachedNodeLists.pop_back();
  -     }
  -
  -     while (m_busyCachedResultTreeFrags.size() != 0)
  -     {
  -             
m_availableCachedResultTreeFrags.push_back(m_busyCachedResultTreeFrags.back());
  -
  -             m_busyCachedResultTreeFrags.pop_back();
  -     }
  +     m_nodeListCache.reset(),
  +     m_resultTreeFragCache.reset(),
   
        m_stringCache.reset();
   }
  @@ -350,20 +315,7 @@
   MutableNodeRefList*
   XPathExecutionContextDefault::borrowMutableNodeRefList()
   {
  -     // We'll always return the back of the free list, since
  -     // that's the cheapest thing.
  -     if (m_availableCachedNodeLists.size() == 0)
  -     {
  -             m_busyCachedNodeLists.push_back(new MutableNodeRefList);
  -     }
  -     else
  -     {
  -             
m_busyCachedNodeLists.push_back(m_availableCachedNodeLists.back());
  -
  -             m_availableCachedNodeLists.pop_back();
  -     }
  -
  -     return m_busyCachedNodeLists.back();
  +     return m_nodeListCache.get();
   }
   
   
  @@ -371,14 +323,7 @@
   bool
   XPathExecutionContextDefault::returnMutableNodeRefList(MutableNodeRefList*   
theList)
   {
  -#if !defined(XALAN_NO_NAMESPACES)
  -     using std::find;
  -#endif
  -
  -     const NodeRefListCacheType::iterator    i =
  -             find(m_busyCachedNodeLists.begin(), 
m_busyCachedNodeLists.end(), theList);
  -
  -     if (i == m_busyCachedNodeLists.end())
  +     if (m_nodeListCache.release(theList) == false)
        {
                return false;
        }
  @@ -386,10 +331,6 @@
        {
                theList->clear();
   
  -             m_availableCachedNodeLists.push_back(theList);
  -
  -             m_busyCachedNodeLists.erase(i);
  -
                return true;
        }
   }
  @@ -399,20 +340,7 @@
   ResultTreeFragBase*
   XPathExecutionContextDefault::borrowResultTreeFrag()
   {
  -     // We'll always return the back of the free list, since
  -     // that's the cheapest thing.
  -     if (m_availableCachedResultTreeFrags.size() == 0)
  -     {
  -             m_busyCachedResultTreeFrags.push_back(new ResultTreeFrag);
  -     }
  -     else
  -     {
  -             
m_busyCachedResultTreeFrags.push_back(m_availableCachedResultTreeFrags.back());
  -
  -             m_availableCachedResultTreeFrags.pop_back();
  -     }
  -
  -     return m_busyCachedResultTreeFrags.back();
  +     return m_resultTreeFragCache.get();
   }
   
   
  @@ -420,27 +348,7 @@
   bool
   XPathExecutionContextDefault::returnResultTreeFrag(ResultTreeFragBase*       
theResultTreeFragBase)
   {
  -#if !defined(XALAN_NO_NAMESPACES)
  -     using std::find;
  -#endif
  -
  -     const ResultTreeFragCacheType::iterator         i =
  -             find(m_busyCachedResultTreeFrags.begin(), 
m_busyCachedResultTreeFrags.end(), theResultTreeFragBase);
  -
  -     if (i == m_busyCachedResultTreeFrags.end())
  -     {
  -             return false;
  -     }
  -     else
  -     {
  -             theResultTreeFragBase->clear();
  -
  -             
m_availableCachedResultTreeFrags.push_back(theResultTreeFragBase);
  -
  -             m_busyCachedResultTreeFrags.erase(i);
  -
  -             return true;
  -     }
  +     return m_resultTreeFragCache.release(theResultTreeFragBase);
   }
   
   
  
  
  
  1.33      +20 -18    xml-xalan/c/src/XPath/XPathExecutionContextDefault.hpp
  
  Index: XPathExecutionContextDefault.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathExecutionContextDefault.hpp,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- XPathExecutionContextDefault.hpp  2001/03/29 22:19:08     1.32
  +++ XPathExecutionContextDefault.hpp  2001/04/30 18:11:02     1.33
  @@ -73,6 +73,10 @@
   
   
   
  +#include <Include/XalanObjectCache.hpp>
  +
  +
  +
   #include <XalanDOM/XalanDOMString.hpp>
   
   
  @@ -86,7 +90,8 @@
   
   
   
  -#include <XPath/NodeRefList.hpp>
  +#include <XPath/MutableNodeRefList.hpp>
  +#include <XPath/ResultTreeFrag.hpp>
   
   
   
  @@ -340,20 +345,21 @@
                        const XalanNode*        sourceNode = 0,
                        const XalanNode*        styleNode = 0) const;
   
  -#if defined(XALAN_NO_NAMESPACES)
  -     typedef vector<MutableNodeRefList*>                     
NodeRefListCacheType;
  -     typedef vector<ResultTreeFragBase*>                     
ResultTreeFragCacheType;
  -#else
  -     typedef std::vector<MutableNodeRefList*>        NodeRefListCacheType;
  -     typedef std::vector<ResultTreeFragBase*>        ResultTreeFragCacheType;
  -#endif
  -
   protected:
   
  -     enum { eMutableNodeRefListCacheMax = 50,
  -                eResultTreeFragListCacheMax = 50,
  -                eCachedArgVectorDefaultSize = 10 };
  +     class XalanResultTreeFragCache : public 
XalanObjectCache<ResultTreeFragBase>
  +     {
  +     protected:
   
  +             virtual ResultTreeFragBase*
  +             create()
  +             {
  +                     return new ResultTreeFrag;
  +             }
  +     };
  +
  +     enum { eCachedArgVectorDefaultSize = 10 };
  +
        XPathEnvSupport*                        m_xpathEnvSupport;
   
        DOMSupport*                                     m_domSupport;
  @@ -369,14 +375,10 @@
        bool                                            m_throwFoundIndex;
   
        XalanDOMString                          m_currentPattern;
  -
  -     NodeRefListCacheType            m_availableCachedNodeLists;
  -
  -     NodeRefListCacheType            m_busyCachedNodeLists;
   
  -     ResultTreeFragCacheType         m_availableCachedResultTreeFrags;
  +     XalanObjectCacheDefault<MutableNodeRefList>             m_nodeListCache;
   
  -     ResultTreeFragCacheType         m_busyCachedResultTreeFrags;
  +     XalanResultTreeFragCache        m_resultTreeFragCache;
   
        XalanDOMStringCache                     m_stringCache;
   
  
  
  
  1.12      +1 -1      xml-xalan/c/src/XPath/XPathFunctionTable.hpp
  
  Index: XPathFunctionTable.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathFunctionTable.hpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- XPathFunctionTable.hpp    2001/01/31 18:14:11     1.11
  +++ XPathFunctionTable.hpp    2001/04/30 18:11:03     1.12
  @@ -73,7 +73,7 @@
   
   
   
  -#include <PlatformSupport/STLHelper.hpp>
  +#include <Include/STLHelper.hpp>
   
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to