]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
changed MemObject mem_hdr from a pointer to a struct
authorwessels <>
Tue, 7 Jul 1998 08:54:13 +0000 (08:54 +0000)
committerwessels <>
Tue, 7 Jul 1998 08:54:13 +0000 (08:54 +0000)
src/enums.h
src/mem.cc
src/stat.cc
src/stmem.cc
src/store.cc
src/store_client.cc
src/store_swapout.cc
src/structs.h

index 490bb0993fb2af1f7071d64004799005a8f49e46..d42255353fa2c17933d035d255cb8353e9467746 100644 (file)
@@ -577,7 +577,6 @@ typedef enum {
     MEM_ICP_COMMON_T,
     MEM_IOSTATS,
     MEM_MEM_NODE,
-    MEM_MEM_HDR,
     MEM_STORE_CLIENT,
     MEM_MEMOBJECT,
     MEM_STOREENTRY,
index 842cc5f9caa988feaf5a15f35412610db61c34c2..8ef30c619945fab30460f4cfba5a523cd0a6a438 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: mem.cc,v 1.25 1998/05/30 19:43:14 rousskov Exp $
+ * $Id: mem.cc,v 1.26 1998/07/07 02:54:14 wessels Exp $
  *
  * DEBUG: section 13    High Level Memory Pool Management
  * AUTHOR: Harvest Derived
@@ -244,7 +244,6 @@ memInit(void)
     memDataInit(MEM_IPCACHE_ENTRY, "ipcache_entry", sizeof(ipcache_entry), 0);
     memDataInit(MEM_MEMOBJECT, "MemObject", sizeof(MemObject),
        Squid_MaxFD >> 3);
-    memDataInit(MEM_MEM_HDR, "mem_hdr", sizeof(mem_hdr), 0);
     memDataInit(MEM_MEM_NODE, "mem_node", sizeof(mem_node), 0);
     memDataInit(MEM_NETDBENTRY, "netdbEntry", sizeof(netdbEntry), 0);
     memDataInit(MEM_NET_DB_NAME, "net_db_name", sizeof(net_db_name), 0);
index 2ba9892cdd279db9282d61d3366ceffc329deb6e..8ef98118db21f8cd81fd44526c633b34c81de310 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: stat.cc,v 1.258 1998/06/08 17:29:19 wessels Exp $
+ * $Id: stat.cc,v 1.259 1998/07/07 02:54:14 wessels Exp $
  *
  * DEBUG: section 18    Cache Manager Statistics
  * AUTHOR: Harvest Derived
@@ -597,8 +597,6 @@ info_get(StoreEntry * sentry)
        memInUse(MEM_STOREENTRY));
     storeAppendPrintf(sentry, "\t%6d StoreEntries with MemObjects\n",
        memInUse(MEM_MEMOBJECT));
-    storeAppendPrintf(sentry, "\t%6d StoreEntries with MemObject Data\n",
-       memInUse(MEM_MEM_HDR));
     storeAppendPrintf(sentry, "\t%6d Hot Object Cache Items\n",
        hot_obj_count);
     storeAppendPrintf(sentry, "\t%6d Filemap bits set\n",
index a7081a9c0ae6140cad6039233985afdddb84f73e..6a11515cbd35c5b573532c9bc3ca5019e03d93a6 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: stmem.cc,v 1.60 1998/03/28 23:24:50 wessels Exp $
+ * $Id: stmem.cc,v 1.61 1998/07/07 02:54:15 wessels Exp $
  *
  * DEBUG: section 19    Store Memory Primitives
  * AUTHOR: Harvest Derived
 void
 stmemFree(mem_hdr * mem)
 {
-    mem_node *lastp;
-    mem_node *p = mem->head;
-
-    if (p) {
-       while (p && (p != mem->tail)) {
-           lastp = p;
-           p = p->next;
-           if (lastp) {
-               memFree(MEM_STMEM_BUF, lastp->data);
-               store_mem_size -= SM_PAGE_SIZE;
-               safe_free(lastp);
-           }
-       }
-
-       if (p) {
-           memFree(MEM_STMEM_BUF, p->data);
-           store_mem_size -= SM_PAGE_SIZE;
-           safe_free(p);
-       }
+    mem_node *p;
+    while ((p = mem->head)) {
+       mem->head = p->next;
+       memFree(MEM_STMEM_BUF, p->data);
+       store_mem_size -= SM_PAGE_SIZE;
+       safe_free(p);
     }
-    memFree(MEM_MEM_HDR, mem);
+    mem->head = mem->tail = NULL;
+    mem->origin_offset = 0;
 }
 
 int
index c0a838f1760c66da3b86e95cdd2abfeb611675a8..5df41faabfcba20b69c8b397a4ab37fe3ee06f4c 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store.cc,v 1.424 1998/06/28 07:52:59 wessels Exp $
+ * $Id: store.cc,v 1.425 1998/07/07 02:54:17 wessels Exp $
  *
  * DEBUG: section 20    Storage Manager
  * AUTHOR: Harvest Derived
@@ -155,7 +155,6 @@ static void storeGetMemSpace(int);
 static void storeHashDelete(StoreEntry *);
 static MemObject *new_MemObject(const char *, const char *);
 static void destroy_MemObject(StoreEntry *);
-static void destroy_MemObjectData(MemObject *);
 static FREE destroy_StoreEntry;
 static void storePurgeMem(StoreEntry *);
 static unsigned int getKeyCounter(method_t);
@@ -205,7 +204,8 @@ destroy_MemObject(StoreEntry * e)
     const Ctx ctx = ctx_enter(mem->url);
     debug(20, 3) ("destroy_MemObject: destroying %p\n", mem);
     assert(mem->swapout.fd == -1);
-    destroy_MemObjectData(mem);
+    stmemFree(&mem->data_hdr);
+    mem->inmem_hi = 0;
     /* XXX account log_url */
 #if USE_ASYNC_IO
     while (mem->clients != NULL)
@@ -238,18 +238,6 @@ destroy_StoreEntry(void *data)
     memFree(MEM_STOREENTRY, e);
 }
 
-static void
-destroy_MemObjectData(MemObject * mem)
-{
-    debug(20, 3) ("destroy_MemObjectData: destroying %p, %d bytes\n",
-       mem->data, (int) mem->inmem_hi);
-    if (mem->data) {
-       stmemFree(mem->data);
-       mem->data = NULL;
-    }
-    mem->inmem_hi = 0;
-}
-
 /* ----- INTERFACE BETWEEN STORAGE MANAGER AND HASH TABLE FUNCTIONS --------- */
 
 void
@@ -430,7 +418,6 @@ storeCreateEntry(const char *url, const char *log_url, int flags, method_t metho
     storeSetMemStatus(e, NOT_IN_MEMORY);
     e->swap_status = SWAPOUT_NONE;
     e->swap_file_number = -1;
-    mem->data = memAllocate(MEM_MEM_HDR);
     e->refcount = 0;
     e->lastref = squid_curtime;
     e->timestamp = 0;          /* set in storeTimestampsSet() */
@@ -459,7 +446,7 @@ storeAppend(StoreEntry * e, const char *buf, int len)
            len,
            storeKeyText(e->key));
        storeGetMemSpace(len);
-       stmemAppend(mem->data, buf, len);
+       stmemAppend(&mem->data_hdr, buf, len);
        mem->inmem_hi += len;
     }
     if (EBIT_TEST(e->flag, DELAY_SENDING))
@@ -903,7 +890,7 @@ storeKeepInMemory(const StoreEntry * e)
     MemObject *mem = e->mem_obj;
     if (mem == NULL)
        return 0;
-    if (mem->data == NULL)
+    if (mem->data_hdr.head == NULL)
        return 0;
     return mem->inmem_lo == 0;
 }
@@ -1025,8 +1012,12 @@ storeUnregisterAbort(StoreEntry * e)
 void
 storeMemObjectDump(MemObject * mem)
 {
-    debug(20, 1) ("MemObject->data: %p\n",
-       mem->data);
+    debug(20, 1) ("MemObject->data.head: %p\n",
+       mem->data_hdr.head);
+    debug(20, 1) ("MemObject->data.tail: %p\n",
+       mem->data_hdr.tail);
+    debug(20, 1) ("MemObject->data.origin_offset: %d\n",
+       mem->data_hdr.origin_offset);
     debug(20, 1) ("MemObject->start_ping: %d.%06d\n",
        (int) mem->start_ping.tv_sec,
        (int) mem->start_ping.tv_usec);
index 62a3267279c4702878d92238c107cb5a2bf2f20e..30e4ff40e439ec7e0346820cd53fdf9c9fa01507 100644 (file)
@@ -178,7 +178,7 @@ storeClientCopy2(StoreEntry * e, store_client * sc)
     } else if (sc->copy_offset >= mem->inmem_lo && sc->copy_offset < mem->inmem_hi) {
        /* What the client wants is in memory */
        debug(20, 3) ("storeClientCopy2: Copying from memory\n");
-       sz = stmemCopy(mem->data, sc->copy_offset, sc->copy_buf, sc->copy_size);
+       sz = stmemCopy(&mem->data_hdr, sc->copy_offset, sc->copy_buf, sc->copy_size);
 #if USE_ASYNC_IO
        if (sc->flags.disk_io_pending) {
            if (sc->swapin_fd >= 0)
index f96e20939230f6a48062500f525b55c3fe98b2a9..40b28082f0db3c780325519d601cd0a1dd49ddda 100644 (file)
@@ -134,13 +134,13 @@ storeCheckSwapOut(StoreEntry * e)
     if (!EBIT_TEST(e->flag, ENTRY_CACHABLE)) {
        if (!EBIT_TEST(e->flag, KEY_PRIVATE))
            debug(20, 3) ("storeCheckSwapOut: Attempt to swap out a non-cacheable non-private object!\n");
-       stmemFreeDataUpto(mem->data, new_mem_lo);
+       stmemFreeDataUpto(&mem->data_hdr, new_mem_lo);
        mem->inmem_lo = new_mem_lo;
        return;
     }
     if (mem->swapout.queue_offset < new_mem_lo)
        new_mem_lo = mem->swapout.queue_offset;
-    stmemFreeDataUpto(mem->data, new_mem_lo);
+    stmemFreeDataUpto(&mem->data_hdr, new_mem_lo);
     mem->inmem_lo = new_mem_lo;
 
     swapout_size = (size_t) (mem->inmem_hi - mem->swapout.queue_offset);
@@ -165,7 +165,7 @@ storeCheckSwapOut(StoreEntry * e)
     if (swapout_size > STORE_SWAP_BUF)
        swapout_size = STORE_SWAP_BUF;
     swap_buf = memAllocate(MEM_DISK_BUF);
-    swap_buf_len = stmemCopy(mem->data,
+    swap_buf_len = stmemCopy(&mem->data_hdr,
        mem->swapout.queue_offset,
        swap_buf,
        swapout_size);
index 91cfe6a6b08fa10655ef4026f18ee8c5ea80c77e..3cea6a859c25cc4fb0c1c8cb9fbe5eb56433b243 100644 (file)
@@ -1056,7 +1056,7 @@ struct _store_client {
 struct _MemObject {
     method_t method;
     char *url;
-    mem_hdr *data;
+    mem_hdr data_hdr;
     off_t inmem_hi;
     off_t inmem_lo;
     store_client *clients;