amassari 2004/03/03 02:45:44 Modified: c/src/xercesc/internal WFXMLScanner.cpp Log: WFXMLScanner was throwing an index out of bound exception when an element with no attributes was found, because of a -1 assigned to an unsigned int variable Revision Changes Path 1.21 +22 -20 xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp Index: WFXMLScanner.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- WFXMLScanner.cpp 11 Feb 2004 12:42:50 -0000 1.20 +++ WFXMLScanner.cpp 3 Mar 2004 10:45:44 -0000 1.21 @@ -1496,26 +1496,28 @@ ); } - // check for duplicate namespace attributes: - // by checking for qualified names with the same local part and with prefixes - // which have been bound to namespace names that are identical. - XMLAttr* loopAttr; - XMLAttr* curAtt; - for (unsigned int attrIndex=0; attrIndex < attCount-1; attrIndex++) { - loopAttr = fAttrList->elementAt(attrIndex); - for (unsigned int curAttrIndex = attrIndex+1; curAttrIndex < attCount; curAttrIndex++) { - curAtt = fAttrList->elementAt(curAttrIndex); - if (curAtt->getURIId() == loopAttr->getURIId() && - XMLString::equals(curAtt->getName(), loopAttr->getName())) { - emitError - ( - XMLErrs::AttrAlreadyUsedInSTag - , curAtt->getName() - , elemDecl->getFullName() - ); + if(attCount) { + // check for duplicate namespace attributes: + // by checking for qualified names with the same local part and with prefixes + // which have been bound to namespace names that are identical. + XMLAttr* loopAttr; + XMLAttr* curAtt; + for (unsigned int attrIndex=0; attrIndex < attCount-1; attrIndex++) { + loopAttr = fAttrList->elementAt(attrIndex); + for (unsigned int curAttrIndex = attrIndex+1; curAttrIndex < attCount; curAttrIndex++) { + curAtt = fAttrList->elementAt(curAttrIndex); + if (curAtt->getURIId() == loopAttr->getURIId() && + XMLString::equals(curAtt->getName(), loopAttr->getName())) { + emitError + ( + XMLErrs::AttrAlreadyUsedInSTag + , curAtt->getName() + , elemDecl->getFullName() + ); + } } - } - } + } + } // Resolve the qualified name to a URI. unsigned int uriId = resolvePrefix
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]