Mercurial > vim
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 |