STATIC int su_uplevel_restore_free(pTHX_ SV *sv, MAGIC *mg) {
su_uplevel_storage_delete((su_uplevel_ud *) mg->mg_ptr);
STATIC int su_uplevel_restore_free(pTHX_ SV *sv, MAGIC *mg) {
su_uplevel_storage_delete((su_uplevel_ud *) mg->mg_ptr);
if (CxHASARGS(cx) && cx->blk_sub.argarray) {
/* The call to pp_entersub() has saved the current @_ (in XS terms,
* GvAV(PL_defgv)) in the savearray member, and has created a new argarray
if (CxHASARGS(cx) && cx->blk_sub.argarray) {
/* The call to pp_entersub() has saved the current @_ (in XS terms,
* GvAV(PL_defgv)) in the savearray member, and has created a new argarray
Copy(AvARRAY(cx->blk_sub.argarray), AvARRAY(av), AvFILLp(av) + 1, SV *);
cxstack[cxix].blk_sub.argarray = av;
} else {
Copy(AvARRAY(cx->blk_sub.argarray), AvARRAY(av), AvFILLp(av) + 1, SV *);
cxstack[cxix].blk_sub.argarray = av;
} else {
/* --- Interpreter setup/teardown ------------------------------------------ */
STATIC void su_teardown(pTHX_ void *param) {
/* --- Interpreter setup/teardown ------------------------------------------ */
STATIC void su_teardown(pTHX_ void *param) {