You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ca...@apache.org on 2004/04/14 23:33:57 UTC
cvs commit: xml-xerces/c/src/xercesc/internal IGXMLScanner.cpp SGXMLScanner.cpp
cargilld 2004/04/14 14:33:57
Modified: c/samples/PSVIWriter PSVIWriterHandlers.cpp
PSVIWriterHandlers.hpp
c/src/xercesc/internal IGXMLScanner.cpp SGXMLScanner.cpp
Log:
Various PSVI fixes
Revision Changes Path
1.6 +13 -20 xml-xerces/c/samples/PSVIWriter/PSVIWriterHandlers.cpp
Index: PSVIWriterHandlers.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/samples/PSVIWriter/PSVIWriterHandlers.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PSVIWriterHandlers.cpp 5 Mar 2004 16:07:29 -0000 1.5
+++ PSVIWriterHandlers.cpp 14 Apr 2004 21:33:56 -0000 1.6
@@ -124,8 +124,8 @@
fErrorFormatter = (errorFormatter != NULL) ? errorFormatter : outputFormatter;
fAttrList = new StringList(8, false);
- fTempResult = new XMLCh[50];
- fIndentChars = new XMLCh[100];
+ fTempResult = new XMLCh[51];
+ fIndentChars = (XMLCh*) XMLPlatformUtils::fgMemoryManager->allocate(101*sizeof(XMLCh));
fBaseUri = 0;
XMLString::copyString(fIndentChars, XMLUni::fgZeroLenString);
@@ -154,7 +154,7 @@
XMLString::release(&fBaseUri);
delete fAttrList;
delete[] fTempResult;
- delete[] fIndentChars;
+ XMLPlatformUtils::fgMemoryManager->deallocate(fIndentChars);
delete fIdMap;
delete fDefinedIds;
@@ -1574,10 +1574,16 @@
}
void PSVIWriterHandlers::incIndent() {
- XMLCh tab[] = {chHTab, chNull};
- checkCapacity(fIndent, &fIndentCap, &fIndentChars);
- XMLString::catString(fIndentChars, tab);
- fIndent++;
+ XMLCh tab[] = {chHTab, chNull};
+ if (fIndent >= fIndentCap) {
+ fIndentCap *= 2;
+ XMLCh* temp = (XMLCh*) XMLPlatformUtils::fgMemoryManager->allocate((fIndentCap+1)*sizeof(XMLCh));
+ XMLString::copyString(temp, fIndentChars);
+ XMLPlatformUtils::fgMemoryManager->deallocate(fIndentChars);
+ fIndentChars = temp;
+ }
+ XMLString::catString(fIndentChars, tab);
+ fIndent++;
}
void PSVIWriterHandlers::decIndent() {
@@ -1585,16 +1591,3 @@
fIndent--;
}
-void PSVIWriterHandlers::checkCapacity(unsigned int actual, unsigned int* capacity, XMLCh** buffer) {
- if (actual >= *capacity) {
- doubleCapacity(buffer, capacity);
- }
-}
-
-void PSVIWriterHandlers::doubleCapacity(XMLCh** buffer, unsigned int* bufferCap) {
- *bufferCap *= 2;
- XMLCh* temp = new XMLCh[*bufferCap];
- XMLString::copyString(temp, *buffer);
- delete[] *buffer;
- *buffer = temp;
-}
1.3 +0 -2 xml-xerces/c/samples/PSVIWriter/PSVIWriterHandlers.hpp
Index: PSVIWriterHandlers.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/samples/PSVIWriter/PSVIWriterHandlers.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PSVIWriterHandlers.hpp 15 Feb 2004 19:43:15 -0000 1.2
+++ PSVIWriterHandlers.hpp 14 Apr 2004 21:33:56 -0000 1.3
@@ -284,8 +284,6 @@
const XMLCh* getIdName(XSObject* obj);
void incIndent();
void decIndent();
- void checkCapacity(unsigned int actual, unsigned int* capacity, XMLCh** buffer);
- void doubleCapacity(XMLCh** buffer, unsigned int* bufferCap);
protected:
XMLFormatter* fFormatter;
1.64 +2 -2 xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
Index: IGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -r1.63 -r1.64
--- IGXMLScanner.cpp 13 Apr 2004 18:57:54 -0000 1.63
+++ IGXMLScanner.cpp 14 Apr 2004 21:33:57 -0000 1.64
@@ -2826,7 +2826,7 @@
// if we have a PSVIHandler, now's the time to call
// its handleAttributesPSVI method:
- if(fPSVIHandler)
+ if(fPSVIHandler && fGrammarType == Grammar::SchemaGrammarType)
{
QName *eName = elemDecl->getElementName();
fPSVIHandler->handleAttributesPSVI
1.79 +4 -4 xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
Index: SGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -r1.78 -r1.79
--- SGXMLScanner.cpp 13 Apr 2004 18:57:54 -0000 1.78
+++ SGXMLScanner.cpp 14 Apr 2004 21:33:57 -0000 1.79
@@ -2666,9 +2666,9 @@
if(getPSVIHandler())
{
psviAttr = fPSVIAttrList->getPSVIAttributeToFill(suffPtr, fURIStringPool->getValueForId(uriId));
- XSSimpleTypeDefinition *validatingType = (attrValidator)
- ? (XSSimpleTypeDefinition *)fModel->getXSObject(attrValidator)
- : 0;
+ XSSimpleTypeDefinition *validatingType = 0;
+ if (attrValidator && fModel)
+ validatingType = (XSSimpleTypeDefinition *)fModel->getXSObject(attrValidator);
// no attribute declarations for these...
psviAttr->reset(
fRootElemName
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org