This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Initial experiment at moving SvTRUE into a static inline macro
authorPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>
Sun, 27 Oct 2019 16:25:13 +0000 (16:25 +0000)
committerKarl Williamson <khw@cpan.org>
Sun, 1 Mar 2020 20:06:05 +0000 (13:06 -0700)
inline.h
sv.h

index e4bd680..a3df1a3 100644 (file)
--- a/inline.h
+++ b/inline.h
@@ -195,6 +195,11 @@ Perl_ReANY(const REGEXP * const re)
 
 /* ------------------------------- sv.h ------------------------------- */
 
+PERL_STATIC_INLINE bool
+Perl_SvTRUE(SV *sv) {
+    return LIKELY(sv) && SvTRUE_NN(sv);
+}
+
 PERL_STATIC_INLINE SV *
 Perl_SvREFCNT_inc(SV *sv)
 {
diff --git a/sv.h b/sv.h
index 490cab4..adf3dff 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -1839,7 +1839,7 @@ Like C<sv_catsv> but doesn't process magic.
 #define SvPVutf8x_force(sv, lp) sv_pvutf8n_force(sv, &lp)
 #define SvPVbytex_force(sv, lp) sv_pvbyten_force(sv, &lp)
 
-#define SvTRUE(sv)         (LIKELY(sv) && SvTRUE_NN(sv))
+#define SvTRUE(sv)         Perl_SvTRUE(sv)
 #define SvTRUE_nomg(sv)    (LIKELY(sv) && SvTRUE_nomg_NN(sv))
 #define SvTRUE_NN(sv)      (SvGETMAGIC(sv), SvTRUE_nomg_NN(sv))
 #define SvTRUE_nomg_NN(sv) (SvTRUE_common(sv, sv_2bool_nomg(sv)))