You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ca...@apache.org on 2004/09/10 20:42:06 UTC
cvs commit: xml-xerces/c/src/xercesc/validators/schema SchemaAttDefList.cpp SchemaAttDefList.hpp
cargilld 2004/09/10 11:42:06
Modified: c/src/xercesc/validators/schema SchemaAttDefList.cpp
SchemaAttDefList.hpp
Log:
Performance improvement fix to more efficiently findattdef. Fix from Dave Bertoni.
Revision Changes Path
1.12 +17 -4 xml-xerces/c/src/xercesc/validators/schema/SchemaAttDefList.cpp
Index: SchemaAttDefList.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaAttDefList.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SchemaAttDefList.cpp 8 Sep 2004 13:56:56 -0000 1.11
+++ SchemaAttDefList.cpp 10 Sep 2004 18:42:06 -0000 1.12
@@ -16,6 +16,9 @@
/*
* $Log$
+ * Revision 1.12 2004/09/10 18:42:06 cargilld
+ * Performance improvement fix to more efficiently findattdef. Fix from Dave Bertoni.
+ *
* Revision 1.11 2004/09/08 13:56:56 peiyongz
* Apache License Version 2.0
*
@@ -109,8 +112,13 @@
XMLAttDef* SchemaAttDefList::findAttDef(const unsigned long uriID
, const XMLCh* const attName)
{
- QName tempAtt(attName, uriID, XMLPlatformUtils::fgMemoryManager);
- return fList->get((void*)tempAtt.getLocalPart(), uriID);
+ const int colonInd = XMLString::indexOf(attName, chColon);
+
+ // An index of 0 is really an error, but the QName class doesn't check for
+ // that case either...
+ const XMLCh* const localPart = colonInd >= 0 ? attName + colonInd + 1 : attName;
+
+ return fList->get((void*)localPart, uriID);
}
@@ -118,8 +126,13 @@
SchemaAttDefList::findAttDef( const unsigned long uriID
, const XMLCh* const attName) const
{
- QName tempAtt(attName, uriID, XMLPlatformUtils::fgMemoryManager);
- return fList->get((void*)tempAtt.getLocalPart(), uriID);
+ const int colonInd = XMLString::indexOf(attName, chColon);
+
+ // An index of 0 is really an error, but the QName class doesn't check for
+ // that case either...
+ const XMLCh* const localPart = colonInd >= 0 ? attName + colonInd + 1 : attName;
+
+ return fList->get((void*)localPart, uriID);
}
1.9 +28 -0 xml-xerces/c/src/xercesc/validators/schema/SchemaAttDefList.hpp
Index: SchemaAttDefList.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaAttDefList.hpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- SchemaAttDefList.hpp 8 Sep 2004 13:56:56 -0000 1.8
+++ SchemaAttDefList.hpp 10 Sep 2004 18:42:06 -0000 1.9
@@ -16,6 +16,9 @@
/*
* $Log$
+ * Revision 1.9 2004/09/10 18:42:06 cargilld
+ * Performance improvement fix to more efficiently findattdef. Fix from Dave Bertoni.
+ *
* Revision 1.8 2004/09/08 13:56:56 peiyongz
* Apache License Version 2.0
*
@@ -93,6 +96,7 @@
* @deprecated This method is not thread-safe.
*/
virtual bool hasMoreElements() const;
+
virtual bool isEmpty() const;
virtual XMLAttDef* findAttDef
(
@@ -115,6 +119,18 @@
, const XMLCh* const attName
) const;
+ virtual XMLAttDef* findAttDefLocalPart
+ (
+ const unsigned long uriID
+ , const XMLCh* const attLocalPart
+ );
+
+ virtual const XMLAttDef* findAttDefLocalPart
+ (
+ const unsigned long uriID
+ , const XMLCh* const attLocalPart
+ ) const;
+
/**
* @deprecated This method is not thread-safe.
*/
@@ -194,6 +210,18 @@
fArray = newArray;
}
fArray[fCount++] = toAdd;
+}
+
+inline XMLAttDef* SchemaAttDefList::findAttDefLocalPart(const unsigned long uriID
+ , const XMLCh* const attLocalPart)
+{
+ return fList->get((void*)attLocalPart, uriID);
+}
+
+inline const XMLAttDef* SchemaAttDefList::findAttDefLocalPart(const unsigned long uriID
+ , const XMLCh* const attLocalPart) const
+{
+ return fList->get((void*)attLocalPart, uriID);
}
XERCES_CPP_NAMESPACE_END
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org