Within Perl_newSVhek, inline most of newSVpvn_share(), because
[p5sagit/p5-mst-13.2.git] / locale.c
index 86b11c8..f9b2c93 100644 (file)
--- a/locale.c
+++ b/locale.c
@@ -88,7 +88,7 @@ Perl_set_numeric_radix(pTHX)
     if (lc && lc->decimal_point) {
        if (lc->decimal_point[0] == '.' && lc->decimal_point[1] == 0) {
            SvREFCNT_dec(PL_numeric_radix_sv);
-           PL_numeric_radix_sv = Nullsv;
+           PL_numeric_radix_sv = NULL;
        }
        else {
            if (PL_numeric_radix_sv)
@@ -98,7 +98,7 @@ Perl_set_numeric_radix(pTHX)
        }
     }
     else
-       PL_numeric_radix_sv = Nullsv;
+       PL_numeric_radix_sv = NULL;
 # endif /* HAS_LOCALECONV */
 #endif /* USE_LOCALE_NUMERIC */
 }
@@ -185,6 +185,7 @@ Perl_new_ctype(pTHX_ const char *newctype)
 
 #endif /* USE_LOCALE_CTYPE */
     PERL_UNUSED_ARG(newctype);
+    PERL_UNUSED_CONTEXT;
 }
 
 /*
@@ -322,18 +323,21 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
 
     if (!setlocale_failure) {
 #ifdef USE_LOCALE_CTYPE
+       Safefree(curctype);
        if (! (curctype = setlocale(LC_CTYPE, "")))
            setlocale_failure = TRUE;
        else
            curctype = savepv(curctype);
 #endif /* USE_LOCALE_CTYPE */
 #ifdef USE_LOCALE_COLLATE
+       Safefree(curcoll);
        if (! (curcoll = setlocale(LC_COLLATE, "")))
            setlocale_failure = TRUE;
        else
            curcoll = savepv(curcoll);
 #endif /* USE_LOCALE_COLLATE */
 #ifdef USE_LOCALE_NUMERIC
+       Safefree(curnum);
        if (! (curnum = setlocale(LC_NUMERIC, "")))
            setlocale_failure = TRUE;
        else