]> git.vpit.fr Git - perl/modules/Scope-Upper.git/blobdiff - Upper.xs
Minor whitespace changes
[perl/modules/Scope-Upper.git] / Upper.xs
index 2ce8527fe2b7f8d3232a44b087418f567b6a9f76..80cfbbd584e56259e0e79b008bd99fe655c2956e 100644 (file)
--- a/Upper.xs
+++ b/Upper.xs
@@ -21,7 +21,6 @@
 # define SU_HAS_NEW_CXT
 #endif
 
-
 #ifndef dVAR
 # define dVAR dNOOP
 #endif
@@ -203,24 +202,6 @@ static U8 su_op_gimme_reverse(U8 gimme) {
 # define NEGATIVE_INDICES_VAR "NEGATIVE_INDICES"
 #endif
 
-/* CX_ARGARRAY(cx): the AV at pad[0] of the CV associated with CXt_SUB
- * context cx */
-
-#if XSH_HAS_PERL(5, 23, 8)
-# define CX_ARGARRAY(cx) \
-    ((AV*)(AvARRAY(MUTABLE_AV(                     \
-        PadlistARRAY(CvPADLIST(cx->blk_sub.cv))[   \
-            CvDEPTH(cx->blk_sub.cv)]))[0]))
-# define CX_ARGARRAY_set(cx,ary) \
-    (AvARRAY(MUTABLE_AV(                     \
-        PadlistARRAY(CvPADLIST(cx->blk_sub.cv))[   \
-            CvDEPTH(cx->blk_sub.cv)]))[0] = (SV*)(ary))
-#else
-# define CX_ARGARRAY(cx)         (cx->blk_sub.argarray)
-# define CX_ARGARRAY_set(cx,ary) (cx->blk_sub.argarray = (ary))
-#endif
-
-
 /* --- Error messages ------------------------------------------------------ */
 
 static const char su_stack_smash[]    = "Cannot target a scope outside of the current stack";
@@ -375,9 +356,9 @@ typedef struct {
  CV            *renamed;
 
 #ifdef SU_HAS_NEW_CXT
- U8            *cxtypes; /* array of saved context types */
- I32           gap;      /* how many contexts have temporarily CXt_NULLed out */
- AV*           argarray; /* the PL_curpad[0] of the uplevel sub */
+ U8             *cxtypes; /* array of saved context types */
+ I32            gap;      /* how many contexts have temporarily CXt_NULLed out*/
+ AV*            argarray; /* the PL_curpad[0] of the uplevel sub */
 #else
  I32            target_depth;
  CV            *target;
@@ -416,7 +397,7 @@ static su_uplevel_ud *su_uplevel_ud_new(pTHX) {
  sud->tmp_uid_storage.used  = 0;
  sud->tmp_uid_storage.alloc = 0;
 
- #ifndef SU_HAS_NEW_CXT
+#ifndef SU_HAS_NEW_CXT
  Newx(si, 1, PERL_SI);
  si->si_stack   = newAV();
  AvREAL_off(si->si_stack);
@@ -550,7 +531,6 @@ static void xsh_user_clone(pTHX_ const xsh_user_cxt_t *old_cxt, xsh_user_cxt_t *
 # define SU_SAVE_HELEM_OR_HDELETE_SIZE SU_SAVE_HELEM_SIZE
 #endif
 
-
 #ifndef SvCANEXISTDELETE
 # define SvCANEXISTDELETE(sv) \
   (!SvRMAGICAL(sv)            \
@@ -731,19 +711,18 @@ static void su_save_gvcv(pTHX_ GV *gv) {
 /* --- Actions ------------------------------------------------------------- */
 
 typedef struct {
- I32  orig_ix; /* original savestack_ix */
- I32  offset;  /* how much we bumped this savestack index */
+ I32 orig_ix; /* original savestack_ix */
+ I32 offset;  /* how much we bumped this savestack index */
 } su_ud_origin_elem;
 
 typedef struct {
- U8   type;
- U8   private;
+ U8                 type;
+ U8                 private;
  /* spare */
- I32  depth;
+ I32                depth;
  su_ud_origin_elem *origin;
 } su_ud_common;
 
-
 #define SU_UD_TYPE(U)    (((su_ud_common *) (U))->type)
 #define SU_UD_PRIVATE(U) (((su_ud_common *) (U))->private)
 #define SU_UD_DEPTH(U)   (((su_ud_common *) (U))->depth)
@@ -1090,8 +1069,6 @@ static const int su_cxt_enter_count[] = {
 # endif
 };
 
-
-
 /* push at least 'size' slots worth of padding onto the savestack */
 
 static void su_ss_push_padding(pTHX_ void *ud, I32 size) {
@@ -1105,11 +1082,8 @@ static void su_ss_push_padding(pTHX_ void *ud, I32 size) {
  save_alloc((size - SU_SAVE_ALLOC_SIZE)*sizeof(*PL_savestack), 0);
 }
 
-
 static void su_pop(pTHX_ void *ud);
 
-
-
 /* push an su_pop destructor onto the savestack with suitable padding.
  * first indicates that this is the first push of a destructor */
 
@@ -1128,7 +1102,6 @@ static void su_ss_push_destructor(pTHX_ void *ud, I32 depth, bool first) {
         PL_savestack_ix <= origin[depth+1].orig_ix +  origin[depth+1].offset);
 }
 
-
 /* this is called during each leave_scope() via SAVEDESTRUCTOR_X */
 
 static void su_pop(pTHX_ void *ud) {
@@ -1189,7 +1162,6 @@ static void su_pop(pTHX_ void *ud) {
  XSH_D(su_debug_log("%p:     end pop: ss_ix=%d\n", ud, PL_savestack_ix));
 }
 
-
 /* --- Initialize the stack and the action userdata ------------------------ */
 
 static void su_init(pTHX_ void *ud, I32 cxix, I32 size) {
@@ -1247,7 +1219,7 @@ static void su_init(pTHX_ void *ud, I32 cxix, I32 size) {
   *
   * The passed cxix argument represents the scope we wish to inject into;
   * we have to adjust all the savestack frame boundaries above (but not
-  * including) that context. 
+  * including) that context.
   */
 
  Newx(origin, depth, su_ud_origin_elem);
@@ -1350,7 +1322,6 @@ static void su_init(pTHX_ void *ud, I32 cxix, I32 size) {
  su_ss_push_destructor(aTHX_ ud, depth-1, 1);
 }
 
-
 /* --- Unwind stack -------------------------------------------------------- */
 
 static void su_unwind(pTHX_ void *ud_) {
@@ -1689,7 +1660,7 @@ static int su_uplevel_goto_runops(pTHX) {
     switch (CxTYPE(cx)) {
      case CXt_SUB:
       if (CxHASARGS(cx)) {
-       argarray = CX_ARGARRAY(cx);
+       argarray = cx->blk_sub.argarray;
        goto done;
       }
       break;
@@ -1810,8 +1781,8 @@ static void su_uplevel_restore_old(pTHX_ void *sus_) {
    * reached without a goto() happening, and the old argarray member is
    * actually our fake argarray. Destroy it properly in that case. */
   if (cx->blk_sub.cv == sud->renamed) {
-   SvREFCNT_dec(CX_ARGARRAY(cx));
-   CX_ARGARRAY_set(cx, argarray);
+   SvREFCNT_dec(cx->blk_sub.argarray);
+   cx->blk_sub.argarray = argarray;
   }
 
   CvDEPTH(sud->callback)--;
@@ -2003,8 +1974,6 @@ static CV *su_cv_clone(pTHX_ CV *proto, GV *gv) {
  return cv;
 }
 
-
-
 #ifdef SU_HAS_NEW_CXT
 
 /* this one-shot runops "loop" is designed to be called just before
@@ -2047,8 +2016,6 @@ static int su_uplevel_runops_hook_entersub(pTHX) {
  return 0;
 }
 
-
-
 static I32 su_uplevel_new(pTHX_ CV *callback, I32 cxix, I32 args) {
  su_uplevel_ud *sud;
  U8 *saved_cxtypes;
@@ -2078,7 +2045,6 @@ static I32 su_uplevel_new(pTHX_ CV *callback, I32 cxix, I32 args) {
  sud->gap      = cxstack_ix - cxix + 1;
  sud->argarray = NULL;
 
-
  Newx(saved_cxtypes, sud->gap, U8);
  sud->cxtypes = saved_cxtypes;
 
@@ -2100,7 +2066,6 @@ static I32 su_uplevel_new(pTHX_ CV *callback, I32 cxix, I32 args) {
  sud->renamed = su_cv_clone(callback, CvGV(base_cv));
  sud->old_runops = PL_runops;
 
-
  if (!CvISXSUB(sud->renamed) && CxHASARGS(&cxstack[cxix])) {
   sud->argarray = (AV*)su_at_underscore(base_cv);
   assert(PL_runops != su_uplevel_runops_hook_entersub);
@@ -2233,7 +2198,7 @@ static I32 su_uplevel_old(pTHX_ CV *callback, I32 cxix, I32 args) {
 
  if ((PL_op = PL_ppaddr[OP_ENTERSUB](aTHX))) {
   PERL_CONTEXT *sub_cx = cxstack + cxstack_ix;
-  AV *argarray = CX_ARGARRAY(cx);
+  AV *argarray = cx->blk_sub.argarray;
 
   /* If pp_entersub() returns a non-null OP, it means that the callback is not
    * an XSUB. */
@@ -2253,9 +2218,9 @@ static I32 su_uplevel_old(pTHX_ CV *callback, I32 cxix, I32 args) {
    av_extend(av, AvMAX(argarray));
    AvFILLp(av) = AvFILLp(argarray);
    Copy(AvARRAY(argarray), AvARRAY(av), AvFILLp(av) + 1, SV *);
-   CX_ARGARRAY_set(sub_cx, av);
+   sub_cx->blk_sub.argarray = av;
   } else {
-   SvREFCNT_inc_simple_void(CX_ARGARRAY(sub_cx));
+   SvREFCNT_inc_simple_void(sub_cx->blk_sub.argarray);
   }
 
   if (su_uplevel_goto_static(CvROOT(renamed))) {
@@ -2466,7 +2431,6 @@ static I32 su_context_skip_db(pTHX_ I32 cxix) {
  return cxix;
 }
 
-
 #ifdef SU_HAS_NEW_CXT
 
 /* convert a physical context stack index into the logical equivalent:
@@ -2517,7 +2481,6 @@ static I32 su_context_logical2real(pTHX_ I32 cxix) {
 # define su_context_logical2real(C) (C)
 #endif
 
-
 static I32 su_context_normalize_up(pTHX_ I32 cxix) {
 #define su_context_normalize_up(C) su_context_normalize_up(aTHX_ (C))
  PERL_CONTEXT *cx;