dbertoni 01/03/29 14:12:07
Modified: c/src/PlatformSupport XalanDOMStringPool.cpp
XalanDOMStringPool.hpp
Log:
Keep a pointer to string in the index, instead of an iterator into to deque.
Revision Changes Path
1.6 +6 -6 xml-xalan/c/src/PlatformSupport/XalanDOMStringPool.cpp
Index: XalanDOMStringPool.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/XalanDOMStringPool.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XalanDOMStringPool.cpp 2000/12/15 01:11:14 1.5
+++ XalanDOMStringPool.cpp 2001/03/29 22:12:06 1.6
@@ -128,7 +128,7 @@
// guaranteed to free up all allocated memory.
XalanDOMStringCollectionType().swap(m_strings);
- IteratorMapType().swap(m_index);
+ IndexMapType().swap(m_index);
}
@@ -167,8 +167,8 @@
const unsigned int theActualLength = theLength == -1 ?
length(theString) : theLength;
// Find the string...
- const IteratorMapType::const_iterator i =
- m_index.find(IteratorMapType::key_type(theString,
theActualLength));
+ const IndexMapType::const_iterator i =
+ m_index.find(IndexMapType::key_type(theString,
theActualLength));
if (i != m_index.end())
{
@@ -189,9 +189,9 @@
// Add an index entry...
m_index.insert(
- IteratorMapType::value_type(
-
IteratorMapType::key_type(toCharArray(theNewString), theActualLength),
- theIterator));
+ IndexMapType::value_type(
+
IndexMapType::key_type(toCharArray(theNewString), theActualLength),
+ &theNewString));
assert(m_strings.size() == m_index.size());
1.5 +6 -6 xml-xalan/c/src/PlatformSupport/XalanDOMStringPool.hpp
Index: XalanDOMStringPool.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/XalanDOMStringPool.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XalanDOMStringPool.hpp 2000/12/07 16:39:27 1.4
+++ XalanDOMStringPool.hpp 2001/03/29 22:12:06 1.5
@@ -107,18 +107,18 @@
};
#if defined(XALAN_NO_NAMESPACES)
- typedef deque<XalanDOMString>
XalanDOMStringCollectionType;
+ typedef deque<XalanDOMString> XalanDOMStringCollectionType;
typedef map<
StringKey,
- XalanDOMStringCollectionType::const_iterator,
- less<StringKey> >
IteratorMapType;
+ const XalanDOMString*,
+ less<StringKey> > IndexMapType;
#else
- typedef std::deque<XalanDOMString>
XalanDOMStringCollectionType;
+ typedef std::deque<XalanDOMString> XalanDOMStringCollectionType;
typedef std::map<
StringKey,
- XalanDOMStringCollectionType::const_iterator>
IteratorMapType;
+ const XalanDOMString*> IndexMapType;
#endif
typedef XalanDOMStringCollectionType::size_type size_type;
@@ -180,7 +180,7 @@
// Data members...
XalanDOMStringCollectionType m_strings;
- IteratorMapType m_index;
+ IndexMapType m_index;
static const XalanDOMString s_emptyString;
};
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]