You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@locus.apache.org on 2000/12/05 08:21:54 UTC

cvs commit: embperl epcomp.c epdom.c

richter     00/12/04 23:21:54

  Modified:    .        Tag: Embperl2c epcomp.c epdom.c
  Log:
  Emberl 2 - Memorymanagement
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.4.2.20  +5 -3      embperl/Attic/epcomp.c
  
  Index: epcomp.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epcomp.c,v
  retrieving revision 1.4.2.19
  retrieving revision 1.4.2.20
  diff -u -r1.4.2.19 -r1.4.2.20
  --- epcomp.c	2000/12/05 04:45:21	1.4.2.19
  +++ epcomp.c	2000/12/05 07:21:53	1.4.2.20
  @@ -1392,7 +1392,12 @@
       if ((rc = EvalOnly (r, r -> pProgRun, ppCompResult, G_SCALAR, "")) != ok)
   	return rc ;
   
  +
  +    StringFree (&r -> pProgRun) ;
  +    StringFree (&r -> pProgDef) ;
  +
       cl4 = clock () ;
  +
   #ifdef CLOCKS_PER_SEC
       if (r -> bDebug)
   	{
  @@ -1404,9 +1409,6 @@
   	DomStats () ;
   	}
   #endif        
  -
  -    StringFree (&r -> pProgRun) ;
  -    StringFree (&r -> pProgDef) ;
   
       return ok ;
       }
  
  
  
  1.4.2.8   +41 -5     embperl/Attic/epdom.c
  
  Index: epdom.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epdom.c,v
  retrieving revision 1.4.2.7
  retrieving revision 1.4.2.8
  diff -u -r1.4.2.7 -r1.4.2.8
  --- epdom.c	2000/12/05 04:45:21	1.4.2.7
  +++ epdom.c	2000/12/05 07:21:53	1.4.2.8
  @@ -42,9 +42,45 @@
   tIndex xCheckpointCache[512] ;
   
   
  -#define dom_malloc(s)  (nMemUsage += s, malloc(s))
  -#define dom_free(s)    (free(s))
  +//#define dom_malloc(s)  (nMemUsage += s, malloc(s))
   
  +void * dom_malloc (size_t  n)
  +    {
  +    void * m = malloc(n + sizeof (size_t)) ;
  +    if (m)
  +	{
  +	nMemUsage += n ;
  +	*((size_t *)m)++ = n ;
  +	}
  +
  +    return m ;
  +    }
  +
  +void * dom_realloc (void * s, size_t  n)
  +    {
  +    void * m = ((size_t *)s) - 1 ;
  +    nMemUsage -= *((size_t *)s) ;
  +    if (m = realloc (m, n + sizeof (size_t)))
  +	{
  +	nMemUsage += n ;
  +	*((size_t *)m)++ = n ;
  +	}
  +    return m ;
  +    }
  +
  +//#define dom_free(s)    (free(s))
  +
  +void dom_free (void * s)
  +    {
  +    void * m = ((size_t *)s) - 1 ;
  +    nMemUsage -= *((size_t *)m) ;
  +    free (m) ;
  +    }
  +
  +
  +
  +
  +
   
   /* forward */
   static int DomTree_free (SV * pSV, MAGIC * mg) ;
  @@ -169,7 +205,7 @@
   	struct tArrayCtrl * pNew ;
   	int		    nNewMax = pCtrl -> nFill + numElements + pCtrl -> nAdd ;
   	
  -	if ((pNew = realloc (pCtrl, nNewMax * pCtrl -> nElementSize + sizeof (struct tArrayCtrl))) == NULL)
  +	if ((pNew = dom_realloc (pCtrl, nNewMax * pCtrl -> nElementSize + sizeof (struct tArrayCtrl))) == NULL)
   	    return 0 ;
   	
   	*(void * *)pArray = (struct tArray *)(pNew + 1) ;
  @@ -233,7 +269,7 @@
   	if (nNewMax < numElements)
   	    nNewMax = numElements + pCtrl -> nAdd ;
   	
  -	if ((pNew = realloc (pCtrl, nNewMax * pCtrl -> nElementSize + sizeof (struct tArrayCtrl))) == NULL)
  +	if ((pNew = dom_realloc (pCtrl, nNewMax * pCtrl -> nElementSize + sizeof (struct tArrayCtrl))) == NULL)
   	    return 0 ;
   	
   	p = (char *)(pNew + 1) ;
  @@ -976,7 +1012,7 @@
       if (nSize == 0)
   	nSize = nInitialNodePadSize ;
       else
  -	nSize = (nSize + sizeof (struct tNodePad) / nInitialNodePadSize + 1) * nInitialNodePadSize ;
  +	nSize = ((nSize + sizeof (struct tNodePad)) / nInitialNodePadSize + 1) * nInitialNodePadSize ;
       
       if ((pDomTree -> pLookup[xNdx] = pChilds = dom_malloc (nSize)) == NULL)
   	return NULL ;