Author: borisk
Date: Fri Mar 14 05:40:55 2008
New Revision: 637083

URL: http://svn.apache.org/viewvc?rev=637083&view=rev
Log:
Allow providing a separate memory manager for exceptions (XERCESC-1730). Remove 
unused MemoryManagerArrayImpl.

Removed:
    xerces/c/trunk/src/xercesc/internal/MemoryManagerArrayImpl.cpp
    xerces/c/trunk/src/xercesc/internal/MemoryManagerArrayImpl.hpp
Modified:
    
xerces/c/trunk/Projects/MacOS/Xcode/XercesLib/XercesLib.xcode/project.pbxproj
    xerces/c/trunk/Projects/Win32/BCB6/Xerces-all/XercesLib/XercesLib.bpr
    xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak
    xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
    xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.mak
    xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj
    xerces/c/trunk/Projects/Win32/VC8/xerces-all/XercesLib/XercesLib.vcproj
    xerces/c/trunk/Projects/Win32/VC9/xerces-all/XercesLib/XercesLib.vcproj
    xerces/c/trunk/src/Makefile.am
    xerces/c/trunk/src/xercesc/dom/DOMException.cpp
    xerces/c/trunk/src/xercesc/framework/MemoryManager.hpp
    xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.cpp
    xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.hpp
    xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp
    xerces/c/trunk/src/xercesc/util/XMLException.cpp
    xerces/c/trunk/swig/perl/xerces-headers.txt
    xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.cpp
    xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.hpp

Modified: 
xerces/c/trunk/Projects/MacOS/Xcode/XercesLib/XercesLib.xcode/project.pbxproj
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/Projects/MacOS/Xcode/XercesLib/XercesLib.xcode/project.pbxproj?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- 
xerces/c/trunk/Projects/MacOS/Xcode/XercesLib/XercesLib.xcode/project.pbxproj 
(original)
+++ 
xerces/c/trunk/Projects/MacOS/Xcode/XercesLib/XercesLib.xcode/project.pbxproj 
Fri Mar 14 05:40:55 2008
@@ -9227,22 +9227,6 @@
                        settings = {
                        };
                };
-               9067ED1604FC0A9600A80082 = {
-                       fileEncoding = 30;
-                       isa = PBXFileReference;
-                       lastKnownFileType = sourcecode.cpp.h;
-                       path = MemoryManagerArrayImpl.hpp;
-                       refType = 4;
-                       sourceTree = "<group>";
-               };
-               9067ED1704FC0A9600A80082 = {
-                       fileEncoding = 30;
-                       isa = PBXFileReference;
-                       lastKnownFileType = sourcecode.cpp.cpp;
-                       path = MemoryManagerArrayImpl.cpp;
-                       refType = 4;
-                       sourceTree = "<group>";
-               };
                906C9B3F06FF69AA00D1DCE1 = {
                        fileEncoding = 30;
                        isa = PBXFileReference;

Modified: xerces/c/trunk/Projects/Win32/BCB6/Xerces-all/XercesLib/XercesLib.bpr
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/Projects/Win32/BCB6/Xerces-all/XercesLib/XercesLib.bpr?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/BCB6/Xerces-all/XercesLib/XercesLib.bpr 
(original)
+++ xerces/c/trunk/Projects/Win32/BCB6/Xerces-all/XercesLib/XercesLib.bpr Fri 
Mar 14 05:40:55 2008
@@ -117,7 +117,6 @@
       ..\..\..\..\..\Build\Win32\BCB6\obj\ElemStack.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\IGXMLScanner.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\IGXMLScanner2.obj 
-      ..\..\..\..\..\Build\Win32\BCB6\obj\MemoryManagerArrayImpl.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\MemoryManagerImpl.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\ReaderMgr.obj 
       ..\..\..\..\..\Build\Win32\BCB6\obj\SGXMLScanner.obj 
@@ -487,7 +486,6 @@
       <FILE FILENAME="..\..\..\..\..\src\xercesc\internal\ElemStack.cpp" 
FORMNAME="" UNITNAME="ElemStack" CONTAINERID="CCompiler" DESIGNCLASS="" 
LOCALCOMMAND=""/>
       <FILE FILENAME="..\..\..\..\..\src\xercesc\internal\IGXMLScanner.cpp" 
FORMNAME="" UNITNAME="IGXMLScanner" CONTAINERID="CCompiler" DESIGNCLASS="" 
LOCALCOMMAND=""/>
       <FILE FILENAME="..\..\..\..\..\src\xercesc\internal\IGXMLScanner2.cpp" 
FORMNAME="" UNITNAME="IGXMLScanner2" CONTAINERID="CCompiler" DESIGNCLASS="" 
LOCALCOMMAND=""/>
-      <FILE 
FILENAME="..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.cpp" 
FORMNAME="" UNITNAME="MemoryManagerArrayImpl" CONTAINERID="CCompiler" 
DESIGNCLASS="" LOCALCOMMAND=""/>
       <FILE 
FILENAME="..\..\..\..\..\src\xercesc\internal\MemoryManagerImpl.cpp" 
FORMNAME="" UNITNAME="MemoryManagerImpl" CONTAINERID="CCompiler" DESIGNCLASS="" 
LOCALCOMMAND=""/>
       <FILE FILENAME="..\..\..\..\..\src\xercesc\internal\ReaderMgr.cpp" 
FORMNAME="" UNITNAME="ReaderMgr" CONTAINERID="CCompiler" DESIGNCLASS="" 
LOCALCOMMAND=""/>
       <FILE FILENAME="..\..\..\..\..\src\xercesc\internal\SGXMLScanner.cpp" 
FORMNAME="" UNITNAME="SGXMLScanner" CONTAINERID="CCompiler" DESIGNCLASS="" 
LOCALCOMMAND=""/>

Modified: 
xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak 
(original)
+++ xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak 
Fri Mar 14 05:40:55 2008
@@ -281,7 +281,6 @@
     $(TARGETPATH)\obj\XProtoType.obj \
     $(TARGETPATH)\obj\XSerializeEngine.obj \
     $(TARGETPATH)\obj\XTemplateSerializer.obj \
-    $(TARGETPATH)\obj\MemoryManagerArrayImpl.obj \
     $(TARGETPATH)\obj\ValidationContextImpl.obj \
     $(TARGETPATH)\obj\XMLRefInfo.obj \
     $(TARGETPATH)\obj\XMLAttDefList.obj \

Modified: xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp 
(original)
+++ xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp Fri 
Mar 14 05:40:55 2008
@@ -1724,14 +1724,6 @@
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.hpp
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\..\..\..\src\xercesc\internal\MemoryManagerImpl.cpp
 # End Source File
 # Begin Source File

Modified: xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.mak
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.mak?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.mak 
(original)
+++ xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.mak Fri 
Mar 14 05:40:55 2008
@@ -174,7 +174,6 @@
        [EMAIL PROTECTED] "$(INTDIR)\Match.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemBufFormatTarget.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemBufInputSource.obj"
-       [EMAIL PROTECTED] "$(INTDIR)\MemoryManagerArrayImpl.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemoryManagerImpl.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MixedContentModel.obj"
        [EMAIL PROTECTED] "$(INTDIR)\ModifierToken.obj"
@@ -504,7 +503,6 @@
        "$(INTDIR)\ElemStack.obj" \
        "$(INTDIR)\IGXMLScanner.obj" \
        "$(INTDIR)\IGXMLScanner2.obj" \
-       "$(INTDIR)\MemoryManagerArrayImpl.obj" \
        "$(INTDIR)\MemoryManagerImpl.obj" \
        "$(INTDIR)\ReaderMgr.obj" \
        "$(INTDIR)\SGXMLScanner.obj" \
@@ -821,7 +819,6 @@
        [EMAIL PROTECTED] "$(INTDIR)\Match.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemBufFormatTarget.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemBufInputSource.obj"
-       [EMAIL PROTECTED] "$(INTDIR)\MemoryManagerArrayImpl.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemoryManagerImpl.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MixedContentModel.obj"
        [EMAIL PROTECTED] "$(INTDIR)\ModifierToken.obj"
@@ -1152,7 +1149,6 @@
        "$(INTDIR)\ElemStack.obj" \
        "$(INTDIR)\IGXMLScanner.obj" \
        "$(INTDIR)\IGXMLScanner2.obj" \
-       "$(INTDIR)\MemoryManagerArrayImpl.obj" \
        "$(INTDIR)\MemoryManagerImpl.obj" \
        "$(INTDIR)\ReaderMgr.obj" \
        "$(INTDIR)\SGXMLScanner.obj" \
@@ -1469,7 +1465,6 @@
        [EMAIL PROTECTED] "$(INTDIR)\Match.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemBufFormatTarget.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemBufInputSource.obj"
-       [EMAIL PROTECTED] "$(INTDIR)\MemoryManagerArrayImpl.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemoryManagerImpl.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MixedContentModel.obj"
        [EMAIL PROTECTED] "$(INTDIR)\ModifierToken.obj"
@@ -1801,7 +1796,6 @@
        "$(INTDIR)\ElemStack.obj" \
        "$(INTDIR)\IGXMLScanner.obj" \
        "$(INTDIR)\IGXMLScanner2.obj" \
-       "$(INTDIR)\MemoryManagerArrayImpl.obj" \
        "$(INTDIR)\MemoryManagerImpl.obj" \
        "$(INTDIR)\ReaderMgr.obj" \
        "$(INTDIR)\SGXMLScanner.obj" \
@@ -2118,7 +2112,6 @@
        [EMAIL PROTECTED] "$(INTDIR)\Match.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemBufFormatTarget.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemBufInputSource.obj"
-       [EMAIL PROTECTED] "$(INTDIR)\MemoryManagerArrayImpl.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MemoryManagerImpl.obj"
        [EMAIL PROTECTED] "$(INTDIR)\MixedContentModel.obj"
        [EMAIL PROTECTED] "$(INTDIR)\ModifierToken.obj"
@@ -2449,7 +2442,6 @@
        "$(INTDIR)\ElemStack.obj" \
        "$(INTDIR)\IGXMLScanner.obj" \
        "$(INTDIR)\IGXMLScanner2.obj" \
-       "$(INTDIR)\MemoryManagerArrayImpl.obj" \
        "$(INTDIR)\MemoryManagerImpl.obj" \
        "$(INTDIR)\ReaderMgr.obj" \
        "$(INTDIR)\SGXMLScanner.obj" \
@@ -3587,12 +3579,6 @@
 SOURCE=..\..\..\..\..\src\xercesc\internal\IGXMLScanner2.cpp
 
 "$(INTDIR)\IGXMLScanner2.obj" : $(SOURCE) "$(INTDIR)"
-       $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.cpp
-
-"$(INTDIR)\MemoryManagerArrayImpl.obj" : $(SOURCE) "$(INTDIR)"
        $(CPP) $(CPP_PROJ) $(SOURCE)
 
 

Modified: 
xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj 
(original)
+++ xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj 
Fri Mar 14 05:40:55 2008
@@ -1706,12 +1706,6 @@
                                
RelativePath="..\..\..\..\..\src\xercesc\internal\IGXMLScanner2.cpp">
                        </File>
                        <File
-                               
RelativePath="..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.cpp">
-                       </File>
-                       <File
-                               
RelativePath="..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.hpp">
-                       </File>
-                       <File
                                
RelativePath="..\..\..\..\..\src\xercesc\internal\MemoryManagerImpl.cpp">
                        </File>
                        <File

Modified: 
xerces/c/trunk/Projects/Win32/VC8/xerces-all/XercesLib/XercesLib.vcproj
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/Projects/Win32/VC8/xerces-all/XercesLib/XercesLib.vcproj?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/VC8/xerces-all/XercesLib/XercesLib.vcproj 
(original)
+++ xerces/c/trunk/Projects/Win32/VC8/xerces-all/XercesLib/XercesLib.vcproj Fri 
Mar 14 05:40:55 2008
@@ -3060,14 +3060,6 @@
                                >
                        </File>
                        <File
-                               
RelativePath="..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.cpp"
-                               >
-                       </File>
-                       <File
-                               
RelativePath="..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.hpp"
-                               >
-                       </File>
-                       <File
                                
RelativePath="..\..\..\..\..\src\xercesc\internal\MemoryManagerImpl.cpp"
                                >
                        </File>

Modified: 
xerces/c/trunk/Projects/Win32/VC9/xerces-all/XercesLib/XercesLib.vcproj
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/Projects/Win32/VC9/xerces-all/XercesLib/XercesLib.vcproj?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/VC9/xerces-all/XercesLib/XercesLib.vcproj 
(original)
+++ xerces/c/trunk/Projects/Win32/VC9/xerces-all/XercesLib/XercesLib.vcproj Fri 
Mar 14 05:40:55 2008
@@ -3147,14 +3147,6 @@
                                >
                        </File>
                        <File
-                               
RelativePath="..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.cpp"
-                               >
-                       </File>
-                       <File
-                               
RelativePath="..\..\..\..\..\src\xercesc\internal\MemoryManagerArrayImpl.hpp"
-                               >
-                       </File>
-                       <File
                                
RelativePath="..\..\..\..\..\src\xercesc\internal\MemoryManagerImpl.cpp"
                                >
                        </File>

Modified: xerces/c/trunk/src/Makefile.am
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/Makefile.am?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/src/Makefile.am (original)
+++ xerces/c/trunk/src/Makefile.am Fri Mar 14 05:40:55 2008
@@ -472,7 +472,6 @@
        xercesc/internal/EndOfEntityException.hpp \
        xercesc/internal/IANAEncodings.hpp \
        xercesc/internal/IGXMLScanner.hpp \
-       xercesc/internal/MemoryManagerArrayImpl.hpp \
        xercesc/internal/MemoryManagerImpl.hpp \
        xercesc/internal/ReaderMgr.hpp \
        xercesc/internal/SGXMLScanner.hpp \
@@ -500,7 +499,6 @@
        xercesc/internal/ElemStack.cpp \
        xercesc/internal/IGXMLScanner.cpp \
        xercesc/internal/IGXMLScanner2.cpp \
-       xercesc/internal/MemoryManagerArrayImpl.cpp \
        xercesc/internal/MemoryManagerImpl.cpp \
        xercesc/internal/ReaderMgr.cpp \
        xercesc/internal/SGXMLScanner.cpp \

Modified: xerces/c/trunk/src/xercesc/dom/DOMException.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/dom/DOMException.cpp?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/DOMException.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/DOMException.cpp Fri Mar 14 05:40:55 2008
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -44,22 +44,26 @@
 ,msg(0)
 ,fMemoryManager(0)
 ,fMsgOwned(false)
-{      
+{
 }
 
 DOMException::DOMException(      short                 exCode
                          ,       short                 messageCode
                          ,       MemoryManager* const  memoryManager)
 :code((ExceptionCode) exCode)
-,fMemoryManager(memoryManager)
+,fMemoryManager(0)
 ,fMsgOwned(true)
 {
+    if (memoryManager)
+      fMemoryManager = memoryManager->getExceptionMemoryManager();
+
     const XMLSize_t msgSize = 2047;
     XMLCh errText[msgSize + 1];
 
     // load the text
     if(messageCode==0)
         messageCode=XMLDOMMsg::DOMEXCEPTION_ERRX+exCode;
+
     msg = XMLString::replicate
          (
           DOMImplementationImpl::getMsgLoader4DOM()->loadMsg(messageCode, 
errText, msgSize) ? errText : XMLUni::fgDefErrMsg
@@ -73,7 +77,8 @@
 ,fMemoryManager(other.fMemoryManager)
 ,fMsgOwned(other.fMsgOwned)
 {
-    msg = other.fMsgOwned? XMLString::replicate(other.msg, 
other.fMemoryManager) : other.msg;
+    if (other.msg)
+      msg = other.fMsgOwned? XMLString::replicate(other.msg, 
other.fMemoryManager) : other.msg;
 }
 
 XERCES_CPP_NAMESPACE_END

Modified: xerces/c/trunk/src/xercesc/framework/MemoryManager.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/framework/MemoryManager.hpp?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/framework/MemoryManager.hpp (original)
+++ xerces/c/trunk/src/xercesc/framework/MemoryManager.hpp Fri Mar 14 05:40:55 
2008
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -34,7 +34,7 @@
  *  Configurable memory manager
  *
  *  <p>This interface allows outside applications to plug in their own memory
- *  manager to be used by Xerces for memory allocation/deallocation.</p> 
+ *  manager to be used by Xerces for memory allocation/deallocation.</p>
  */
 class XMLPARSER_EXPORT MemoryManager
 {
@@ -53,6 +53,16 @@
     {
     }
     //@}
+
+
+    /**
+      * This method is called to obtain the memory manager that should be
+      * used to allocate memory used in exceptions. If the same memory
+      * manager can be used, simply return 'this' from this function.
+      *
+      * @return A pointer to the memory manager
+      */
+    virtual MemoryManager* getExceptionMemoryManager() = 0;
 
 
     // -----------------------------------------------------------------------

Modified: xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.cpp?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.cpp Fri Mar 14 
05:40:55 2008
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -27,6 +27,11 @@
 #include <xercesc/util/OutOfMemoryException.hpp>
 
 XERCES_CPP_NAMESPACE_BEGIN
+
+MemoryManager* MemoryManagerImpl::getExceptionMemoryManager()
+{
+  return this;
+}
 
 void* MemoryManagerImpl::allocate(size_t size)
 {

Modified: xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.hpp?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.hpp (original)
+++ xerces/c/trunk/src/xercesc/internal/MemoryManagerImpl.hpp Fri Mar 14 
05:40:55 2008
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -60,6 +60,16 @@
     {
     }
     //@}
+
+
+    /**
+      * This method is called to obtain the memory manager that should be
+      * used to allocate memory used in exceptions.
+      *
+      * @return A pointer to the memory manager
+      */
+    virtual MemoryManager* getExceptionMemoryManager();
+
 
     /** @name The virtual methods in MemoryManager */
     //@{

Modified: xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp (original)
+++ xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp Fri Mar 14 05:40:55 2008
@@ -49,7 +49,6 @@
 #include <xercesc/util/DefaultPanicHandler.hpp>
 #include <xercesc/util/XMLInitializer.hpp>
 #include <xercesc/internal/MemoryManagerImpl.hpp>
-#include <xercesc/internal/MemoryManagerArrayImpl.hpp>
 
 #include <xercesc/util/XMLFileMgr.hpp>
 #if XERCES_USE_FILEMGR_POSIX

Modified: xerces/c/trunk/src/xercesc/util/XMLException.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/util/XMLException.cpp?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/XMLException.cpp (original)
+++ xerces/c/trunk/src/xercesc/util/XMLException.cpp Fri Mar 14 05:40:55 2008
@@ -86,7 +86,8 @@
     , fSrcFile(0)
     , fSrcLine(0)
     , fMsg(0)
-    , fMemoryManager(XMLPlatformUtils::fgMemoryManager)
+    , fMemoryManager(
+        XMLPlatformUtils::fgMemoryManager->getExceptionMemoryManager())
 {
 }
 
@@ -99,10 +100,14 @@
     , fSrcFile(0)
     , fSrcLine(srcLine)
     , fMsg(0)
-    , fMemoryManager(memoryManager)
+    , fMemoryManager(0)
 {
     if (!memoryManager)
-        fMemoryManager = XMLPlatformUtils::fgMemoryManager;
+      fMemoryManager =
+        XMLPlatformUtils::fgMemoryManager->getExceptionMemoryManager();
+    else
+      fMemoryManager = memoryManager->getExceptionMemoryManager();
+
     fSrcFile = XMLString::replicate(srcFile, fMemoryManager);
 }
 

Modified: xerces/c/trunk/swig/perl/xerces-headers.txt
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/swig/perl/xerces-headers.txt?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/swig/perl/xerces-headers.txt (original)
+++ xerces/c/trunk/swig/perl/xerces-headers.txt Fri Mar 14 05:40:55 2008
@@ -605,7 +605,6 @@
 xercesc/dom/impl/DOMTreeWalkerImpl.hpp
 xercesc/dom/impl/DOMTypeInfoImpl.hpp
 xercesc/dom/impl/XSDElementNSImpl.hpp
-xercesc/internal/MemoryManagerArrayImpl.hpp
 xercesc/internal/MemoryManagerImpl.hpp
 xercesc/internal/ValidationContextImpl.hpp
 xercesc/internal/VecAttrListImpl.hpp

Modified: xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.cpp?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.cpp (original)
+++ xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.cpp Fri Mar 14 
05:40:55 2008
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -36,6 +36,11 @@
 #include <xercesc/util/OutOfMemoryException.hpp>
 #include <xercesc/dom/DOM.hpp>
 
+MemoryManager* MemoryMonitor::getExceptionMemoryManager()
+{
+  return this;
+}
+
 void* MemoryMonitor::allocate(size_t size)
 {
     void *key = ::operator new(size);
@@ -53,10 +58,10 @@
     ::operator delete(p);
 }
 
-unsigned int MemoryMonitor::getTotalMemory() 
+unsigned int MemoryMonitor::getTotalMemory()
 {
     unsigned int total = 0;
-    ValueHashTableOfEnumerator<unsigned int> *memEnum = 
+    ValueHashTableOfEnumerator<unsigned int> *memEnum =
             new ValueHashTableOfEnumerator<unsigned int>(fHashTable);
     while(memEnum->hasMoreElements()) {
         total += memEnum->nextElement();
@@ -81,28 +86,28 @@
             "    -n          Enable namespace processing. Defaults to off.\n"
             "    -s          Enable schema processing. Defaults to off.\n"
             "    -f          Enable full schema constraint checking. Defaults 
to off.\n"
-            "    -r=n        Run file through domBuilders n times.\n" 
+            "    -r=n        Run file through domBuilders n times.\n"
                    "    -?          Show this help.\n\n"
             "  * = Default if not provided explicitly.\n"
          << XERCES_STD_QUALIFIER endl;
 }
 
-class DOMLSParserHandler : public DOMErrorHandler 
+class DOMLSParserHandler : public DOMErrorHandler
 {
 public:
     DOMLSParserHandler() {};
     ~DOMLSParserHandler() {};
-    bool handleError(const DOMError &error) 
+    bool handleError(const DOMError &error)
     {
         char *message = 0;
-        XERCES_STD_QUALIFIER cerr << "Error occurred in DOMBuilder!  Message:  
" << 
+        XERCES_STD_QUALIFIER cerr << "Error occurred in DOMBuilder!  Message:  
" <<
             (message = XMLString::transcode(error.getMessage())) << " of 
severity " << error.getSeverity() << "." << XERCES_STD_QUALIFIER endl;
         XMLString::release(&message);
         return true;
     }
 };
 
-class SAXErrorHandler : public ErrorHandler 
+class SAXErrorHandler : public ErrorHandler
 {
 public:
     SAXErrorHandler() {};
@@ -143,7 +148,7 @@
  * allocations/deallocations.
  */
 
-int main (int argC,  char *argV[]) 
+int main (int argC,  char *argV[])
 {
 
     MemoryMonitor *staticMemMonitor = new MemoryMonitor();
@@ -271,7 +276,7 @@
     SAXParser *saxParser = new (sax1MemMonitor) SAXParser(0, sax1MemMonitor);
     saxParser->setErrorHandler(&saxErrorHandler);
 
-    // set features 
+    // set features
     domBuilder->getDomConfig()->setParameter(XMLUni::fgDOMNamespaces, 
doNamespaces);
     sax2parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, doNamespaces);
     saxParser->setDoNamespaces(doNamespaces);
@@ -378,7 +383,7 @@
             }
             catch (const XMLException& toCatch)
             {
-                char *msg = XMLString::transcode(toCatch.getMessage()); 
+                char *msg = XMLString::transcode(toCatch.getMessage());
                 XERCES_STD_QUALIFIER cerr << "\nError during parsing: '" << 
xmlFile << "'\n"
                     << "Exception message is:  \n"
                     << msg << "\n" << XERCES_STD_QUALIFIER endl;
@@ -395,7 +400,7 @@
 
                 if (DOMImplementation::loadDOMExceptionMsg(toCatch.code, 
errText, maxChars))
                 {
-                    char * msg = XMLString::transcode(errText); 
+                    char * msg = XMLString::transcode(errText);
                     XERCES_STD_QUALIFIER cerr << "Message is: " << msg << 
XERCES_STD_QUALIFIER endl;
 
                     continue;

Modified: xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.hpp?rev=637083&r1=637082&r2=637083&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.hpp (original)
+++ xerces/c/trunk/tests/src/MemHandlerTest/MemoryMonitor.hpp Fri Mar 14 
05:40:55 2008
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -42,8 +42,8 @@
 /**
   * Configurable memory manager
   *
-  * <p>This class is a memory manager implementation that keeps track of all 
-  * allocations/deallocations to ensure that all memory that it allocated is 
+  * <p>This class is a memory manager implementation that keeps track of all
+  * allocations/deallocations to ensure that all memory that it allocated is
   * deallocated.
   * </p>
   */
@@ -59,7 +59,7 @@
       * Default constructor
       */
     MemoryMonitor()
-    { 
+    {
         fHashType = new SimpleHashPtr();
         fHashTable = new SimpleValueHashTableOf<unsigned int>(1013, fHashType);
     }
@@ -78,6 +78,8 @@
     }
     //@}
 
+    virtual MemoryManager* getExceptionMemoryManager();
+
     /** @name The virtual methods in MemoryManager */
     //@{
 
@@ -98,7 +100,7 @@
     virtual void deallocate(void* p);
 
     //@}
-    
+
     // Print out amount of currently allocated memory
     unsigned int getTotalMemory();
 



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

Reply via email to