neilg 2003/12/03 09:29:44
Modified: c/src/xercesc/internal IGXMLScanner.cpp SGXMLScanner.cpp
Log:
when an empty element is valid, it will not have a datatype validator. Thanks to
Pete Lloyd for help in catching this.
Revision Changes Path
1.42 +4 -3 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.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- IGXMLScanner.cpp 28 Nov 2003 21:18:32 -0000 1.41
+++ IGXMLScanner.cpp 3 Dec 2003 17:29:43 -0000 1.42
@@ -1131,7 +1131,7 @@
fPSVIElemContext.fIsSpecified = ((SchemaValidator*)
fValidator)->getIsElemSpecified();
if (((SchemaValidator*) fValidator)->getErrorOccurred())
fPSVIElemContext.fErrorOccurred = true;
- else if (fPSVIElemContext.fCurrentDV->getType() ==
DatatypeValidator::Union)
+ else if (fPSVIElemContext.fCurrentDV &&
fPSVIElemContext.fCurrentDV->getType() == DatatypeValidator::Union)
psviMemberType =
fValidationContext->getValidatingMemberType();
}
@@ -2844,7 +2844,8 @@
else if (fPSVIHandler)
{
fPSVIElemContext.fIsSpecified = ((SchemaValidator*)
fValidator)->getIsElemSpecified();
- if (fPSVIElemContext.fCurrentDV->getType() ==
DatatypeValidator::Union)
+ // note that if we're empty, won't be a current DV
+ if (fPSVIElemContext.fCurrentDV &&
fPSVIElemContext.fCurrentDV->getType() == DatatypeValidator::Union)
psviMemberType =
fValidationContext->getValidatingMemberType();
}
1.61 +4 -3 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.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- SGXMLScanner.cpp 28 Nov 2003 21:18:32 -0000 1.60
+++ SGXMLScanner.cpp 3 Dec 2003 17:29:44 -0000 1.61
@@ -1041,7 +1041,7 @@
fPSVIElemContext.fIsSpecified = ((SchemaValidator*)
fValidator)->getIsElemSpecified();
if (((SchemaValidator*) fValidator)->getErrorOccurred())
fPSVIElemContext.fErrorOccurred = true;
- else if (fPSVIElemContext.fCurrentDV->getType() ==
DatatypeValidator::Union)
+ else if (fPSVIElemContext.fCurrentDV &&
fPSVIElemContext.fCurrentDV->getType() == DatatypeValidator::Union)
psviMemberType = fValidationContext->getValidatingMemberType();
}
@@ -1795,7 +1795,8 @@
{
if (((SchemaValidator*) fValidator)->getErrorOccurred())
fPSVIElemContext.fErrorOccurred = true;
- else if (fPSVIElemContext.fCurrentDV->getType() ==
DatatypeValidator::Union)
+ // note that if we're empty, won't be a current DV
+ else if (fPSVIElemContext.fCurrentDV &&
fPSVIElemContext.fCurrentDV->getType() == DatatypeValidator::Union)
psviMemberType =
fValidationContext->getValidatingMemberType();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]