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 ;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to