From 103fa22e9ce6ecc0f10fee5dac29726a153b1774 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Thu, 3 Aug 2006 08:01:00 -0700 Subject: Version abc60803 --- src/temp/mem/mem.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'src/temp/mem/mem.c') diff --git a/src/temp/mem/mem.c b/src/temp/mem/mem.c index 26d6485d..15199755 100644 --- a/src/temp/mem/mem.c +++ b/src/temp/mem/mem.c @@ -302,7 +302,7 @@ Mem_Flex_t * Mem_FlexStart() p->pCurrent = NULL; p->pEnd = NULL; - p->nChunkSize = (1 << 12); + p->nChunkSize = (1 << 14); p->nChunksAlloc = 64; p->nChunks = 0; p->pChunks = ALLOC( char *, p->nChunksAlloc ); @@ -386,6 +386,34 @@ char * Mem_FlexEntryFetch( Mem_Flex_t * p, int nBytes ) return pTemp; } +/**Function************************************************************* + + Synopsis [] + + Description [Relocates all the memory except the first chunk.] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Mem_FlexRestart( Mem_Flex_t * p ) +{ + int i; + if ( p->nChunks == 0 ) + return; + // deallocate all chunks except the first one + for ( i = 1; i < p->nChunks; i++ ) + free( p->pChunks[i] ); + p->nChunks = 1; + p->nMemoryAlloc = p->nChunkSize; + // transform these entries into a linked list + p->pCurrent = p->pChunks[0]; + p->pEnd = p->pCurrent + p->nChunkSize; + p->nEntriesUsed = 0; + p->nMemoryUsed = 0; +} + /**Function************************************************************* Synopsis [] @@ -399,7 +427,7 @@ char * Mem_FlexEntryFetch( Mem_Flex_t * p, int nBytes ) ***********************************************************************/ int Mem_FlexReadMemUsage( Mem_Flex_t * p ) { - return p->nMemoryAlloc; + return p->nMemoryUsed; } -- cgit v1.2.3