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