static I32
cmp_desc(pTHX_ gptr a, gptr b)
{
+ dVAR;
return -PL_sort_RealCmp(aTHX_ a, b);
}
STATIC void
S_mergesortsv(pTHX_ gptr *base, size_t nmemb, SVCOMPARE_t cmp, U32 flags)
{
+ dVAR;
IV i, run, offset;
I32 sense, level;
register gptr *f1, *f2, *t, *b, *p;
static I32
cmpindir(pTHX_ gptr a, gptr b)
{
+ dVAR;
gptr * const ap = (gptr *)a;
gptr * const bp = (gptr *)b;
const I32 sense = PL_sort_RealCmp(aTHX_ *ap, *bp);
static I32
cmpindir_desc(pTHX_ gptr a, gptr b)
{
+ dVAR;
gptr * const ap = (gptr *)a;
gptr * const bp = (gptr *)b;
const I32 sense = PL_sort_RealCmp(aTHX_ *ap, *bp);
STATIC void
S_qsortsv(pTHX_ gptr *list1, size_t nmemb, SVCOMPARE_t cmp, U32 flags)
{
+ dVAR;
if ((flags & SORTf_STABLE) != 0) {
register gptr **pp, *q;
register size_t n, j, i;
}
}
if (!(cv && CvROOT(cv))) {
- if (cv && CvXSUB(cv)) {
+ if (cv && CvISXSUB(cv)) {
is_xsub = 1;
}
else if (gv) {
SV *tmpstr = sv_newmortal();
- gv_efullname3(tmpstr, gv, Nullch);
+ gv_efullname3(tmpstr, gv, NULL);
DIE(aTHX_ "Undefined sort subroutine \"%"SVf"\" called",
tmpstr);
}
}
}
else {
- PL_sortcop = Nullop;
+ PL_sortcop = NULL;
stash = CopSTASH(PL_curcop);
}
p2 = SP;
for (i=0; i < max; i++) {
SV **svp = av_fetch(av, i, FALSE);
- *SP++ = (svp) ? *svp : Nullsv;
+ *SP++ = (svp) ? *svp : NULL;
}
}
else {
SAVESPTR(PL_firstgv);
SAVESPTR(PL_secondgv);
SAVESPTR(PL_sortstash);
- PL_firstgv = gv_fetchpv("a", TRUE, SVt_PV);
- PL_secondgv = gv_fetchpv("b", TRUE, SVt_PV);
+ PL_firstgv = gv_fetchpvs("a", GV_ADD|GV_NOTQUAL, SVt_PV);
+ PL_secondgv = gv_fetchpvs("b", GV_ADD|GV_NOTQUAL, SVt_PV);
PL_sortstash = stash;
SAVESPTR(GvSV(PL_firstgv));
SAVESPTR(GvSV(PL_secondgv));
if (hasargs) {
/* This is mostly copied from pp_entersub */
- AV *av = (AV*)PAD_SVl(0);
+ AV * const av = (AV*)PAD_SVl(0);
cx->blk_sub.savearray = GvAV(PL_defgv);
- GvAV(PL_defgv) = (AV*)SvREFCNT_inc(av);
+ GvAV(PL_defgv) = (AV*)SvREFCNT_inc_simple(av);
CX_CURPAD_SAVE(cx->blk_sub);
cx->blk_sub.argarray = av;
}
#define tryCALL_AMAGICbin(left,right,meth) \
(PL_amagic_generation && (SvAMAGIC(left)||SvAMAGIC(right))) \
? amagic_call(left, right, CAT2(meth,_amg), 0) \
- : Nullsv;
+ : NULL;
static I32
S_amagic_ncmp(pTHX_ register SV *a, register SV *b)
{
+ dVAR;
SV * const tmpsv = tryCALL_AMAGICbin(a,b,ncmp);
if (tmpsv) {
if (SvIOK(tmpsv)) {
static I32
S_amagic_i_ncmp(pTHX_ register SV *a, register SV *b)
{
+ dVAR;
SV * const tmpsv = tryCALL_AMAGICbin(a,b,ncmp);
if (tmpsv) {
if (SvIOK(tmpsv)) {
static I32
S_amagic_cmp(pTHX_ register SV *str1, register SV *str2)
{
+ dVAR;
SV * const tmpsv = tryCALL_AMAGICbin(str1,str2,scmp);
if (tmpsv) {
if (SvIOK(tmpsv)) {
static I32
S_amagic_cmp_locale(pTHX_ register SV *str1, register SV *str2)
{
+ dVAR;
SV * const tmpsv = tryCALL_AMAGICbin(str1,str2,scmp);
if (tmpsv) {
if (SvIOK(tmpsv)) {