amassari 2005/01/03 03:41:16 Modified: c/src/xercesc/internal DGXMLScanner.cpp IGXMLScanner.cpp IGXMLScanner2.cpp SGXMLScanner.cpp Log: The maps used to detect duplicate attributes are now cleaned after being used, so we can avoid allocating the storage for the element number (the memory was reclaimed at the end of the parsing) Revision Changes Path 1.59 +3 -10 xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp Index: DGXMLScanner.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- DGXMLScanner.cpp 7 Dec 2004 19:45:43 -0000 1.58 +++ DGXMLScanner.cpp 3 Jan 2005 11:41:16 -0000 1.59 @@ -1387,15 +1387,8 @@ } else { - unsigned int *curCountPtr = fUndeclaredAttrRegistry->get(namePtr); - if(!curCountPtr) - { - curCountPtr = getNewUIntPtr(); - *curCountPtr = fElemCount; - fUndeclaredAttrRegistry->put((void *)namePtr, curCountPtr); - } - else if(*curCountPtr < fElemCount) - *curCountPtr = fElemCount; + if(!fUndeclaredAttrRegistry->containsKey(namePtr)) + fUndeclaredAttrRegistry->put((void *)namePtr, 0); else { emitError 1.83 +3 -10 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.82 retrieving revision 1.83 diff -u -r1.82 -r1.83 --- IGXMLScanner.cpp 23 Dec 2004 14:21:27 -0000 1.82 +++ IGXMLScanner.cpp 3 Jan 2005 11:41:16 -0000 1.83 @@ -1812,15 +1812,8 @@ , elemDecl->getFullName() ); } - unsigned int *curCountPtr = fUndeclaredAttrRegistry->get(namePtr); - if(!curCountPtr) - { - curCountPtr = getNewUIntPtr(); - *curCountPtr = fElemCount; - fUndeclaredAttrRegistry->put((void *)namePtr, curCountPtr); - } - else if(*curCountPtr < fElemCount) - *curCountPtr = fElemCount; + if(!fUndeclaredAttrRegistry->containsKey(namePtr)) + fUndeclaredAttrRegistry->put((void *)namePtr, 0); else { emitError 1.78 +5 -19 xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp Index: IGXMLScanner2.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp,v retrieving revision 1.77 retrieving revision 1.78 diff -u -r1.77 -r1.78 --- IGXMLScanner2.cpp 9 Dec 2004 20:31:39 -0000 1.77 +++ IGXMLScanner2.cpp 3 Jan 2005 11:41:16 -0000 1.78 @@ -315,15 +315,8 @@ { if(fGrammarType == Grammar::DTDGrammarType) { - unsigned int *curCountPtr = fUndeclaredAttrRegistry->get(namePtr); - if(!curCountPtr) - { - curCountPtr = getNewUIntPtr(); - *curCountPtr = fElemCount; - fUndeclaredAttrRegistry->put((void *)namePtr, curCountPtr); - } - else if(*curCountPtr < fElemCount) - *curCountPtr = fElemCount; + if(!fUndeclaredAttrRegistry->containsKey(namePtr)) + fUndeclaredAttrRegistry->put((void *)namePtr, 0); else { emitError @@ -336,15 +329,8 @@ } else // schema grammar { - unsigned int *curCountPtr = fUndeclaredAttrRegistryNS->get(suffPtr, uriId); - if(!curCountPtr) - { - curCountPtr = getNewUIntPtr(); - *curCountPtr = fElemCount; - fUndeclaredAttrRegistryNS->put((void *)suffPtr, uriId, curCountPtr); - } - else if(*curCountPtr < fElemCount) - *curCountPtr = fElemCount; + if(!fUndeclaredAttrRegistryNS->containsKey(suffPtr, uriId)) + fUndeclaredAttrRegistryNS->put((void *)suffPtr, uriId, 0); else { emitError 1.104 +3 -10 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.103 retrieving revision 1.104 diff -u -r1.103 -r1.104 --- SGXMLScanner.cpp 23 Dec 2004 14:21:27 -0000 1.103 +++ SGXMLScanner.cpp 3 Jan 2005 11:41:16 -0000 1.104 @@ -2296,15 +2296,8 @@ } else { - unsigned int *curCountPtr = fUndeclaredAttrRegistryNS->get(suffPtr, uriId); - if(!curCountPtr) - { - curCountPtr = getNewUIntPtr(); - *curCountPtr = fElemCount; - fUndeclaredAttrRegistryNS->put((void *)suffPtr, uriId, curCountPtr); - } - else if(*curCountPtr < fElemCount) - *curCountPtr = fElemCount; + if(!fUndeclaredAttrRegistryNS->containsKey(suffPtr, uriId)) + fUndeclaredAttrRegistryNS->put((void *)suffPtr, uriId, 0); else { emitError
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]