knoaman 2004/10/20 08:19:07 Modified: c/src/xercesc/validators/datatype DatatypeValidatorFactory.cpp DatatypeValidatorFactory.hpp c/src/xercesc/validators/DTD DTDGrammar.cpp DTDGrammar.hpp c/src/xercesc/validators/schema ComplexTypeInfo.cpp GeneralAttributeCheck.cpp XSDErrorReporter.cpp Log: Allow option of initializing static data in XMLPlatformUtils::Initialize Revision Changes Path 1.30 +13 -0 xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp Index: DatatypeValidatorFactory.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- DatatypeValidatorFactory.cpp 13 Sep 2004 21:38:34 -0000 1.29 +++ DatatypeValidatorFactory.cpp 20 Oct 2004 15:19:07 -0000 1.30 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.30 2004/10/20 15:19:07 knoaman + * Allow option of initializing static data in XMLPlatformUtils::Initialize + * * Revision 1.29 2004/09/13 21:38:34 peiyongz * getBuiltInBaseValidator * @@ -225,6 +228,7 @@ #include <xercesc/validators/datatype/DurationDatatypeValidator.hpp> #include <xercesc/util/PlatformUtils.hpp> #include <xercesc/util/XMLRegisterCleanup.hpp> +#include <xercesc/util/XMLInitializer.hpp> #include <xercesc/internal/XTemplateSerializer.hpp> #include <xercesc/util/HashPtr.hpp> @@ -346,6 +350,15 @@ delete sBuiltInRegistryMutex; sBuiltInRegistryMutex = 0; sBuiltInRegistryMutexRegistered = false; +} + +void XMLInitializer::initializeDVFactory() +{ + DatatypeValidatorFactory *dvFactory = new DatatypeValidatorFactory(); + if (dvFactory) { + dvFactory->expandRegistryToFullSchemaSet(); + delete dvFactory; + } } // --------------------------------------------------------------------------- 1.18 +6 -3 xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp Index: DatatypeValidatorFactory.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- DatatypeValidatorFactory.hpp 13 Sep 2004 21:38:34 -0000 1.17 +++ DatatypeValidatorFactory.hpp 20 Oct 2004 15:19:07 -0000 1.18 @@ -278,8 +278,11 @@ // --------------------------------------------------------------------------- inline void DatatypeValidatorFactory::cleanUp() { - delete fUserDefinedRegistry; - fUserDefinedRegistry = 0; + if (fUserDefinedRegistry) + { + delete fUserDefinedRegistry; + fUserDefinedRegistry = 0; + } } XERCES_CPP_NAMESPACE_END 1.21 +31 -0 xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.cpp Index: DTDGrammar.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- DTDGrammar.cpp 8 Sep 2004 13:56:50 -0000 1.20 +++ DTDGrammar.cpp 20 Oct 2004 15:19:07 -0000 1.21 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.21 2004/10/20 15:19:07 knoaman + * Allow option of initializing static data in XMLPlatformUtils::Initialize + * * Revision 1.20 2004/09/08 13:56:50 peiyongz * Apache License Version 2.0 * @@ -94,6 +97,7 @@ #include <xercesc/util/XMLUniDefs.hpp> #include <xercesc/util/XMLUni.hpp> #include <xercesc/util/XMLRegisterCleanup.hpp> +#include <xercesc/util/XMLInitializer.hpp> #include <xercesc/validators/DTD/DTDGrammar.hpp> #include <xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp> @@ -112,6 +116,33 @@ // DTDGrammar: Static member data // --------------------------------------------------------------------------- NameIdPool<DTDEntityDecl>* DTDGrammar::fDefaultEntities = 0; + +void XMLInitializer::initializeDTDGrammarDfltEntities() +{ + DTDGrammar::fDefaultEntities = new NameIdPool<DTDEntityDecl>(11, 12); + + // Add the default entity entries for the character refs that must + // always be present. We indicate that they are from the internal + // subset. They aren't really, but they have to look that way so + // that they are still valid for use within a standalone document. + // + // We also mark them as special char entities, which allows them + // to be used in places whether other non-numeric general entities + // cannot. + // + if (DTDGrammar::fDefaultEntities) + { + DTDGrammar::fDefaultEntities->put(new DTDEntityDecl(XMLUni::fgAmp, chAmpersand, true, true)); + DTDGrammar::fDefaultEntities->put(new DTDEntityDecl(XMLUni::fgLT, chOpenAngle, true, true)); + DTDGrammar::fDefaultEntities->put(new DTDEntityDecl(XMLUni::fgGT, chCloseAngle, true, true)); + DTDGrammar::fDefaultEntities->put(new DTDEntityDecl(XMLUni::fgQuot, chDoubleQuote, true, true)); + DTDGrammar::fDefaultEntities->put(new DTDEntityDecl(XMLUni::fgApos, chSingleQuote, true, true)); + + // register cleanup method + entityPoolRegistryCleanup.registerCleanup(DTDGrammar::reinitDfltEntities); + sEntityPoolMutexRegistered = true; + } +} //--------------------------------------------------------------------------- // DTDGrammar: Constructors and Destructor 1.16 +5 -0 xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.hpp Index: DTDGrammar.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.hpp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- DTDGrammar.hpp 8 Sep 2004 13:56:50 -0000 1.15 +++ DTDGrammar.hpp 20 Oct 2004 15:19:07 -0000 1.16 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.16 2004/10/20 15:19:07 knoaman + * Allow option of initializing static data in XMLPlatformUtils::Initialize + * * Revision 1.15 2004/09/08 13:56:50 peiyongz * Apache License Version 2.0 * @@ -298,6 +301,8 @@ unsigned int fRootElemId; bool fValidated; XMLDTDDescription* fGramDesc; + + friend class XMLInitializer; }; 1.31 +9 -0 xml-xerces/c/src/xercesc/validators/schema/ComplexTypeInfo.cpp Index: ComplexTypeInfo.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/ComplexTypeInfo.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- ComplexTypeInfo.cpp 23 Sep 2004 00:37:24 -0000 1.30 +++ ComplexTypeInfo.cpp 20 Oct 2004 15:19:07 -0000 1.31 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.31 2004/10/20 15:19:07 knoaman + * Allow option of initializing static data in XMLPlatformUtils::Initialize + * * Revision 1.30 2004/09/23 00:37:24 cargilld * Remove unused variable and data member. * @@ -204,6 +207,7 @@ #include <xercesc/validators/schema/XSDLocator.hpp> #include <xercesc/internal/XTemplateSerializer.hpp> #include <xercesc/util/XMLRegisterCleanup.hpp> +#include <xercesc/util/XMLInitializer.hpp> XERCES_CPP_NAMESPACE_BEGIN @@ -233,6 +237,11 @@ delete sAnyTypeMutex; sAnyTypeMutex = 0; sAnyTypeMutexRegistered = false; +} + +void XMLInitializer::initializeAnyType() +{ + ComplexTypeInfo::getAnyType(1); } ComplexTypeInfo* ComplexTypeInfo::getAnyType(unsigned int emptyNSId) 1.25 +10 -0 xml-xerces/c/src/xercesc/validators/schema/GeneralAttributeCheck.cpp Index: GeneralAttributeCheck.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/GeneralAttributeCheck.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- GeneralAttributeCheck.cpp 30 Sep 2004 13:14:28 -0000 1.24 +++ GeneralAttributeCheck.cpp 20 Oct 2004 15:19:07 -0000 1.25 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.25 2004/10/20 15:19:07 knoaman + * Allow option of initializing static data in XMLPlatformUtils::Initialize + * * Revision 1.24 2004/09/30 13:14:28 amassari * Fix jira#1280 - Borland leaks memory if break or continue are used inside a catch block * @@ -155,6 +158,7 @@ #include <xercesc/validators/schema/TraverseSchema.hpp> #include <xercesc/util/PlatformUtils.hpp> #include <xercesc/util/XMLRegisterCleanup.hpp> +#include <xercesc/util/XMLInitializer.hpp> #include <xercesc/validators/datatype/DatatypeValidatorFactory.hpp> #include <xercesc/util/OutOfMemoryException.hpp> @@ -206,6 +210,12 @@ DatatypeValidator* GeneralAttributeCheck::fNonNegIntDV = 0; DatatypeValidator* GeneralAttributeCheck::fBooleanDV = 0; DatatypeValidator* GeneralAttributeCheck::fAnyURIDV = 0; + +void XMLInitializer::initializeGeneralAttrCheckMap() +{ + GeneralAttributeCheck *obj = new GeneralAttributeCheck(); + delete obj; +} // --------------------------------------------------------------------------- 1.15 +17 -0 xml-xerces/c/src/xercesc/validators/schema/XSDErrorReporter.cpp Index: XSDErrorReporter.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/XSDErrorReporter.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- XSDErrorReporter.cpp 8 Sep 2004 13:56:57 -0000 1.14 +++ XSDErrorReporter.cpp 20 Oct 2004 15:19:07 -0000 1.15 @@ -16,6 +16,9 @@ /** * $Log$ + * Revision 1.15 2004/10/20 15:19:07 knoaman + * Allow option of initializing static data in XMLPlatformUtils::Initialize + * * Revision 1.14 2004/09/08 13:56:57 peiyongz * Apache License Version 2.0 * @@ -75,6 +78,7 @@ #include <xercesc/framework/XMLErrorReporter.hpp> #include <xercesc/util/XMLMsgLoader.hpp> #include <xercesc/util/XMLRegisterCleanup.hpp> +#include <xercesc/util/XMLInitializer.hpp> #include <xercesc/validators/schema/XSDErrorReporter.hpp> #include <xercesc/validators/schema/XSDLocator.hpp> @@ -165,6 +169,19 @@ } } return gValidMsgLoader; +} + +void XMLInitializer::initializeXSDErrReporterMsgLoader() +{ + gErrMsgLoader = XMLPlatformUtils::loadMsgSet(XMLUni::fgXMLErrDomain); + if (gErrMsgLoader) { + cleanupErrMsgLoader.registerCleanup(reinitErrMsgLoader); + } + + gValidMsgLoader = XMLPlatformUtils::loadMsgSet(XMLUni::fgValidityDomain); + if (gValidMsgLoader) { + cleanupValidMsgLoader.registerCleanup(reinitValidMsgLoader); + } } // ---------------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]