diff options
author | Hugo van der Sanden <hv@crypt.org> | 2019-07-22 17:08:45 +0100 |
---|---|---|
committer | Hugo van der Sanden <hv@crypt.org> | 2019-07-31 15:02:33 +0100 |
commit | 39b0ad1783fa21aad82d068e668313a54729d740 (patch) | |
tree | 1b25527a14fa86d5a8d4ae720eb6566dd09d5958 /sv.c | |
parent | a06a4d45d476265b6d5143171126fe6f33ef2c44 (diff) | |
download | perl-39b0ad1783fa21aad82d068e668313a54729d740.tar.gz |
[perl #134172] Avoid multiple checks of IN_LC(LC_NUMERIC)
This adds new API macros STORE_LC_NUMERIC_SET_TO_NEEDED_IN and
WITH_LC_NUMERIC_SET_TO_NEEDED_IN that accept a precalculated value
for the hints checks of IN_LC(LC_NUMERIC).
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -11784,7 +11784,7 @@ S_format_hexfp(pTHX_ char * const buf, const STRLEN bufsize, const char c, #else if (in_lc_numeric) { STRLEN n; - WITH_LC_NUMERIC_SET_TO_NEEDED({ + WITH_LC_NUMERIC_SET_TO_NEEDED_IN(TRUE, { const char* r = SvPV(PL_numeric_radix_sv, n); Copy(r, p, n, char); }); @@ -12978,7 +12978,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p } if (in_lc_numeric) { - WITH_LC_NUMERIC_SET_TO_NEEDED({ + WITH_LC_NUMERIC_SET_TO_NEEDED_IN(TRUE, { /* this can't wrap unless PL_numeric_radix_sv is a string * consuming virtually all the 32-bit or 64-bit address * space @@ -13071,7 +13071,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p && !fill && intsize != 'q' ) { - WITH_LC_NUMERIC_SET_TO_NEEDED( + WITH_LC_NUMERIC_SET_TO_NEEDED_IN(in_lc_numeric, SNPRINTF_G(fv, ebuf, sizeof(ebuf), precis) ); elen = strlen(ebuf); @@ -13174,7 +13174,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p const char* qfmt = quadmath_format_single(ptr); if (!qfmt) Perl_croak_nocontext("panic: quadmath invalid format \"%s\"", ptr); - WITH_LC_NUMERIC_SET_TO_NEEDED( + WITH_LC_NUMERIC_SET_TO_NEEDED_IN(in_lc_numeric, elen = quadmath_snprintf(PL_efloatbuf, PL_efloatsize, qfmt, nv); ); @@ -13187,13 +13187,13 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p Safefree(qfmt); } #elif defined(HAS_LONG_DOUBLE) - WITH_LC_NUMERIC_SET_TO_NEEDED( + WITH_LC_NUMERIC_SET_TO_NEEDED_IN(in_lc_numeric, elen = ((intsize == 'q') ? my_snprintf(PL_efloatbuf, PL_efloatsize, ptr, fv) : my_snprintf(PL_efloatbuf, PL_efloatsize, ptr, (double)fv)) ); #else - WITH_LC_NUMERIC_SET_TO_NEEDED( + WITH_LC_NUMERIC_SET_TO_NEEDED_IN(in_lc_numeric, elen = my_snprintf(PL_efloatbuf, PL_efloatsize, ptr, fv) ); #endif |