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