The R Project SVN R

Rev

Rev 77424 | Rev 77993 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 77424 Rev 77445
Line 6534... Line 6534...
6534
		R_bcstack_t *loopdata = oldtop - FOR_LOOP_STATE_SIZE;
6534
		R_bcstack_t *loopdata = oldtop - FOR_LOOP_STATE_SIZE;
6535
		BCNSTACKCHECK(FOR_LOOP_STATE_SIZE);
6535
		BCNSTACKCHECK(FOR_LOOP_STATE_SIZE);
6536
		for (int i = 0; i < FOR_LOOP_STATE_SIZE; i++)
6536
		for (int i = 0; i < FOR_LOOP_STATE_SIZE; i++)
6537
		    R_BCNodeStackTop[i] = loopdata[i];
6537
		    R_BCNodeStackTop[i] = loopdata[i];
6538
		R_BCNodeStackTop += FOR_LOOP_STATE_SIZE;
6538
		R_BCNodeStackTop += FOR_LOOP_STATE_SIZE;
6539
		SET_FOR_LOOP_BCPROT_OFFSET(R_BCProtTop - R_BCNodeStackBase);
6539
		SET_FOR_LOOP_BCPROT_OFFSET((int)(R_BCProtTop - R_BCNodeStackBase));
6540
		INCLNK_stack(R_BCNodeStackTop);
6540
		INCLNK_stack(R_BCNodeStackTop);
6541
 
6541
 
6542
		begincontext(cntxt, CTXT_LOOP, R_NilValue, rho, R_BaseEnv,
6542
		begincontext(cntxt, CTXT_LOOP, R_NilValue, rho, R_BaseEnv,
6543
			     R_NilValue, R_NilValue);
6543
			     R_NilValue, R_NilValue);
6544
		switch (SETJMP(cntxt->cjmpbuf)) {
6544
		switch (SETJMP(cntxt->cjmpbuf)) {
Line 6642... Line 6642...
6642
	    break;
6642
	    break;
6643
	default: BCNPUSH(R_NilValue);
6643
	default: BCNPUSH(R_NilValue);
6644
	}
6644
	}
6645
	/* the seq, binding cell, and value on the stack are now boxed */
6645
	/* the seq, binding cell, and value on the stack are now boxed */
6646
 
6646
 
6647
	SET_FOR_LOOP_BCPROT_OFFSET(R_BCProtTop - R_BCNodeStackBase);
6647
	SET_FOR_LOOP_BCPROT_OFFSET((int)(R_BCProtTop - R_BCNodeStackBase));
6648
	INCLNK_stack(R_BCNodeStackTop);
6648
	INCLNK_stack(R_BCNodeStackTop);
6649
 
6649
 
6650
	BC_CHECK_SIGINT();
6650
	BC_CHECK_SIGINT();
6651
	pc = codebase + label;
6651
	pc = codebase + label;
6652
	NEXT();
6652
	NEXT();
Line 7622... Line 7622...
7622
      for (int n = GETOP(), i = 0; i < n; i++)
7622
      for (int n = GETOP(), i = 0; i < n; i++)
7623
	  DECLNK_STACK_PTR(R_BCNodeStackTop - 2 - i);
7623
	  DECLNK_STACK_PTR(R_BCNodeStackTop - 2 - i);
7624
      NEXT();
7624
      NEXT();
7625
    OP(INCLNKSTK, 0):
7625
    OP(INCLNKSTK, 0):
7626
      {
7626
      {
7627
	  int offset = R_BCProtTop - R_BCNodeStackBase;
7627
	  int offset = (int)(R_BCProtTop - R_BCNodeStackBase);
7628
	  INCLNK_stack(R_BCNodeStackTop);
7628
	  INCLNK_stack(R_BCNodeStackTop);
7629
	  BCNPUSH_INTEGER(offset);
7629
	  BCNPUSH_INTEGER(offset);
7630
	  NEXT();
7630
	  NEXT();
7631
      }
7631
      }
7632
    OP(DECLNKSTK, 0):
7632
    OP(DECLNKSTK, 0):