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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]