Commit 493a4d05af for perl

commit 493a4d05afa477d72ecced41d8b456e11be11537
Author: Tony Cook <tony@develop-help.com>
Date:   Thu Oct 29 12:57:13 2026 +1100

    sv_isa_sv: other minor code cleanups

    These seem to optimized into non-issues, but they're kind of dumb:

     - cache access to SvRV(sv) like pp_blessed does
     - don't dSP until we're past the isa CV check
     - don't PUTBACK (sp = PL_stack_sp) when we only just did
       dSP(SV **sp = PL_stacksp)

diff --git a/universal.c b/universal.c
index afd27b7876..9ea3f024b1 100644
--- a/universal.c
+++ b/universal.c
@@ -220,22 +220,21 @@ Perl_sv_isa_sv(pTHX_ SV *sv, SV *namesv)

     GV *isagv;

-    if(!SvROK(sv) || !SvOBJECT(SvRV(sv)))
+    SV *rv;
+    if(!SvROK(sv) || !SvOBJECT((rv = SvRV(sv))))
         return FALSE;

-    isagv = gv_fetchmeth_pvn(SvSTASH(SvRV(sv)), "isa", 3, -1, 0);
+    isagv = gv_fetchmeth_pvn(SvSTASH(rv), "isa", 3, -1, 0);
     if (LIKELY(isagv)) {
-        dSP;
         CV *isacv = isGV(isagv) ? GvCV(isagv) : (CV *)isagv;

-        if (CvISXSUB(isacv) && CvXSUB(isacv) == XS_UNIVERSAL_isa)
+        if (LIKELY(CvISXSUB(isacv) && CvXSUB(isacv) == XS_UNIVERSAL_isa))
             goto default_isa;
-
+
+        dSP;
         SV *retsv;
         bool ret;

-        PUTBACK;
-
         ENTER;
         SAVETMPS;