dmitryh     2004/11/08 11:22:07

  Modified:    c/src/xalanc/XalanExtensions FunctionDifference.cpp
                        FunctionDifference.hpp FunctionDistinct.cpp
                        FunctionDistinct.hpp FunctionEvaluate.cpp
                        FunctionEvaluate.hpp FunctionHasSameNodes.cpp
                        FunctionHasSameNodes.hpp FunctionIntersection.cpp
                        FunctionIntersection.hpp FunctionNodeSet.cpp
                        FunctionNodeSet.hpp XalanExtensions.cpp
                        XalanExtensions.hpp
  Log:
  Initial implementation on the pluggable memory management
  
  Revision  Changes    Path
  1.6       +11 -6     
xml-xalan/c/src/xalanc/XalanExtensions/FunctionDifference.cpp
  
  Index: FunctionDifference.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionDifference.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FunctionDifference.cpp    26 Feb 2004 23:02:20 -0000      1.5
  +++ FunctionDifference.cpp    8 Nov 2004 19:22:07 -0000       1.6
  @@ -51,7 +51,10 @@
   {
        if (args.size() != 2)
        {
  -             executionContext.error(getError(), context, locator);
  +        XPathExecutionContext::GetAndReleaseCachedString 
theGuard(executionContext);
  +        XalanDOMString& theBuffer = theGuard.get();
  +
  +             executionContext.error(getError(theBuffer), context, locator);
        }
   
        assert(args[0].null() == false && args[1].null() == false);
  @@ -91,17 +94,19 @@
   #else
   FunctionDifference*
   #endif
  -FunctionDifference::clone() const
  +FunctionDifference::clone(MemoryManagerType& theManager) const
   {
  -     return new FunctionDifference(*this);
  +     return  cloneFunction_0<FunctionDifference>()(theManager);;
   }
   
   
   
  -const XalanDOMString
  -FunctionDifference::getError() const
  +const XalanDOMString&
  +FunctionDifference::getError(XalanDOMString& theResult) const
   {
  -     return 
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsTwoArguments_1Param,"difference()");
  +    
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsTwoArguments_1Param,theResult
 , "difference()");
  +
  +    return theResult;
   }
   
   
  
  
  
  1.5       +3 -3      
xml-xalan/c/src/xalanc/XalanExtensions/FunctionDifference.hpp
  
  Index: FunctionDifference.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionDifference.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FunctionDifference.hpp    26 Feb 2004 23:02:20 -0000      1.4
  +++ FunctionDifference.hpp    8 Nov 2004 19:22:07 -0000       1.5
  @@ -64,12 +64,12 @@
   #else
        virtual FunctionDifference*
   #endif
  -     clone() const;
  +     clone(MemoryManagerType& theManager) const;
   
   protected:
   
  -     const XalanDOMString
  -     getError() const;
  +     virtual const XalanDOMString&
  +     getError(XalanDOMString& theResult) const;
   
   private:
   
  
  
  
  1.7       +13 -8     
xml-xalan/c/src/xalanc/XalanExtensions/FunctionDistinct.cpp
  
  Index: FunctionDistinct.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionDistinct.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- FunctionDistinct.cpp      30 Sep 2004 22:28:10 -0000      1.6
  +++ FunctionDistinct.cpp      8 Nov 2004 19:22:07 -0000       1.7
  @@ -19,6 +19,7 @@
   
   #include <xalanc/Include/XalanSet.hpp>
   
  +#include <xalanc/Include/XalanMemMgrHelper.hpp>
   
   
   #include <xalanc/XalanDOM/XalanDOMString.hpp>
  @@ -38,7 +39,6 @@
   #include <xalanc/XPath/XObjectFactory.hpp>
   
   
  -
   XALAN_CPP_NAMESPACE_BEGIN
   
   
  @@ -64,7 +64,9 @@
   {
        if (args.size() != 1)
        {
  -             executionContext.error(getError(), context, locator);
  +        XPathExecutionContext::GetAndReleaseCachedString     
theGuard(executionContext);
  +
  +             executionContext.error(getError(theGuard.get()), context, 
locator);
        }
   
        assert(args[0].null() == false);
  @@ -92,7 +94,7 @@
   
                typedef XalanSet<XalanDOMString>                                
        SetType;
   
  -             SetType         theStrings;
  +        SetType              theStrings(executionContext.getMemoryManager());
   
                // Check to make sure each node has a unique
                // string value.
  @@ -110,6 +112,7 @@
                                theStrings.insert(theCachedString);
                        }
   
  +
                        clear(theCachedString);
                }
        }
  @@ -126,18 +129,20 @@
   #else
   FunctionDistinct*
   #endif
  -FunctionDistinct::clone() const
  +FunctionDistinct::clone(MemoryManagerType& theManager) const
   {
  -     return new FunctionDistinct(*this);
  +     return cloneFunction_1<FunctionDistinct>()(*this, theManager);
   }
   
   
   
  -const XalanDOMString
  -FunctionDistinct::getError() const
  +const XalanDOMString&
  +FunctionDistinct::getError(XalanDOMString& theResult) const
   {
   
  -     return 
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsOneArgument_1Param,"distinct()");
  +     
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsOneArgument_1Param,
 theResult, "distinct()");
  +
  +    return theResult;
   
   }
   
  
  
  
  1.5       +3 -3      
xml-xalan/c/src/xalanc/XalanExtensions/FunctionDistinct.hpp
  
  Index: FunctionDistinct.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionDistinct.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FunctionDistinct.hpp      26 Feb 2004 23:02:20 -0000      1.4
  +++ FunctionDistinct.hpp      8 Nov 2004 19:22:07 -0000       1.5
  @@ -64,12 +64,12 @@
   #else
        virtual FunctionDistinct*
   #endif
  -     clone() const;
  +     clone(MemoryManagerType& theManager) const;
   
   protected:
   
  -     const XalanDOMString
  -     getError() const;
  +     virtual const XalanDOMString&
  +     getError(XalanDOMString& theResult) const;
   
   private:
   
  
  
  
  1.7       +20 -12    
xml-xalan/c/src/xalanc/XalanExtensions/FunctionEvaluate.cpp
  
  Index: FunctionEvaluate.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionEvaluate.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- FunctionEvaluate.cpp      26 Feb 2004 23:02:20 -0000      1.6
  +++ FunctionEvaluate.cpp      8 Nov 2004 19:22:07 -0000       1.7
  @@ -64,11 +64,11 @@
   {
        // $$$ ToDo: Consider moving all of this into a member function of
        // XPathExecutionContext.
  -     XPathProcessorImpl                                      theProcessor;
  +    XPathProcessorImpl                                       
theProcessor(executionContext.getMemoryManager());
   
  -     XPathConstructionContextDefault         theConstructionContext;
  +     XPathConstructionContextDefault         
theConstructionContext(executionContext.getMemoryManager());
   
  -     XPath                                                           
theXPath(locator);
  +     XPath                                                           
theXPath(executionContext.getMemoryManager(), locator);
   
        theProcessor.initXPath(
                        theXPath,
  @@ -93,9 +93,11 @@
        assert(resolver == 0 || resolver->getNodeType() == 
XalanNode::ELEMENT_NODE);
   
   #if defined(XALAN_OLD_STYLE_CASTS)
  -     ElementPrefixResolverProxy      theProxy((const XalanElement*)resolver);
  +     ElementPrefixResolverProxy      
theProxy(executionContext.getMemoryManager(), 
  +                                            (const XalanElement*)resolver);
   #else
  -     ElementPrefixResolverProxy      theProxy(static_cast<const 
XalanElement*>(resolver));
  +     ElementPrefixResolverProxy      
theProxy(executionContext.getMemoryManager(), 
  +                                            static_cast<const 
XalanElement*>(resolver));
   #endif
   
        return doExecute(executionContext, context, expression, theProxy, 
locator);
  @@ -112,7 +114,9 @@
   {
        if (args.size() != 1)
        {
  -             executionContext.error(getError(), context, locator);
  +        XPathExecutionContext::GetAndReleaseCachedString 
theString(executionContext);
  +
  +             executionContext.error(getError(theString.get()), context, 
locator);
        }
   
        assert(args[0].null() == false);
  @@ -136,8 +140,10 @@
   
                        if (context->getNodeType() != XalanNode::ELEMENT_NODE)
                        {
  +                XPathExecutionContext::GetAndReleaseCachedString 
theString(executionContext);
  +
                                executionContext.warn(
  -                                     
XalanMessageLoader::getMessage(XalanMessages::NoPrefixResolverAvailable),
  +                                     
XalanMessageLoader::getMessage(XalanMessages::NoPrefixResolverAvailable, 
theString.get()),
                                        context,
                                        locator);
   
  @@ -156,17 +162,19 @@
   #else
   FunctionEvaluate*
   #endif
  -FunctionEvaluate::clone() const
  +FunctionEvaluate::clone(MemoryManagerType& theManager) const
   {
  -     return new FunctionEvaluate(*this);
  +     return cloneFunction_1<FunctionEvaluate>()( *this, theManager);
   }
   
   
   
  -const XalanDOMString
  -FunctionEvaluate::getError() const
  +const XalanDOMString&
  +FunctionEvaluate::getError(XalanDOMString& theResult) const
   {
  -     return 
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsOneArgument_1Param,"evaluate()");
  +     
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsOneArgument_1Param,theResult
 , "evaluate()");
  +
  +    return theResult;
   }
   
   
  
  
  
  1.6       +3 -3      
xml-xalan/c/src/xalanc/XalanExtensions/FunctionEvaluate.hpp
  
  Index: FunctionEvaluate.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionEvaluate.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FunctionEvaluate.hpp      26 Feb 2004 23:02:20 -0000      1.5
  +++ FunctionEvaluate.hpp      8 Nov 2004 19:22:07 -0000       1.6
  @@ -64,12 +64,12 @@
   #else
        virtual FunctionEvaluate*
   #endif
  -     clone() const;
  +     clone(MemoryManagerType& theManager) const;
   
   protected:
   
  -     const XalanDOMString
  -     getError() const;
  +     virtual const XalanDOMString&
  +     getError(XalanDOMString& theResult) const;
   
   private:
   
  
  
  
  1.6       +8 -6      
xml-xalan/c/src/xalanc/XalanExtensions/FunctionHasSameNodes.cpp
  
  Index: FunctionHasSameNodes.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionHasSameNodes.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FunctionHasSameNodes.cpp  26 Feb 2004 23:02:20 -0000      1.5
  +++ FunctionHasSameNodes.cpp  8 Nov 2004 19:22:07 -0000       1.6
  @@ -51,7 +51,9 @@
   {
        if (args.size() != 2)
        {
  -             executionContext.error(getError(), context, locator);
  +        XPathExecutionContext::GetAndReleaseCachedString     
theGuard(executionContext);
  +
  +             executionContext.error(getError(theGuard.get()), context, 
locator);
        }
   
        assert(args[0].null() == false && args[1].null() == false);
  @@ -91,17 +93,17 @@
   #else
   FunctionHasSameNodes*
   #endif
  -FunctionHasSameNodes::clone() const
  +FunctionHasSameNodes::clone(MemoryManagerType& theManager) const
   {
  -     return new FunctionHasSameNodes(*this);
  +     return cloneFunction_1<FunctionHasSameNodes>()(*this, theManager);
   }
   
   
   
  -const XalanDOMString
  -FunctionHasSameNodes::getError() const
  +const XalanDOMString&
  +FunctionHasSameNodes::getError(XalanDOMString& theResult) const
   {
  -     return 
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsTwoArguments_1Param,"has-same-nodes()");
  +     return 
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsTwoArguments_1Param,
 theResult, "has-same-nodes()");
   
   }
   
  
  
  
  1.5       +3 -3      
xml-xalan/c/src/xalanc/XalanExtensions/FunctionHasSameNodes.hpp
  
  Index: FunctionHasSameNodes.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionHasSameNodes.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FunctionHasSameNodes.hpp  26 Feb 2004 23:02:20 -0000      1.4
  +++ FunctionHasSameNodes.hpp  8 Nov 2004 19:22:07 -0000       1.5
  @@ -64,12 +64,12 @@
   #else
        virtual FunctionHasSameNodes*
   #endif
  -     clone() const;
  +     clone(MemoryManagerType& theManager) const;
   
   protected:
   
  -     const XalanDOMString
  -     getError() const;
  +     virtual const XalanDOMString&
  +     getError(XalanDOMString& theResult) const;
   
   private:
   
  
  
  
  1.6       +10 -6     
xml-xalan/c/src/xalanc/XalanExtensions/FunctionIntersection.cpp
  
  Index: FunctionIntersection.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionIntersection.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FunctionIntersection.cpp  26 Feb 2004 23:02:20 -0000      1.5
  +++ FunctionIntersection.cpp  8 Nov 2004 19:22:07 -0000       1.6
  @@ -51,7 +51,9 @@
   {
        if (args.size() != 2)
        {
  -             executionContext.error(getError(), context, locator);
  +        XalanDOMString theResult(executionContext.getMemoryManager());
  +
  +             executionContext.error(getError(theResult), context, locator);
        }
   
        assert(args[0].null() == false && args[1].null() == false);
  @@ -88,17 +90,19 @@
   #else
   FunctionIntersection*
   #endif
  -FunctionIntersection::clone() const
  +FunctionIntersection::clone(MemoryManagerType& theManager) const
   {
  -     return new FunctionIntersection(*this);
  +     return cloneFunction_1<FunctionIntersection>()( *this, theManager);
   }
   
   
   
  -const XalanDOMString
  -FunctionIntersection::getError() const
  +const XalanDOMString&
  +FunctionIntersection::getError(XalanDOMString& theResult) const
   {
  -     return 
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsTwoArguments_1Param,"intersection()");
  +     
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsTwoArguments_1Param,theResult,
 "intersection()");
  +
  +    return theResult;
   }
   
   
  
  
  
  1.5       +3 -3      
xml-xalan/c/src/xalanc/XalanExtensions/FunctionIntersection.hpp
  
  Index: FunctionIntersection.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionIntersection.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FunctionIntersection.hpp  26 Feb 2004 23:02:20 -0000      1.4
  +++ FunctionIntersection.hpp  8 Nov 2004 19:22:07 -0000       1.5
  @@ -64,12 +64,12 @@
   #else
        virtual FunctionIntersection*
   #endif
  -     clone() const;
  +     clone(MemoryManagerType& theManager) const;
   
   protected:
   
  -     const XalanDOMString
  -     getError() const;
  +     virtual const XalanDOMString&
  +     getError(XalanDOMString& theResult) const;
   
   private:
   
  
  
  
  1.7       +39 -33    
xml-xalan/c/src/xalanc/XalanExtensions/FunctionNodeSet.cpp
  
  Index: FunctionNodeSet.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionNodeSet.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- FunctionNodeSet.cpp       26 Feb 2004 23:02:20 -0000      1.6
  +++ FunctionNodeSet.cpp       8 Nov 2004 19:22:07 -0000       1.7
  @@ -35,15 +35,31 @@
   {
   public:
   
  -     XalanDocumentFragmentXNodeSetBaseProxy(const XObjectPtr&        
theXObject) :
  -             XNodeSetBase(),
  +     XalanDocumentFragmentXNodeSetBaseProxy(MemoryManagerType& theManager, 
const XObjectPtr& theXObject) :
  +             XNodeSetBase(theManager),
                m_xobject(theXObject),
                m_proxy(theXObject->rtree())
        {
        }
   
  -     XalanDocumentFragmentXNodeSetBaseProxy(const 
XalanDocumentFragmentXNodeSetBaseProxy&    theSource) :
  -             XNodeSetBase(theSource),
  +    static XalanDocumentFragmentXNodeSetBaseProxy*
  +    create(MemoryManagerType& theManager, const XObjectPtr&  theXObject)
  +    {
  +        typedef XalanDocumentFragmentXNodeSetBaseProxy ThisType;
  +        
  +        XalanMemMgrAutoPtr<ThisType, false> theGuard( theManager , 
(ThisType*)theManager.allocate(sizeof(ThisType)));
  +
  +        ThisType* theResult = theGuard.get();
  +
  +        new (theResult) ThisType(theManager, theXObject );
  +
  +        theGuard.release();
  +
  +        return theResult;
  +    }
  +
  +     XalanDocumentFragmentXNodeSetBaseProxy(MemoryManagerType& theManager, 
const XalanDocumentFragmentXNodeSetBaseProxy&     theSource) :
  +             XNodeSetBase(theSource, theManager),
                m_xobject(theSource.m_xobject),
                m_proxy(theSource.m_proxy)
        {
  @@ -54,23 +70,6 @@
        {
        }
   
  -     // These methods are inherited from XNodeSetBase...
  -#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
  -     virtual XObject*
  -#else
  -     virtual XalanDocumentFragmentXNodeSetBaseProxy*
  -#endif
  -     clone(void*             theAddress = 0) const
  -     {
  -             if (theAddress == 0)
  -             {
  -                     return new 
XalanDocumentFragmentXNodeSetBaseProxy(*this);
  -             }
  -             else
  -             {
  -                     return new (theAddress) 
XalanDocumentFragmentXNodeSetBaseProxy(*this);
  -             }
  -     }
   
        virtual const NodeRefListBase&
        nodeset() const
  @@ -127,7 +126,9 @@
   {
        if (args.size() != 1)
        {
  -             executionContext.error(getError(), context, locator);
  +        XalanDOMString theResult(executionContext.getMemoryManager());
  +
  +             executionContext.error(getError(theResult), context, locator);
        }
   
        assert(args[0].null() == false);
  @@ -137,12 +138,14 @@
        if (theType == XObject::eTypeResultTreeFrag ||
                (theType == XObject::eTypeString && m_convertString == true))
        {
  -             return XObjectPtr(new 
XalanDocumentFragmentXNodeSetBaseProxy(args[0]));
  +        return 
XObjectPtr(XalanDocumentFragmentXNodeSetBaseProxy::create(executionContext.getMemoryManager(),
 args[0]));
        }
        else
  -     {
  +     {        
  +        XalanDOMString theResult(executionContext.getMemoryManager());
  +
                executionContext.warn(
  -                     getInvalidArgumentTypeError(),
  +                     getInvalidArgumentTypeError(theResult),
                        context,
                        locator);
   
  @@ -157,26 +160,29 @@
   #else
   FunctionNodeSet*
   #endif
  -FunctionNodeSet::clone() const
  +FunctionNodeSet::clone(MemoryManagerType& theManager) const
   {
  -     return new FunctionNodeSet(*this);
  +     return cloneFunction_1<FunctionNodeSet>()( *this, theManager);
   }
   
   
   
  -const XalanDOMString
  -FunctionNodeSet::getError() const
  +const XalanDOMString&
  +FunctionNodeSet::getError(XalanDOMString& theResult) const
   {
  +    
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsOneArgument_1Param,
 theResult ,"nodeset()");
   
  -     return 
XalanMessageLoader::getMessage(XalanMessages::FunctionAcceptsOneArgument_1Param,"nodeset()");
  +     return theResult;
   }
   
   
   
  -const XalanDOMString
  -FunctionNodeSet::getInvalidArgumentTypeError() const
  +const XalanDOMString&
  +FunctionNodeSet::getInvalidArgumentTypeError(XalanDOMString& theResult) const
   {
  -     return 
XalanMessageLoader::getMessage(XalanMessages::InvalidArgumentTypeFunction_1Param,"nodeset()");
  +     
XalanMessageLoader::getMessage(XalanMessages::InvalidArgumentTypeFunction_1Param,
 theResult, "nodeset()");
  +
  +    return theResult;
   }
   
   
  
  
  
  1.5       +5 -5      
xml-xalan/c/src/xalanc/XalanExtensions/FunctionNodeSet.hpp
  
  Index: FunctionNodeSet.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/FunctionNodeSet.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FunctionNodeSet.hpp       26 Feb 2004 23:02:20 -0000      1.4
  +++ FunctionNodeSet.hpp       8 Nov 2004 19:22:07 -0000       1.5
  @@ -73,15 +73,15 @@
   #else
        virtual FunctionNodeSet*
   #endif
  -     clone() const;
  +     clone(MemoryManagerType& theManager) const;
   
   protected:
   
  -     virtual const XalanDOMString
  -     getError() const;
  +     virtual const XalanDOMString&
  +     getError(XalanDOMString& theResult) const;
   
  -     virtual const XalanDOMString
  -     getInvalidArgumentTypeError() const;
  +     virtual const XalanDOMString&
  +     getInvalidArgumentTypeError(XalanDOMString& theResult) const;
   
   private:
   
  
  
  
  1.5       +14 -12    
xml-xalan/c/src/xalanc/XalanExtensions/XalanExtensions.cpp
  
  Index: XalanExtensions.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/XalanExtensions.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XalanExtensions.cpp       26 Feb 2004 23:02:20 -0000      1.4
  +++ XalanExtensions.cpp       8 Nov 2004 19:22:07 -0000       1.5
  @@ -212,9 +212,9 @@
   
   
   void
  -XalanExtensionsInstaller::installGlobal()
  +XalanExtensionsInstaller::installGlobal(MemoryManagerType& theManager)
   {
  -     doInstallGlobal(s_extensionsNamespace, theFunctionTable);
  +     doInstallGlobal( theManager, s_extensionsNamespace, theFunctionTable);
   }
   
   
  @@ -228,9 +228,9 @@
   
   
   void
  -XalanExtensionsInstaller::uninstallGlobal()
  +XalanExtensionsInstaller::uninstallGlobal(MemoryManagerType& theManager)
   {
  -     doUninstallGlobal(s_extensionsNamespace, theFunctionTable);
  +     doUninstallGlobal(theManager, s_extensionsNamespace, theFunctionTable);
   }
   
   
  @@ -243,8 +243,8 @@
   {
        assert(theNamespace != 0);
   
  -     const XalanDOMString    theNamespaceString(theNamespace);
  -     XalanDOMString                  theFunctionName;
  +     const XalanDOMString    theNamespaceString(theNamespace, 
theSupport.getMemoryManager());
  +     XalanDOMString                  theFunctionName( 
theSupport.getMemoryManager());
   
        for(const FunctionTableEntry* theEntry = theFunctionTable; 
theEntry->theFunctionName != 0; ++theEntry)
        {
  @@ -260,13 +260,14 @@
   
   void
   XalanExtensionsInstaller::doInstallGlobal(
  +            MemoryManagerType&          theManager,
                        const XalanDOMChar*                     theNamespace,
                        const FunctionTableEntry        theFunctionTable[])
   {
        assert(theNamespace != 0);
   
  -     const XalanDOMString    theNamespaceString(theNamespace);
  -     XalanDOMString                  theFunctionName;
  +     const XalanDOMString    theNamespaceString(theNamespace, theManager);
  +     XalanDOMString                  theFunctionName(theManager);
   
        for(const FunctionTableEntry* theEntry = theFunctionTable; 
theEntry->theFunctionName != 0; ++theEntry)
        {
  @@ -288,8 +289,8 @@
   {
        assert(theNamespace != 0);
   
  -     const XalanDOMString    theNamespaceString(theNamespace);
  -     XalanDOMString                  theFunctionName;
  +     const XalanDOMString    theNamespaceString(theNamespace, 
theSupport.getMemoryManager());
  +     XalanDOMString                  
theFunctionName(theSupport.getMemoryManager());
   
        for(const FunctionTableEntry* theEntry = theFunctionTable; 
theEntry->theFunctionName != 0; ++theEntry)
        {
  @@ -303,13 +304,14 @@
   
   void
   XalanExtensionsInstaller::doUninstallGlobal(
  +            MemoryManagerType&          theManager,
                        const XalanDOMChar*                     theNamespace,
                        const FunctionTableEntry        theFunctionTable[])
   {
        assert(theNamespace != 0);
   
  -     const XalanDOMString    theNamespaceString(theNamespace);
  -     XalanDOMString                  theFunctionName;
  +     const XalanDOMString    theNamespaceString(theNamespace, theManager);
  +     XalanDOMString                  theFunctionName(theManager);
   
        for(const FunctionTableEntry* theEntry = theFunctionTable; 
theEntry->theFunctionName != 0; ++theEntry)
        {
  
  
  
  1.5       +4 -2      
xml-xalan/c/src/xalanc/XalanExtensions/XalanExtensions.hpp
  
  Index: XalanExtensions.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/c/src/xalanc/XalanExtensions/XalanExtensions.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XalanExtensions.hpp       26 Feb 2004 23:02:20 -0000      1.4
  +++ XalanExtensions.hpp       8 Nov 2004 19:22:07 -0000       1.5
  @@ -50,13 +50,13 @@
        installLocal(XPathEnvSupportDefault&    theSupport);
   
        static void
  -     installGlobal();
  +     installGlobal(MemoryManagerType& theManager);
   
        static void
        uninstallLocal(XPathEnvSupportDefault&  theSupport);
   
        static void
  -     uninstallGlobal();
  +     uninstallGlobal(MemoryManagerType& theManager);
   
   protected:
   
  @@ -68,6 +68,7 @@
   
        static void
        doInstallGlobal(
  +            MemoryManagerType&          theManager,
                        const XalanDOMChar*                     theNamespace,
                        const FunctionTableEntry        theFunctionTable[]);
   
  @@ -79,6 +80,7 @@
   
        static void
        doUninstallGlobal(
  +            MemoryManagerType&          theManager,
                        const XalanDOMChar*                     theNamespace,
                        const FunctionTableEntry        theFunctionTable[]);
   };
  
  
  

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

Reply via email to