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]