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/11/19 01:50:23 UTC
cvs commit: xml-xerces/c/src/xercesc/util NameIdPool.c NameIdPool.hpp RefHash2KeysTableOf.c RefHash2KeysTableOf.hpp RefHash3KeysIdPool.c RefHash3KeysIdPool.hpp RefHashTableOf.c RefHashTableOf.hpp ValueHashTableOf.c ValueHashTableOf.hpp
cargilld 2004/11/18 16:50:23
Modified: c/src/xercesc/util NameIdPool.c NameIdPool.hpp
RefHash2KeysTableOf.c RefHash2KeysTableOf.hpp
RefHash3KeysIdPool.c RefHash3KeysIdPool.hpp
RefHashTableOf.c RefHashTableOf.hpp
ValueHashTableOf.c ValueHashTableOf.hpp
Log:
Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
Revision Changes Path
1.11 +9 -7 xml-xerces/c/src/xercesc/util/NameIdPool.c
Index: NameIdPool.c
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NameIdPool.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- NameIdPool.c 18 Nov 2004 01:35:20 -0000 1.10
+++ NameIdPool.c 19 Nov 2004 00:50:22 -0000 1.11
@@ -16,8 +16,8 @@
/**
* $Log$
- * Revision 1.10 2004/11/18 01:35:20 cargilld
- * Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls.
+ * Revision 1.11 2004/11/19 00:50:22 cargilld
+ * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
*
* Revision 1.9 2004/09/08 13:56:22 peiyongz
* Apache License Version 2.0
@@ -73,6 +73,7 @@
#include <xercesc/util/IllegalArgumentException.hpp>
#include <xercesc/util/NoSuchElementException.hpp>
#include <xercesc/util/RuntimeException.hpp>
+#include <new>
#include <assert.h>
XERCES_CPP_NAMESPACE_BEGIN
@@ -172,7 +173,9 @@
nextElem = curElem->fNext;
delete curElem->fData;
- delete curElem;
+ // destructor is empty...
+ // curElem->~NameIdPoolBucketElem();
+ fMemoryManager->deallocate(curElem);
curElem = nextElem;
}
@@ -255,11 +258,9 @@
}
// Create a new bucket element and add it to the appropriate list
- NameIdPoolBucketElem<TElem>* newBucket = new (fMemoryManager) NameIdPoolBucketElem<TElem>
- (
- elemToAdopt
- , fBucketList[hashVal]
- );
+ NameIdPoolBucketElem<TElem>* newBucket =
+ new (fMemoryManager->allocate(sizeof(NameIdPoolBucketElem<TElem>)))
+ NameIdPoolBucketElem<TElem>(elemToAdopt,fBucketList[hashVal]);
fBucketList[hashVal] = newBucket;
//
@@ -304,7 +305,7 @@
// Hash the key
hashVal = XMLString::hash(key, fHashModulus, fMemoryManager);
- assert(hashVal < fHashModulus);
+ assert(hashVal < fHashModulus);
// Search that bucket for the key
NameIdPoolBucketElem<TElem>* curElem = fBucketList[hashVal];
@@ -323,6 +324,7 @@
{
// Hash the key
hashVal = XMLString::hash(key, fHashModulus, fMemoryManager);
+
assert(hashVal < fHashModulus);
// Search that bucket for the key
1.12 +4 -1 xml-xerces/c/src/xercesc/util/NameIdPool.hpp
Index: NameIdPool.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NameIdPool.hpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- NameIdPool.hpp 23 Sep 2004 07:10:13 -0000 1.11
+++ NameIdPool.hpp 19 Nov 2004 00:50:22 -0000 1.12
@@ -16,6 +16,9 @@
/*
* $Log$
+ * Revision 1.12 2004/11/19 00:50:22 cargilld
+ * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
+ *
* Revision 1.11 2004/09/23 07:10:13 amassari
* Removed const from variable declaration (jira#1259)
*
@@ -117,7 +120,7 @@
// lists for each bucket. Because some of the compilers we have to support
// are totally brain dead, it cannot be a nested class as it should be.
//
-template <class TElem> struct NameIdPoolBucketElem : public XMemory
+template <class TElem> struct NameIdPoolBucketElem
{
public :
NameIdPoolBucketElem
1.13 +17 -5 xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.c
Index: RefHash2KeysTableOf.c
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- RefHash2KeysTableOf.c 18 Nov 2004 01:35:20 -0000 1.12
+++ RefHash2KeysTableOf.c 19 Nov 2004 00:50:22 -0000 1.13
@@ -16,8 +16,8 @@
/**
* $Log$
- * Revision 1.12 2004/11/18 01:35:20 cargilld
- * Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls.
+ * Revision 1.13 2004/11/19 00:50:22 cargilld
+ * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
*
* Revision 1.11 2004/09/22 11:14:22 amassari
* Reorder initialization of variables in constructor
@@ -80,6 +80,7 @@
#include <xercesc/util/NullPointerException.hpp>
#include <assert.h>
+#include <new>
XERCES_CPP_NAMESPACE_BEGIN
@@ -208,7 +209,9 @@
delete curElem->fData;
// Then delete the current element and move forward
- delete curElem;
+ // destructor is empty...
+ // curElem->~RefHash2KeysTableBucketElem();
+ fMemoryManager->deallocate(curElem);
curElem = nextElem;
}
@@ -223,6 +226,7 @@
// Hash the key
unsigned int hashVal = fHash->getHashVal(key1, fHashModulus);
assert(hashVal < fHashModulus);
+
//
// Search the given bucket for this key. Keep up with the previous
// element so we can patch around it.
@@ -254,7 +258,10 @@
curElem = curElem->fNext;
// Delete the current element
- delete elemToDelete;
+ // delete elemToDelete;
+ // destructor is empty...
+ // curElem->~RefHash2KeysTableBucketElem();
+ fMemoryManager->deallocate(elemToDelete);
}
else
{
@@ -324,7 +331,9 @@
}
else
{
- newBucket = new (fMemoryManager) RefHash2KeysTableBucketElem<TVal>(key1, key2, valueToAdopt, fBucketList[hashVal]);
+ newBucket =
+ new (fMemoryManager->allocate(sizeof(RefHash2KeysTableBucketElem<TVal>)))
+ RefHash2KeysTableBucketElem<TVal>(key1, key2, valueToAdopt, fBucketList[hashVal]);
fBucketList[hashVal] = newBucket;
}
}
@@ -407,8 +416,11 @@
delete curElem->fData;
// Delete the current element
- delete curElem;
-
+ // delete curElem;
+ // destructor is empty...
+ // curElem->~RefHash2KeysTableBucketElem();
+ fMemoryManager->deallocate(curElem);
+
return;
}
1.13 +4 -1 xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.hpp
Index: RefHash2KeysTableOf.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.hpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- RefHash2KeysTableOf.hpp 8 Sep 2004 13:56:22 -0000 1.12
+++ RefHash2KeysTableOf.hpp 19 Nov 2004 00:50:22 -0000 1.13
@@ -16,6 +16,9 @@
/*
* $Log$
+ * Revision 1.13 2004/11/19 00:50:22 cargilld
+ * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
+ *
* Revision 1.12 2004/09/08 13:56:22 peiyongz
* Apache License Version 2.0
*
@@ -101,7 +104,7 @@
// This should really be a nested class, but some of the compilers we
// have to support cannot deal with that!
//
-template <class TVal> struct RefHash2KeysTableBucketElem : public XMemory
+template <class TVal> struct RefHash2KeysTableBucketElem
{
RefHash2KeysTableBucketElem(void* key1, int key2, TVal* const value, RefHash2KeysTableBucketElem<TVal>* next)
: fData(value), fNext(next), fKey1(key1), fKey2(key2)
1.15 +8 -2 xml-xerces/c/src/xercesc/util/RefHash3KeysIdPool.c
Index: RefHash3KeysIdPool.c
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash3KeysIdPool.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- RefHash3KeysIdPool.c 18 Nov 2004 01:35:20 -0000 1.14
+++ RefHash3KeysIdPool.c 19 Nov 2004 00:50:22 -0000 1.15
@@ -16,8 +16,8 @@
/**
* $Log$
- * Revision 1.14 2004/11/18 01:35:20 cargilld
- * Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls.
+ * Revision 1.15 2004/11/19 00:50:22 cargilld
+ * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
*
* Revision 1.13 2004/09/08 13:56:22 peiyongz
* Apache License Version 2.0
@@ -83,6 +83,7 @@
#include <xercesc/util/NullPointerException.hpp>
#include <assert.h>
+#include <new>
XERCES_CPP_NAMESPACE_BEGIN
@@ -251,7 +252,10 @@
delete curElem->fData;
// Then delete the current element and move forward
- delete curElem;
+ // delete curElem;
+ // destructor is empty...
+ // curElem->~RefHash3KeysTableBucketElem();
+ fMemoryManager->deallocate(curElem);
curElem = nextElem;
}
@@ -350,7 +354,9 @@
#if defined (XML_GCC_VERSION) && (XML_GCC_VERSION < 29600)
newBucket = new RefHash3KeysTableBucketElem<TVal>(key1, key2, key3, valueToAdopt, fBucketList[hashVal]);
#else
- newBucket = new (fMemoryManager) RefHash3KeysTableBucketElem<TVal>(key1, key2, key3, valueToAdopt, fBucketList[hashVal]);
+ newBucket =
+ new (fMemoryManager->allocate(sizeof(RefHash3KeysTableBucketElem<TVal>)))
+ RefHash3KeysTableBucketElem<TVal>(key1, key2, key3, valueToAdopt, fBucketList[hashVal]);
#endif
fBucketList[hashVal] = newBucket;
}
1.12 +5 -1 xml-xerces/c/src/xercesc/util/RefHash3KeysIdPool.hpp
Index: RefHash3KeysIdPool.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash3KeysIdPool.hpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- RefHash3KeysIdPool.hpp 8 Sep 2004 13:56:22 -0000 1.11
+++ RefHash3KeysIdPool.hpp 19 Nov 2004 00:50:22 -0000 1.12
@@ -16,6 +16,9 @@
/*
* $Log$
+ * Revision 1.12 2004/11/19 00:50:22 cargilld
+ * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
+ *
* Revision 1.11 2004/09/08 13:56:22 peiyongz
* Apache License Version 2.0
*
@@ -98,7 +101,7 @@
// This should really be a nested class, but some of the compilers we
// have to support cannot deal with that!
//
-template <class TVal> struct RefHash3KeysTableBucketElem : public XMemory
+template <class TVal> struct RefHash3KeysTableBucketElem
{
RefHash3KeysTableBucketElem(
void* key1
@@ -115,6 +118,7 @@
}
RefHash3KeysTableBucketElem() {};
+ ~RefHash3KeysTableBucketElem() {};
TVal* fData;
RefHash3KeysTableBucketElem<TVal>* fNext;
1.18 +20 -4 xml-xerces/c/src/xercesc/util/RefHashTableOf.c
Index: RefHashTableOf.c
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHashTableOf.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- RefHashTableOf.c 18 Nov 2004 01:35:20 -0000 1.17
+++ RefHashTableOf.c 19 Nov 2004 00:50:22 -0000 1.18
@@ -16,6 +16,9 @@
/**
* $Log$
+ * Revision 1.18 2004/11/19 00:50:22 cargilld
+ * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
+ *
* Revision 1.17 2004/11/18 01:35:20 cargilld
* Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls.
*
@@ -117,6 +120,7 @@
#include <xercesc/util/NullPointerException.hpp>
#include <assert.h>
+#include <new>
XERCES_CPP_NAMESPACE_BEGIN
@@ -254,7 +258,10 @@
delete curElem->fData;
// Then delete the current element and move forward
- delete curElem;
+ // delete curElem;
+ // destructor doesn't do anything...
+ // curElem->~RefHashTableBucketElem();
+ fMemoryManager->deallocate(curElem);
curElem = nextElem;
}
@@ -302,7 +309,10 @@
retVal = curElem->fData;
// Delete the current element
- delete curElem;
+ // delete curElem;
+ // destructor doesn't do anything...
+ // curElem->~RefHashTableBucketElem();
+ fMemoryManager->deallocate(curElem);
break;
}
@@ -440,7 +450,10 @@
}
else
{
- newBucket = new (fMemoryManager) RefHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]);
+ //newBucket = new (fMemoryManager) RefHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]);
+ newBucket =
+ new (fMemoryManager->allocate(sizeof(RefHashTableBucketElem<TVal>)))
+ RefHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]);
fBucketList[hashVal] = newBucket;
fCount++;
}
@@ -568,7 +581,10 @@
delete curElem->fData;
// Delete the current element
- delete curElem;
+ // delete curElem;
+ // destructor doesn't do anything...
+ // curElem->~RefHashTableBucketElem();
+ fMemoryManager->deallocate(curElem);
fCount--;
1.16 +5 -1 xml-xerces/c/src/xercesc/util/RefHashTableOf.hpp
Index: RefHashTableOf.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHashTableOf.hpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- RefHashTableOf.hpp 8 Sep 2004 13:56:23 -0000 1.15
+++ RefHashTableOf.hpp 19 Nov 2004 00:50:22 -0000 1.16
@@ -16,6 +16,9 @@
/*
* $Log$
+ * Revision 1.16 2004/11/19 00:50:22 cargilld
+ * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
+ *
* Revision 1.15 2004/09/08 13:56:23 peiyongz
* Apache License Version 2.0
*
@@ -130,7 +133,7 @@
// This should really be a nested class, but some of the compilers we
// have to support cannot deal with that!
//
-template <class TVal> struct RefHashTableBucketElem : public XMemory
+template <class TVal> struct RefHashTableBucketElem
{
RefHashTableBucketElem(void* key, TVal* const value, RefHashTableBucketElem<TVal>* next)
: fData(value), fNext(next), fKey(key)
@@ -138,6 +141,7 @@
}
RefHashTableBucketElem(){};
+ ~RefHashTableBucketElem(){};
TVal* fData;
RefHashTableBucketElem<TVal>* fNext;
1.11 +11 -3 xml-xerces/c/src/xercesc/util/ValueHashTableOf.c
Index: ValueHashTableOf.c
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/ValueHashTableOf.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ValueHashTableOf.c 18 Nov 2004 01:35:20 -0000 1.10
+++ ValueHashTableOf.c 19 Nov 2004 00:50:22 -0000 1.11
@@ -16,8 +16,8 @@
/**
* $Log$
- * Revision 1.10 2004/11/18 01:35:20 cargilld
- * Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls.
+ * Revision 1.11 2004/11/19 00:50:22 cargilld
+ * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory.
*
* Revision 1.9 2004/09/08 13:56:23 peiyongz
* Apache License Version 2.0
@@ -52,6 +52,7 @@
#include <xercesc/util/NullPointerException.hpp>
#include <assert.h>
+#include <new>
XERCES_CPP_NAMESPACE_BEGIN
@@ -153,7 +154,9 @@
nextElem = curElem->fNext;
// delete the current element and move forward
- delete curElem;
+ // destructor is empty...
+ // curElem->~ValueHashTableBucketElem();
+ fMemoryManager->deallocate(curElem);
curElem = nextElem;
}
@@ -208,7 +211,9 @@
}
else
{
- newBucket = new (fMemoryManager) ValueHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]);
+ newBucket =
+ new (fMemoryManager->allocate(sizeof(ValueHashTableBucketElem<TVal>)))
+ ValueHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]);
fBucketList[hashVal] = newBucket;
}
}
@@ -287,7 +292,10 @@
}
// Delete the current element
- delete curElem;
+ // delete curElem;
+ // destructor is empty...
+ // curElem->~ValueHashTableBucketElem();
+ fMemoryManager->deallocate(curElem);
return;
}
1.13 +3 -2 xml-xerces/c/src/xercesc/util/ValueHashTableOf.hpp
Index: ValueHashTableOf.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/ValueHashTableOf.hpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ValueHashTableOf.hpp 8 Sep 2004 13:56:23 -0000 1.12
+++ ValueHashTableOf.hpp 19 Nov 2004 00:50:22 -0000 1.13
@@ -45,13 +45,14 @@
// This should really be a nested class, but some of the compilers we
// have to support cannot deal with that!
//
-template <class TVal> struct ValueHashTableBucketElem : public XMemory
+template <class TVal> struct ValueHashTableBucketElem
{
ValueHashTableBucketElem(void* key, const TVal& value, ValueHashTableBucketElem<TVal>* next)
: fData(value), fNext(next), fKey(key)
{
}
ValueHashTableBucketElem(){};
+ ~ValueHashTableBucketElem(){};
TVal fData;
ValueHashTableBucketElem<TVal>* fNext;
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org