/* This relies on PADNAMELIST and PAD being typedefed to AV. If that
ever changes, this code will need an update. */
st->total_size += sizeof(PADLIST);
- sv_size(aTHX_ st, (SV*)PadlistNAMES(padl), recurse);
+ sv_size(aTHX_ st, (SV*)PadlistNAMES(padl), TOTAL_SIZE_RECURSION);
i = PadlistMAX(padl) + 1;
st->total_size += sizeof(PAD*) * i;
while (--i)
sv_size(aTHX_ st, (SV *)CvSTASH(thing), SOME_RECURSION);
sv_size(aTHX_ st, (SV *)SvSTASH(thing), SOME_RECURSION);
sv_size(aTHX_ st, (SV *)CvGV(thing), SOME_RECURSION);
- padlist_size(aTHX_ st, CvPADLIST(thing), SOME_RECURSION);
sv_size(aTHX_ st, (SV *)CvOUTSIDE(thing), recurse);
if (CvISXSUB(thing)) {
sv_size(aTHX_ st, cv_const_sv((CV *)thing), recurse);
- } else if (CvROOT(thing)) {
- op_size(aTHX_ CvSTART(thing), st);
- op_size(aTHX_ CvROOT(thing), st);
+ } else {
+ padlist_size(aTHX_ st, CvPADLIST(thing), SOME_RECURSION);
+ if (CvROOT(thing)) {
+ op_size(aTHX_ CvSTART(thing), st);
+ op_size(aTHX_ CvROOT(thing), st);
+ }
}
goto freescalar;