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 #8266, closes #8250)
This commit is contained in:
@ -700,12 +700,41 @@ S_POPMARK(pTHX)
|
|||||||
/* perl-5.32 needs Perl_POPMARK */
|
/* perl-5.32 needs Perl_POPMARK */
|
||||||
# if (PERL_REVISION == 5) && (PERL_VERSION >= 32)
|
# if (PERL_REVISION == 5) && (PERL_VERSION >= 32)
|
||||||
# define Perl_POPMARK S_POPMARK
|
# define Perl_POPMARK S_POPMARK
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* perl-5.34 needs Perl_SvTRUE_common; used in SvTRUE_nomg_NN */
|
||||||
|
# if (PERL_REVISION == 5) && (PERL_VERSION >= 34)
|
||||||
|
PERL_STATIC_INLINE bool
|
||||||
|
Perl_SvTRUE_common(pTHX_ SV * sv, const bool sv_2bool_is_fallback)
|
||||||
|
{
|
||||||
|
if (UNLIKELY(SvIMMORTAL_INTERP(sv)))
|
||||||
|
return SvIMMORTAL_TRUE(sv);
|
||||||
|
|
||||||
|
if (! SvOK(sv))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (SvPOK(sv))
|
||||||
|
return SvPVXtrue(sv);
|
||||||
|
|
||||||
|
if (SvIOK(sv))
|
||||||
|
return SvIVX(sv) != 0; /* casts to bool */
|
||||||
|
|
||||||
|
if (SvROK(sv) && !(SvOBJECT(SvRV(sv)) && HvAMAGIC(SvSTASH(SvRV(sv)))))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (sv_2bool_is_fallback)
|
||||||
|
return sv_2bool_nomg(sv);
|
||||||
|
|
||||||
|
return isGV_with_GP(sv);
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
/* perl-5.32 needs Perl_SvTRUE */
|
/* perl-5.32 needs Perl_SvTRUE */
|
||||||
|
# if (PERL_REVISION == 5) && (PERL_VERSION >= 32)
|
||||||
PERL_STATIC_INLINE bool
|
PERL_STATIC_INLINE bool
|
||||||
Perl_SvTRUE(pTHX_ SV *sv) {
|
Perl_SvTRUE(pTHX_ SV *sv) {
|
||||||
if (!LIKELY(sv))
|
if (!LIKELY(sv))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
SvGETMAGIC(sv);
|
SvGETMAGIC(sv);
|
||||||
return SvTRUE_nomg_NN(sv);
|
return SvTRUE_nomg_NN(sv);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2891,
|
||||||
/**/
|
/**/
|
||||||
2890,
|
2890,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user