Author: scantor
Date: Wed Jun 21 21:38:42 2017
New Revision: 1799522
URL: http://svn.apache.org/viewvc?rev=1799522&view=rev
Log:
Port XERCESC-2044 from 3.1 branch.
Modified:
xerces/c/trunk/ (props changed)
xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp
xerces/c/trunk/src/xercesc/internal/XSObjectFactory.cpp
xerces/c/trunk/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
xerces/c/trunk/src/xercesc/validators/DTD/DTDScanner.cpp
Propchange: xerces/c/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jun 21 21:38:42 2017
@@ -1 +1 @@
-/xerces/c/branches/xerces-3.1:1662879,1662887,1662893-1662894
+/xerces/c/branches/xerces-3.1:1662879,1662887,1662893-1662894,1663359
Modified: xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp?rev=1799522&r1=1799521&r2=1799522&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp Wed Jun 21 21:38:42
2017
@@ -2398,7 +2398,11 @@ bool IGXMLScanner::scanStartTagNS(bool&
fSchemaElemNonDeclPool->put((void*)elemDecl->getBaseName()
, uriId, (int)Grammar::TOP_LEVEL_SCOPE,
(SchemaElementDecl*)elemDecl)
);
- }
+ } else {
+ fValidator->emitError(
+ XMLValid::GrammarNotFound, getURIText(uriId)
+ );
+ }
wasAdded = true;
}
Modified: xerces/c/trunk/src/xercesc/internal/XSObjectFactory.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/internal/XSObjectFactory.cpp?rev=1799522&r1=1799521&r2=1799522&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/XSObjectFactory.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/XSObjectFactory.cpp Wed Jun 21 21:38:42
2017
@@ -919,7 +919,7 @@ void XSObjectFactory::processFacets(Data
facetType = XSSimpleTypeDefinition::FACET_WHITESPACE;
isFixed = ((dvFixedFacets &
DatatypeValidator::FACET_WHITESPACE) != 0);
}
- else if (XMLString::equals(key, SchemaSymbols::fgELT_PATTERN))
+ else if (XMLString::equals(key, SchemaSymbols::fgELT_PATTERN) &&
xsMultiFacetList)
{
XMLStringTokenizer tokenizer(dv->getPattern(), regexSeparator,
fMemoryManager);
patternList = new (fMemoryManager) RefArrayVectorOf<XMLCh>(
@@ -994,7 +994,7 @@ void XSObjectFactory::processFacets(Data
}
}
- if (baseST->getMultiValueFacets())
+ if (baseST->getMultiValueFacets() && xsMultiFacetList)
{
XSMultiValueFacetList* baseMVFacets =
baseST->getMultiValueFacets();
for (unsigned int j=0; j<baseMVFacets->size(); j++)
Modified: xerces/c/trunk/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp?rev=1799522&r1=1799521&r2=1799522&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
(original)
+++ xerces/c/trunk/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp Wed
Jun 21 21:38:42 2017
@@ -101,6 +101,8 @@ bool InMemMsgLoader::loadMsg(const XMLM
return false;
else
srcPtr = gXMLDOMMsgArray[msgToLoad - 1];
+ } else {
+ return false;
}
while (*srcPtr && (outPtr < endPtr))
Modified: xerces/c/trunk/src/xercesc/validators/DTD/DTDScanner.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/validators/DTD/DTDScanner.cpp?rev=1799522&r1=1799521&r2=1799522&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/DTD/DTDScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/validators/DTD/DTDScanner.cpp Wed Jun 21
21:38:42 2017
@@ -1219,7 +1219,7 @@ DTDScanner::scanChildren(const DTDElemen
if ((curNode->getType() == ContentSpecNode::Choice)
|| (curNode->getType() == ContentSpecNode::Sequence))
{
- if (!curNode->getSecond())
+ if (!curNode->getSecond() && lastNode)
{
ContentSpecNode* saveFirst =
curNode->orphanFirst();
lastNode->setSecond(saveFirst);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]