You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2003/08/19 16:15:18 UTC

cvs commit: xml-xerces/c/src/xercesc/parsers XercesDOMParser.cpp DOMBuilderImpl.cpp

neilg       2003/08/19 07:15:18

  Modified:    c/src/xercesc/parsers XercesDOMParser.cpp DOMBuilderImpl.cpp
  Log:
  fixing bug 21001; thanks to David Cargill
  
  Revision  Changes    Path
  1.17      +19 -1     xml-xerces/c/src/xercesc/parsers/XercesDOMParser.cpp
  
  Index: XercesDOMParser.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/XercesDOMParser.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- XercesDOMParser.cpp	13 Aug 2003 15:43:24 -0000	1.16
  +++ XercesDOMParser.cpp	19 Aug 2003 14:15:18 -0000	1.17
  @@ -265,12 +265,18 @@
       try
       {
           setParseInProgress(true);
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(0);
           grammar = getScanner()->loadGrammar(systemId, grammarType, toCache);
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
       }
   
       catch(...)
       {
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);        
           setParseInProgress(false);
           throw;
       }
  @@ -290,12 +296,18 @@
       try
       {
           setParseInProgress(true);
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(0);
           grammar = getScanner()->loadGrammar(systemId, grammarType, toCache);
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
       }
   
       catch(...)
       {
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);        
           setParseInProgress(false);
           throw;
       }
  @@ -315,12 +327,18 @@
       try
       {
           setParseInProgress(true);
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(0);
           grammar = getScanner()->loadGrammar(source, grammarType, toCache);
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
       }
   
       catch(...)
       {
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
           throw;
       }
  
  
  
  1.28      +20 -2     xml-xerces/c/src/xercesc/parsers/DOMBuilderImpl.cpp
  
  Index: DOMBuilderImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/DOMBuilderImpl.cpp,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- DOMBuilderImpl.cpp	31 Jul 2003 17:05:48 -0000	1.27
  +++ DOMBuilderImpl.cpp	19 Aug 2003 14:15:18 -0000	1.28
  @@ -545,18 +545,24 @@
       try
       {
           setParseInProgress(true);
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(0);
           grammar = getScanner()->loadGrammar(systemId, grammarType, toCache);
   
           // Release DOM tree - DTD
           DOMDocument* doc = adoptDocument();
           if (doc)
               doc->release();
  -
  +        
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
       }
   
       catch(...)
       {
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
           throw;
       }
  @@ -576,6 +582,8 @@
       try
       {
           setParseInProgress(true);
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(0);
           grammar = getScanner()->loadGrammar(systemId, grammarType, toCache);
   
           // Release DOM tree - DTD
  @@ -583,11 +591,15 @@
           if (doc)
               doc->release();
   
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
       }
   
       catch(...)
       {
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
           throw;
       }
  @@ -609,6 +621,8 @@
           Wrapper4DOMInputSource isWrapper((DOMInputSource*) &source, false, getMemoryManager());
   
           setParseInProgress(true);
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(0);
           grammar = getScanner()->loadGrammar(isWrapper, grammarType, toCache);
   
           // Release DOM tree - DTD
  @@ -616,11 +630,15 @@
           if (doc)
               doc->release();
   
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
       }
   
       catch(...)
       {
  +        if (grammarType == Grammar::DTDGrammarType) 
  +            getScanner()->setDocTypeHandler(this);
           setParseInProgress(false);
           throw;
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org