Ignore:
Timestamp:
May 19, 2013, 9:20:51 AM (6 years ago)
Author:
cameron
Message:

Fixes for icXML 0.9

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icXML/icXML-devel/src/icxercesc/parsers/SAX2XMLReaderImpl.cpp

    r3103 r3157  
    7777        , fAdvDHListSize(32)
    7878        , fDocHandler(0)
    79     , fLastNamespaceContextId(0)
     79    , fNamespaceContextId(0)
    8080    , fDTDHandler(0)
    8181        , fEntityResolver(0)
     
    140140        setDoSchema(true);
    141141
    142     fNamespaceContextId = -1;
     142    fNamespaceContextId = 0;
    143143}
    144144
     
    683683        const XMLCh * elemUri = XMLUni::fgZeroLenString;
    684684
    685         bool modifiedNamespace = 0;
    686         gid_t lastNamespaceContextId = 0;
    687 
    688685                if (getDoNamespaces())
    689686                {
    690             modifiedNamespace = (this->fNamespaceContextId != fLastNamespaceContextId);
    691 
    692 
    693 
    694             if (unlikely(modifiedNamespace))
     687            if (unlikely(elemDecl.getNamespaceContextId() != fNamespaceContextId))
    695688            {
    696689                const XMLNamespaceResolver * resolver = fScanner->getUriResolver();
    697                 MaskedBindingSetIterator itr = resolver->getNamespaceIterator(fNamespaceContextId, fLastNamespaceContextId);
     690                MaskedBindingSetIterator itr = resolver->getNamespaceIterator(elemDecl.getNamespaceContextId(), fNamespaceContextId);
    698691                while (itr.next())
    699692                {
     
    702695                    fDocHandler->startPrefixMapping(prefix, uri);
    703696                }
    704 
    705                 lastNamespaceContextId = fLastNamespaceContextId;
    706                 fLastNamespaceContextId = fNamespaceContextId;
    707697
    708698                if (unlikely(attrCount > fNamespaceAttrList.fMaxCount))
     
    722712                }
    723713
    724 
    725 
    726714                fNamespaceAttrList.fCurCount = namespaceAttrCount;
    727715                fAttrList.setVector(&fNamespaceAttrList, namespaceAttrCount, fScanner);
     
    755743
    756744                        // call endPrefixMapping appropriately.
    757             if (modifiedNamespace)
     745            if (unlikely(elemDecl.getNamespaceContextId() != fNamespaceContextId))
    758746                        {
    759747                const XMLNamespaceResolver * resolver = fScanner->getUriResolver();
    760                 MaskedBindingSetIterator itr = resolver->getNamespaceIterator(fNamespaceContextId, lastNamespaceContextId);
     748                MaskedBindingSetIterator itr = resolver->getNamespaceIterator(fNamespaceContextId, elemDecl.getNamespaceContextId());
    761749                while (itr.next())
    762750                {
     
    764752                    fDocHandler->endPrefixMapping(prefix);
    765753                }
    766                 fLastNamespaceContextId = lastNamespaceContextId;
    767754                        }
    768755                }
    769756
    770 
     757        fNamespaceContextId = elemDecl.getNamespaceContextId();
    771758    }
    772759
     
    814801                {
    815802            fDocHandler->endElement(fScanner->getURIText(uriId), baseName, elemQName);
    816             if (unlikely(fNamespaceContextId != fLastNamespaceContextId))
     803            if (unlikely(elemDecl.getNamespaceContextId() != fNamespaceContextId))
    817804            {
    818805                const XMLNamespaceResolver * resolver = fScanner->getUriResolver();
    819                 MaskedBindingSetIterator itr = resolver->getNamespaceIterator(fLastNamespaceContextId, fNamespaceContextId);
     806                MaskedBindingSetIterator itr = resolver->getNamespaceIterator(fNamespaceContextId, elemDecl.getNamespaceContextId());
    820807                while (itr.next())
    821808                {
     
    823810                    fDocHandler->endPrefixMapping(prefix);
    824811                }
    825                 fLastNamespaceContextId = fNamespaceContextId;
     812                fNamespaceContextId = elemDecl.getNamespaceContextId();
    826813            }
    827 
    828814        }
    829815                else
Note: See TracChangeset for help on using the changeset viewer.