diff options
Diffstat (limited to 'pp.h')
-rw-r--r-- | pp.h | 27 |
1 files changed, 14 insertions, 13 deletions
@@ -471,19 +471,20 @@ Does not use C<TARG>. See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>. #define tryAMAGICunDEREF_var(meth_enum) \ tryAMAGICunW_var(meth_enum,setAGAIN,0,(void)0) -#define tryAMAGICftest(chr) \ - STMT_START { \ - if (SvAMAGIC(TOPs)) { \ - SV * const tmpsv = amagic_call(TOPs, \ - newSVpvn_flags(&chr, 1, SVs_TEMP), \ - ftest_amg, 0); \ - \ - if (tmpsv) { \ - SPAGAIN; \ - SETs(tmpsv); \ - RETURN; \ - } \ - } \ +#define tryAMAGICftest(chr) \ + STMT_START { \ + if (SvAMAGIC(TOPs)) { \ + const char tmpchr = (chr); \ + SV * const tmpsv = amagic_call(TOPs, \ + newSVpvn_flags(&tmpchr, 1, SVs_TEMP), \ + ftest_amg, 0); \ + \ + if (tmpsv) { \ + SPAGAIN; \ + SETs(tmpsv); \ + RETURN; \ + } \ + } \ } STMT_END |