comparison src/if_perl.xs @ 24705:5fbb271b35e0 v8.2.2891

patch 8.2.2891: cannot build with Perl 5.34 Commit: https://github.com/vim/vim/commit/543467136f001708f4c63376ac5d18adde82db30 Author: ichizok <gclient.gaap@gmail.com> Date: Thu May 27 18:05:14 2021 +0200 patch 8.2.2891: cannot build with Perl 5.34 Problem: Cannot build with Perl 5.34. Solution: Add Perl_SvTRUE_common(). (Ozaki Kiichi, closes https://github.com/vim/vim/issues/8266, closes #8250)
author Bram Moolenaar <Bram@vim.org>
date Thu, 27 May 2021 18:15:04 +0200
parents 5608a4144188
children c4298ed56ffa
comparison
equal deleted inserted replaced
24704:86dd80c3ee32 24705:5fbb271b35e0
698 # endif 698 # endif
699 699
700 /* perl-5.32 needs Perl_POPMARK */ 700 /* perl-5.32 needs Perl_POPMARK */
701 # if (PERL_REVISION == 5) && (PERL_VERSION >= 32) 701 # if (PERL_REVISION == 5) && (PERL_VERSION >= 32)
702 # define Perl_POPMARK S_POPMARK 702 # define Perl_POPMARK S_POPMARK
703 # endif
704
705 /* perl-5.34 needs Perl_SvTRUE_common; used in SvTRUE_nomg_NN */
706 # if (PERL_REVISION == 5) && (PERL_VERSION >= 34)
707 PERL_STATIC_INLINE bool
708 Perl_SvTRUE_common(pTHX_ SV * sv, const bool sv_2bool_is_fallback)
709 {
710 if (UNLIKELY(SvIMMORTAL_INTERP(sv)))
711 return SvIMMORTAL_TRUE(sv);
712
713 if (! SvOK(sv))
714 return FALSE;
715
716 if (SvPOK(sv))
717 return SvPVXtrue(sv);
718
719 if (SvIOK(sv))
720 return SvIVX(sv) != 0; /* casts to bool */
721
722 if (SvROK(sv) && !(SvOBJECT(SvRV(sv)) && HvAMAGIC(SvSTASH(SvRV(sv)))))
723 return TRUE;
724
725 if (sv_2bool_is_fallback)
726 return sv_2bool_nomg(sv);
727
728 return isGV_with_GP(sv);
729 }
730 # endif
703 731
704 /* perl-5.32 needs Perl_SvTRUE */ 732 /* perl-5.32 needs Perl_SvTRUE */
733 # if (PERL_REVISION == 5) && (PERL_VERSION >= 32)
705 PERL_STATIC_INLINE bool 734 PERL_STATIC_INLINE bool
706 Perl_SvTRUE(pTHX_ SV *sv) { 735 Perl_SvTRUE(pTHX_ SV *sv) {
707 if (!LIKELY(sv)) 736 if (!LIKELY(sv))
708 return FALSE; 737 return FALSE;
709 SvGETMAGIC(sv); 738 SvGETMAGIC(sv);
710 return SvTRUE_nomg_NN(sv); 739 return SvTRUE_nomg_NN(sv);
711 } 740 }
712 # endif 741 # endif
713 742