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]