[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/i586-linux-thread-multi/CORE/ -> cc_runtime.h (source)

   1  /*    cc_runtime.h
   2   *
   3   *    Copyright (C) 1999, 2000, 2001, by Larry Wall and others
   4   *
   5   *    You may distribute under the terms of either the GNU General Public
   6   *    License or the Artistic License, as specified in the README file.
   7   *
   8   */
   9  
  10  #define DOOP(ppname) PUTBACK; PL_op = ppname(aTHX); SPAGAIN
  11  #define CCPP(s)   OP * s(pTHX)
  12  
  13  #define PP_LIST(g) do {            \
  14      dMARK;                \
  15      if (g != G_ARRAY) {        \
  16          if (++MARK <= SP)        \
  17          *MARK = *SP;        \
  18          else            \
  19          *MARK = &PL_sv_undef;    \
  20          SP = MARK;            \
  21      }                \
  22     } while (0)
  23  
  24  #define MAYBE_TAINT_SASSIGN_SRC(sv) \
  25      if (PL_tainting && PL_tainted && (!SvGMAGICAL(left) || !SvSMAGICAL(left) || \
  26          !((mg=mg_find(left, PERL_MAGIC_taint)) && mg->mg_len & 1)))\
  27          TAINT_NOT
  28  
  29  #define PP_PREINC(sv) do {    \
  30      if (SvIOK(sv)) {    \
  31              ++SvIVX(sv);    \
  32          SvFLAGS(sv) &= ~(SVf_NOK|SVf_POK|SVp_NOK|SVp_POK); \
  33      }            \
  34      else            \
  35          sv_inc(sv);        \
  36      SvSETMAGIC(sv);        \
  37      } while (0)
  38  
  39  #define PP_UNSTACK do {        \
  40      TAINT_NOT;        \
  41      PL_stack_sp = PL_stack_base + cxstack[cxstack_ix].blk_oldsp;    \
  42      FREETMPS;        \
  43      oldsave = PL_scopestack[PL_scopestack_ix - 1]; \
  44      LEAVE_SCOPE(oldsave);    \
  45      SPAGAIN;        \
  46      } while(0)
  47  
  48  /* Anyone using eval "" deserves this mess */
  49  #define PP_EVAL(ppaddr, nxt) do {        \
  50      dJMPENV;                \
  51      int ret;                \
  52      PUTBACK;                \
  53      JMPENV_PUSH(ret);            \
  54      switch (ret) {                \
  55      case 0:                    \
  56          PL_op = ppaddr(aTHX);        \
  57          if (PL_op != nxt) CALLRUNOPS();    \
  58          JMPENV_POP;                \
  59          break;                \
  60      case 1: JMPENV_POP; JMPENV_JUMP(1);    \
  61      case 2: JMPENV_POP; JMPENV_JUMP(2);    \
  62      case 3:                    \
  63          JMPENV_POP;                \
  64          if (PL_restartop && PL_restartop != nxt)        \
  65          JMPENV_JUMP(3);            \
  66      }                    \
  67      PL_op = nxt;                \
  68      SPAGAIN;                \
  69      } while (0)
  70  
  71  
  72  #define PP_ENTERTRY(jmpbuf,label)  \
  73      STMT_START {                    \
  74          int ret;        \
  75          JMPENV_PUSH_ENV(jmpbuf,ret);            \
  76          switch (ret) {                \
  77              case 1: JMPENV_POP_ENV(jmpbuf); JMPENV_JUMP(1);\
  78              case 2: JMPENV_POP_ENV(jmpbuf); JMPENV_JUMP(2);\
  79              case 3: JMPENV_POP_ENV(jmpbuf); SPAGAIN; goto label;\
  80          }                                       \
  81      } STMT_END
  82  #define PP_LEAVETRY \
  83      STMT_START{ PL_top_env=PL_top_env->je_prev; }STMT_END


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1