The index of the last pad entry.
=for apidoc Amx|char *|PADNAME_PV|PADNAME pn
-The name stored in the pad name struct.
+The name stored in the pad name struct. This returns NULL for a target or
+GV slot.
=for apidoc Amx|STRLEN|PADNAME_LEN|PADNAME pn
The length of the name.
=for apidoc Amx|bool|PADNAME_UTF8|PADNAME pn
Whether PADNAME_PV is in UTF8.
+=for apidoc Amx|SV *|PADNAME_SV|PADNAME pn
+Returns the pad name as an SV. This is currently just C<pn>. It will
+begin returning a new mortal SV if pad names ever stop being SVs.
+
=for apidoc m|bool|PADNAME_isOUR|PADNAME pn
Whether this is an "our" variable.
#define PAD_ARRAY(pad) AvARRAY(pad)
#define PAD_MAX(pad) AvFILLp(pad)
-#define PADNAME_PV(pn) SvPV_nolen(pn)
+#define PADNAME_PV(pn) (SvPOKp(pn) ? SvPVX(pn) : NULL)
#define PADNAME_LEN(pn) SvCUR(pn)
#define PADNAME_UTF8(pn) !!SvUTF8(pn)
+#define PADNAME_SV(pn) pn
#define PADNAME_isOUR(pn) !!SvPAD_OUR(pn)
-#define PADNAME_OURSTASH SvOURSTASH(pn)
-#define PADNAME_OUTER !!SvFAKE(pn)
+#define PADNAME_OURSTASH(pn) SvOURSTASH(pn)
+#define PADNAME_OUTER(pn) !!SvFAKE(pn)
#define PADNAME_TYPE(pn) (SvPAD_TYPED(pn) ? SvSTASH(pn) : NULL)