richter     00/12/20 06:51:54

  Modified:    .        Tag: Embperl2c epcomp.c
  Log:
  Embperl 2
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.4.2.30  +12 -2     embperl/Attic/epcomp.c
  
  Index: epcomp.c
  ===================================================================
  RCS file: /home/cvs/embperl/Attic/epcomp.c,v
  retrieving revision 1.4.2.29
  retrieving revision 1.4.2.30
  diff -u -r1.4.2.29 -r1.4.2.30
  --- epcomp.c  2000/12/18 20:41:40     1.4.2.29
  +++ epcomp.c  2000/12/20 14:51:53     1.4.2.30
  @@ -912,6 +912,7 @@
                         /*in*/  tNodeData *    pNode,
                         /*in*/  tEmbperlCmd *  pCmd,
                         /*in*/  int            nCheckpointCodeOffset,
  +                         /*in*/  int         nCheckpointLastNode,               
                         /*i/o*/ int *          bCheckpointPending)
   
   
  @@ -944,6 +945,9 @@
            lprintf (pCurrReq, "[%d]EPCOMP: #%d L%d Remove Checkpoint\n", pCurrReq -> 
nPid, pNode -> xNdx, pNode -> nLinenumber) ;
        nCheckpointCodeOffset = 0 ;
        *bCheckpointPending = -1 ; /* set checkpoint on next possibility */
  +        if (nCheckpointLastNode)
  +            pDomTree -> xLastNode = nCheckpointLastNode ;
  +
           }
   
       if (*bCheckpointPending && (pNode -> bFlags & nflgIgnore))
  @@ -955,6 +959,8 @@
        //l = sprintf (buf, " _ep_cp($_ep_DomTree,%d) ;\n", 
*bCheckpointPending<0?pNode -> xNdx:*bCheckpointPending) ;
        //l = sprintf (buf, " _ep_cp($_ep_DomTree,%d) ;\n", pNode -> xNdx) ;
        l = sprintf (buf, " _ep_cp(%d) ;\n", pNode -> xNdx) ;
  +        nCheckpointLastNode = pDomTree -> xLastNode ;
  +        pDomTree -> xLastNode = pNode -> xNdx ;
        //l = sprintf (buf, " $_ep_cp=%d;\n", pNode -> xNdx) ;
        nCheckpointCodeOffset = StringAdd (r -> pProg, buf,     l) ;
        *bCheckpointPending = 0 ;
  @@ -1121,6 +1127,7 @@
       int             nAttr = 0 ;
       int                  nStartCodeOffset = 0 ;               
       int                  nCheckpointCodeOffset = 0 ;               
  +    int                  nCheckpointLastNode = 0 ;               
   
   
       if (pCurrReq -> bDebug & dbgParse)
  @@ -1154,7 +1161,9 @@
        pNode -> bFlags |= nflgCheckpoint ;
        //l = sprintf (buf, " _ep_cp($_ep_DomTree,%d) ;\n", 
*bCheckpointPending<0?pNode -> xNdx:*bCheckpointPending) ;
        //l = sprintf (buf, " _ep_cp($_ep_DomTree,%d) ;\n", pNode -> xNdx) ;
  -     l = sprintf (buf, " _ep_cp(%d) ;\n", pNode -> xNdx) ;
  +     l = sprintf (buf, " _ep_cp(%d) ;\n", xNode) ;
  +        nCheckpointLastNode = pDomTree -> xLastNode ;
  +        pDomTree -> xLastNode = xNode ;
        //l = sprintf (buf, " $_ep_cp=%d;\n", pNode -> xNdx) ;
        nCheckpointCodeOffset = StringAdd (r -> pProg, buf,  l) ; 
        *bCheckpointPending = 0 ;
  @@ -1168,6 +1177,7 @@
           {
           r -> pProg = &r -> pProgDef ;
           nCheckpointCodeOffset = 0 ;
  +        nCheckpointLastNode = 0 ;               
           }
        
       if (pCmd == NULL || (pCmd -> bRemoveNode & 8) == 0)
  @@ -1202,7 +1212,7 @@
   
       pCmd = pCmdHead ;
       if (pCmd)
  -        if ((rc = embperl_CompilePostProcess (r, pDomTree, pNode, pCmd, 
nCheckpointCodeOffset, bCheckpointPending)) != ok)
  +        if ((rc = embperl_CompilePostProcess (r, pDomTree, pNode, pCmd, 
nCheckpointCodeOffset, nCheckpointLastNode, bCheckpointPending)) != ok)
            return rc ;
   
   
  
  
  

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

Reply via email to