From b7738d873008883b68506c47fb302aed06254b82 Mon Sep 17 00:00:00 2001 From: David Abram Cargill <cargilld@apache.org> Date: Wed, 27 Jul 2005 14:03:11 +0000 Subject: [PATCH] Update loadAMsgSet routines to have consisent behaviour. git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@225520 13f79535-47bb-0310-9956-ffa450edef68 --- .../Platforms/Win32/Win32PlatformUtils.cpp | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp b/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp index ce609e816..b4f951ce5 100644 --- a/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp +++ b/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp @@ -31,6 +31,7 @@ #include <xercesc/util/XMLUniDefs.hpp> #include <xercesc/util/XMLUni.hpp> #include <xercesc/util/PanicHandler.hpp> +#include <xercesc/util/OutOfMemoryException.hpp> #include <windows.h> #include <stdio.h> @@ -769,15 +770,29 @@ XMLNetAccessor* XMLPlatformUtils::makeNetAccessor() // XMLMsgLoader* XMLPlatformUtils::loadAMsgSet(const XMLCh* const msgDomain) { + XMLMsgLoader* retVal; + try + { #if defined (XML_USE_INMEM_MESSAGELOADER) - return new (fgMemoryManager) InMemMsgLoader(msgDomain); + retVal = new (fgMemoryManager) InMemMsgLoader(msgDomain); #elif defined (XML_USE_WIN32_MSGLOADER) - return new (fgMemoryManager) Win32MsgLoader(msgDomain); + retVal = new (fgMemoryManager) Win32MsgLoader(msgDomain); #elif defined (XML_USE_ICU_MESSAGELOADER) - return new (fgMemoryManager) ICUMsgLoader(msgDomain); + retVal = new (fgMemoryManager) ICUMsgLoader(msgDomain); #else - #error You must provide a message loader + #error You must provide a message loader + return 0; #endif + } + catch(const OutOfMemoryException&) + { + throw; + } + catch(...) + { + panic(PanicHandler::Panic_CantLoadMsgDomain); + } + return retVal; } -- GitLab