diff options
Diffstat (limited to 'pp_sort.c')
-rw-r--r-- | pp_sort.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -1470,8 +1470,7 @@ PP(pp_sort) SAVEVPTR(CvROOT(cv)->op_ppaddr); CvROOT(cv)->op_ppaddr = PL_ppaddr[OP_NULL]; - SAVEVPTR(PL_curpad); - PL_curpad = AvARRAY((AV*)AvARRAY(CvPADLIST(cv))[1]); + PAD_SET_CUR(CvPADLIST(cv), 1); } } } @@ -1535,13 +1534,13 @@ PP(pp_sort) if (hasargs && !is_xsub) { /* This is mostly copied from pp_entersub */ - AV *av = (AV*)PL_curpad[0]; + AV *av = (AV*)PAD_SVl(0); #ifndef USE_5005THREADS cx->blk_sub.savearray = GvAV(PL_defgv); GvAV(PL_defgv) = (AV*)SvREFCNT_inc(av); #endif /* USE_5005THREADS */ - cx->blk_sub.oldcurpad = PL_curpad; + CX_CURPAD_SAVE(cx->blk_sub); cx->blk_sub.argarray = av; } sortsv((myorigmark+1), max, @@ -1614,7 +1613,7 @@ sortcv_stacked(pTHX_ SV *a, SV *b) AV *av; #ifdef USE_5005THREADS - av = (AV*)PL_curpad[0]; + av = (AV*)PAD_SVl(0); #else av = GvAV(PL_defgv); #endif |