>
> Gerald, this is proving quite difficult to nail down to a simple
> minimal case. For me, however, this code seems to produce the effect.
> If I

Appended is a patch that should fix the problem (at least it does for me).
You can also fetch it from the CVS

Gerald


> remove or change an part (e.g. remove one of the innermost tables)
> then it works fine. But, for me, it runs away and fills up memory
> rapidly.
>
> The xxxx and yyyy subs are in a file of subs named Directory.epl,
> which is executed from base.epl. The routines are called from
> /directory/index.html. There is Directory.epl in the base dir, and
> Directory.epl in the /directory dir. There is only one version of xxxx
> and yyyy, both in /directory/Directory.epl.
>
> [$ sub yyyy $]
>
>    [- ($self) = @_; -]
>
> [$ endsub $]
>
> [$ sub xxxx $]
>
>    [- ($self) = @_; -]
>
>    <TABLE>
>
>    <TR>
>       <TD>
> <TABLE>
>     <TR>
>        <TD>
>   [- $x = 1; -]
>   [$ while $x < 10 $]
>     [+ $x +]
>     [- $x += 1; -]
>   [$ endwhile $]
>        </TD>
>     </TR>
> </TABLE>
>       </TD>
>
>       <TD>
> <TABLE>
>     <TR>
>        <TD>
>            <TABLE>
> [- $self->yyyy(); -]
>    </TABLE>
>        </TD>
>     </TR>
>          </TABLE>
>       </TD>
>
>    </TR>
>    </TABLE>
>
> [$ endsub $]
>
> The problem certainly seems to be related to embedded tables. Anyway,
> let me know if this setup causes a runaway on your system, if not then
> I'll try and nail it down to a simpler case.
>
> Thanks,
>
> -Neil
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

--------------------------------------------------------------
Gerald Richter     ecos electronic communication services gmbh
IT-Securitylösungen * dynamische Webapplikationen * Consulting

Post:       Tulpenstrasse 5          D-55276 Dienheim b. Mainz
E-Mail:     [EMAIL PROTECTED]          Voice:   +49 6133 939-122
WWW:        http://www.ecos.de/      Fax:     +49 6133 939-333
--------------------------------------------------------------
|
|   ECOS BB-5000 Firewall- und IT-Security Appliance: www.bb-5000.info
|
+-------------------------------------------------------------
Index: epdom.c
===================================================================
RCS file: /home/cvs/embperl/epdom.c,v
retrieving revision 1.14
diff -u -r1.14 epdom.c
--- epdom.c     23 Jan 2004 06:50:55 -0000      1.14
+++ epdom.c     2 Feb 2004 19:26:08 -0000
@@ -2848,13 +2848,26 @@
     if (pNxtNode)
         pNxtNode  = Node_selfCondCloneNode (a, pRefNodeDomTree, pNxtNode, 
nRefRepeatLevel) ; 
     else
-        pNxtNode = Node_selfLevel (a, pRefNodeDomTree, pRefNode -> xNext, 
nRefRepeatLevel) ; /* first one */
+        {
+        tNodeData * pParent  ;
+
+        if ((pParent = Node_selfLevel (a, pRefNodeDomTree, pRefNode -> xParent, 
nRefRepeatLevel)) == NULL ||
+            pParent -> xChilds != pRefNode -> xNext)
+            pNxtNode = Node_selfLevel (a, pRefNodeDomTree, pRefNode -> xNext, 
nRefRepeatLevel) ; /* first one */
+        else
+            pNxtNode = NULL ;
+        }
 
     xOrgNode = pNewNode -> xNdx ;
-    pNxtNode -> xPrev = pNewNode -> xNdx ;
+    if (pNxtNode)
+        {
+        pNxtNode -> xPrev = pNewNode -> xNdx ;
+        pNewNode -> xNext = pNxtNode -> xNdx ;
+        }
+    else
+        pNewNode -> xNext = pRefNode -> xNext ;
     pRefNode -> xNext = pNewNode -> xNdx ;
     pNewNode -> xPrev = pRefNode -> xNdx ;
-    pNewNode -> xNext = pNxtNode -> xNdx ;
 
     if (pNewNode -> nType == ntypDocument)
         {

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

Reply via email to