richter     2004/08/15 22:30:07

  Modified:    .        TODO epdom.c epinit.c epprovider.c eputil.c
                        mod_embperl.c
  Log:
  fix small memory leak
  
  Revision  Changes    Path
  1.125     +2 -0      embperl/TODO
  
  Index: TODO
  ===================================================================
  RCS file: /home/cvs/embperl/TODO,v
  retrieving revision 1.124
  retrieving revision 1.125
  diff -u -r1.124 -r1.125
  --- TODO      20 Jul 2004 04:59:10 -0000      1.124
  +++ TODO      16 Aug 2004 05:30:05 -0000      1.125
  @@ -13,6 +13,8 @@
   
   - Perl hash error at end of apache and apachectl restart
   
  +- check memory on recompile of epl files
  +
   TODO for Embperl 2.1 and later
   
   - make Embperl run with threads and threaded Apache 2
  
  
  
  1.21      +6 -4      embperl/epdom.c
  
  Index: epdom.c
  ===================================================================
  RCS file: /home/cvs/embperl/epdom.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- epdom.c   16 Aug 2004 03:38:59 -0000      1.20
  +++ epdom.c   16 Aug 2004 05:30:05 -0000      1.21
  @@ -192,7 +192,7 @@
       int          nOldSize = sizeof (tNodeData) + pNode -> numAttr * sizeof 
(tAttrData) ;
       tNodeData * pNew ;
       int n ;
  -    
  +

       if (((tUInt8 *)pNode) + nOldSize == pMemLast)
        { /* --- expand --- */
        if (((tUInt8 *)pNode) + nSize < pMemEnd)
  @@ -1468,14 +1468,16 @@
   
       if (pDomTree -> pDependsOn)
        {
  +        /*

           int i ;
   
           for (i = 0 ; i <= AvFILL (pDomTree -> pDependsOn); i++)
            {
            SV * pSV = *av_fetch (pDomTree -> pDependsOn, i, 0) ;
  -            /* ### */ lprintf (a, "pDependsOn DomTree #%d type = %d cnt=%d n=%d\n", 
i, SvTYPE(pSV), SvREFCNT(pSV), SvIVX(pSV)) ;
  +            lprintf (a, "pDependsOn DomTree #%d type = %d cnt=%d n=%d\n", i, 
SvTYPE(pSV), SvREFCNT(pSV), SvIVX(pSV)) ;
            }
  -        
  +        */

  +
        av_clear (pDomTree -> pDependsOn) ;
        
           SvREFCNT_dec (pDomTree -> pDependsOn) ;
  @@ -3172,7 +3174,7 @@
   
       if (pNewNodeDomTree != pRefNodeDomTree)
           {
  -        tNodeData * pNew = Node_newAndAppend (a, pRefNodeDomTree, pRefNode -> 
xParent, nRefRepeatLevel, NULL, pNewNode -> nLinenumber, sizeof (tNodeData) + pNewNode 
-> numAttr * sizeof (tAttrData)) ;        
  +        tNodeData * pNew = Node_newAndAppend (a, pRefNodeDomTree, pRefNode -> 
xParent, nRefRepeatLevel, NULL, pNewNode -> nLinenumber, sizeof (tNodeData) /* + 
pNewNode -> numAttr * sizeof (tAttrData) (attributes are NOT copied !!)*/) ;        
   
           pNew -> nText   = pNewNode -> nText ;
           pNew -> xChilds = pNewNode -> xChilds ;
  
  
  
  1.18      +8 -4      embperl/epinit.c
  
  Index: epinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/epinit.c,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- epinit.c  16 Aug 2004 03:39:00 -0000      1.17
  +++ epinit.c  16 Aug 2004 05:30:05 -0000      1.18
  @@ -1726,21 +1726,25 @@
       av_clear (r -> pThread -> pFormArray) ;
       hv_clear (r -> pThread -> pFormHash) ;
       hv_clear (r -> pThread -> pFormSplitHash) ;
  +    /*

       for (i = 0 ; i <= av_len (r -> pDomTreeAV); i++)

        {

        SV ** ppSV = av_fetch (r -> pDomTreeAV, i, 0) ;   

           SV * pSV = * ppSV ;

  -/* ### */ lprintf (r -> pApp, "r -> pDomTreeAV DomTree #%d type = %d cnt=%d 
n=%d\n", i, SvTYPE(pSV), SvREFCNT(pSV), SvIVX(pSV)) ;

  +        lprintf (r -> pApp, "r -> pDomTreeAV DomTree #%d type = %d cnt=%d n=%d\n", 
i, SvTYPE(pSV), SvREFCNT(pSV), SvIVX(pSV)) ;

        }

  +    */

       av_clear (r -> pDomTreeAV) ;
       SvREFCNT_dec (r -> pDomTreeAV) ;
       for (i = 0 ; i <= av_len (r -> pCleanupAV); i++)
        {
        SV ** ppSV = av_fetch (r -> pCleanupAV, i, 0) ;   

           SV * pSV = * ppSV ;

  -     if (SvROK(pSV))

  -/* ### */ lprintf (r -> pApp, "r -> pCleanupAV DomTree #%d type = %d cnt=%d 
n=%d\n", i, SvTYPE(SvRV(pSV)), SvREFCNT(SvRV(pSV)), SvIVX(SvRV(pSV))) ;

  -     if (SvROK(pSV))

  +     /*

  +        if (SvROK(pSV))

  +            lprintf (r -> pApp, "r -> pCleanupAV DomTree #%d type = %d cnt=%d 
n=%d\n", i, SvTYPE(SvRV(pSV)), SvREFCNT(SvRV(pSV)), SvIVX(SvRV(pSV))) ;

  +     */

  +        if (SvROK(pSV))

               sv_setsv (SvRV(pSV), &sv_undef) ;

        }
       av_clear (r -> pCleanupAV) ;

  
  
  
  1.6       +0 -1      embperl/epprovider.c
  
  Index: epprovider.c
  ===================================================================
  RCS file: /home/cvs/embperl/epprovider.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- epprovider.c      14 Aug 2004 14:28:42 -0000      1.5
  +++ epprovider.c      16 Aug 2004 05:30:05 -0000      1.6
  @@ -1678,7 +1678,6 @@
           {
           LogError (r, rc) ;
           }
  -/* ### */    lprintf (r ->pApp, "ProviderEpRun_IsExpired t=%d cv=%x\n", pProvider 
-> pCache -> nExpiresInTime, pProvider -> pCache -> pExpiresCV );
       if (pProvider -> pCache -> nExpiresInTime || pProvider -> pCache -> pExpiresCV)
           pProvider -> pCache -> bCache = 1 ;
       else
  
  
  
  1.41      +2 -2      embperl/eputil.c
  
  Index: eputil.c
  ===================================================================
  RCS file: /home/cvs/embperl/eputil.c,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- eputil.c  16 Aug 2004 03:39:00 -0000      1.40
  +++ eputil.c  16 Aug 2004 05:30:05 -0000      1.41
  @@ -2074,13 +2074,13 @@
        if ((!SvMAGICAL(pSV) || !(pMagic = mg_find (pSV, MGTTYPE))))
            {
            sv_magicext ((SV *)pSV, NULL, MGTTYPE, &DMalloc_mvtTab, (char *)&s, sizeof 
(s)) ;

  -         //sv_magic ((SV *)pSV, NULL, MGTTYPE, (char *)&s, sizeof (s)) ;

  +         /* sv_magic ((SV *)pSV, NULL, MGTTYPE, (char *)&s, sizeof (s)) ; */

            pMagic = mg_find (pSV, MGTTYPE) ;
            }
   
        if (pMagic)
            {
  -         //pMagic -> mg_virtual = &DMalloc_mvtTab ;
  +         /* pMagic -> mg_virtual = &DMalloc_mvtTab ; */
            }
        else
            {
  
  
  
  1.21      +1 -1      embperl/mod_embperl.c
  
  Index: mod_embperl.c
  ===================================================================
  RCS file: /home/cvs/embperl/mod_embperl.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- mod_embperl.c     16 Aug 2004 04:19:44 -0000      1.20
  +++ mod_embperl.c     16 Aug 2004 05:30:05 -0000      1.21
  @@ -200,7 +200,7 @@
   
   int embperl_ApInitDone (void)
       {
  -    return 0 ; //bInitDone ;
  +    return 0 ; /* bInitDone ; */
       }
   
   
  
  
  

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

Reply via email to