? src/.gdbinit
? src/gmon.out
? src/squid.22337.kandy.txt
? src/squid.22337.kandy.xml
? src/squid.22401.kandy.txt
? src/squid.22401.kandy.xml
? src/squid.26714.kandy.txt
? src/squid.26714.kandy.xml
? src/squid.26921.kandy.xml
? src/squid.28865.kandy.xml
? src/squid.28892.kandy.txt
? src/squid.28892.kandy.xml
? src/trace.1.txt
? src/trace.2.txt
? src/trace.3.txt
? src/trace.4.txt
? src/vg.12161
Index: include/MemPool.h
===================================================================
RCS file: /server/cvs-server/squid/squid3/include/MemPool.h,v
retrieving revision 1.14
diff -u -r1.14 MemPool.h
--- include/MemPool.h	3 Sep 2006 21:05:19 -0000	1.14
+++ include/MemPool.h	19 Sep 2006 09:22:50 -0000
@@ -109,6 +109,7 @@
     virtual void free(void *) = 0;
     virtual char const *objectType() const;
     virtual size_t objectSize() const = 0;
+    virtual int getInUseCount() = 0;
     int inUseCount();
     virtual void setChunkSize(size_t chunksize) {}
 private:
@@ -179,6 +180,7 @@
     /* Hint to the allocator - may be ignored */
     virtual void setChunkSize(size_t chunksize) {}
     virtual size_t objectSize() const;
+    virtual int getInUseCount() = 0;
   protected:
     virtual void *allocate() = 0;
     virtual void deallocate(void *) = 0;
@@ -204,6 +206,7 @@
     void createChunk();
     void *get();
     void push(void *obj);
+    virtual int getInUseCount();
   protected:
     virtual void *allocate();
     virtual void deallocate(void *);
@@ -230,9 +233,12 @@
     virtual bool idleTrigger(int shift) const;
     virtual void clean(time_t maxage);
     virtual int getStats(MemPoolStats * stats);
+    virtual int getInUseCount();
   protected:
     virtual void *allocate();
     virtual void deallocate(void *);
+  private:
+    int inuse;
 };
 
 class MemChunk
Index: lib/MemPool.cc
===================================================================
RCS file: /server/cvs-server/squid/squid3/lib/MemPool.cc,v
retrieving revision 1.5
diff -u -r1.5 MemPool.cc
--- lib/MemPool.cc	3 Sep 2006 04:11:59 -0000	1.5
+++ lib/MemPool.cc	19 Sep 2006 09:22:50 -0000
@@ -456,9 +456,7 @@
 int
 MemAllocator::inUseCount()
 {
-    MemPoolStats stats;
-    getStats(&stats);
-    return stats.items_inuse;
+    return getInUseCount();
 }
 
 void
@@ -529,12 +527,14 @@
 void *
 MemMalloc::allocate()
 {
+    inuse++;
     return xcalloc(1, obj_size);
 }
 
 void
 MemMalloc::deallocate(void *obj)
 {
+    inuse--;
     xfree(obj);
 }
 
@@ -556,6 +556,12 @@
     ++free_calls;
 }
 
+int
+MemPool::getInUseCount()
+{
+    return inuse;
+}
+
 void *
 MemPool::allocate()
 {
@@ -777,6 +783,12 @@
     return getMeter().inuse.level;
 }
 
+int
+MemMalloc::getInUseCount()
+{
+	return inuse;
+}
+
 /*
  * Totals statistics is returned
  */
@@ -824,7 +836,7 @@
 {
 }
 
-MemMalloc::MemMalloc(char const *label, size_t aSize) : MemImplementingAllocator(label, aSize) {}
+MemMalloc::MemMalloc(char const *label, size_t aSize) : MemImplementingAllocator(label, aSize) { inuse = 0; }
 
 bool
 MemMalloc::idleTrigger(int shift) const
Index: src/MemObject.cc
===================================================================
RCS file: /server/cvs-server/squid/squid3/src/MemObject.cc,v
retrieving revision 1.23
diff -u -r1.23 MemObject.cc
--- src/MemObject.cc	21 Aug 2006 00:50:41 -0000	1.23
+++ src/MemObject.cc	19 Sep 2006 09:22:51 -0000
@@ -68,11 +68,7 @@
 size_t
 MemObject::inUseCount()
 {
-    MemPoolStats stats;
-
-    Pool().getStats (&stats);
-
-    return stats.items_inuse;
+    return Pool().inUseCount();
 }
 
 MemObject::MemObject(char const *aUrl, char const *aLog_url)
Index: src/mem_node.cc
===================================================================
RCS file: /server/cvs-server/squid/squid3/src/mem_node.cc,v
retrieving revision 1.8
diff -u -r1.8 mem_node.cc
--- src/mem_node.cc	2 Nov 2005 22:19:22 -0000	1.8
+++ src/mem_node.cc	19 Sep 2006 09:22:52 -0000
@@ -77,11 +77,7 @@
 size_t
 mem_node::InUseCount()
 {
-    MemPoolStats stats;
-
-    Pool().getStats (&stats);
-
-    return stats.items_inuse;
+    return Pool().inUseCount();
 }
 
 size_t
Index: src/store.cc
===================================================================
RCS file: /server/cvs-server/squid/squid3/src/store.cc,v
retrieving revision 1.600
diff -u -r1.600 store.cc
--- src/store.cc	3 Sep 2006 21:05:20 -0000	1.600
+++ src/store.cc	19 Sep 2006 09:22:53 -0000
@@ -210,12 +210,7 @@
 {
     if (!pool)
         return 0;
-
-    MemPoolStats stats;
-
-    pool->getStats (&stats);
-
-    return stats.items_inuse;
+    return pool->getInUseCount();
 }
 
 const char *

