This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
embed.fnc Change Some functions only used in macros
authorKarl Williamson <khw@cpan.org>
Sat, 15 Jul 2017 18:03:01 +0000 (12:03 -0600)
committerKarl Williamson <khw@cpan.org>
Sat, 15 Jul 2017 21:10:05 +0000 (15:10 -0600)
The X flag is used for this situation where a function is public only
because it is called from a public macro.

embed.fnc
embed.h
perl.h

index be9e59d..62d8685 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1259,10 +1259,10 @@ EXnpo   |char*  |setlocale      |int category|NULLOK const char* locale
 ApOM   |int    |init_i18nl10n  |int printwarn
 ApOM   |int    |init_i18nl14n  |int printwarn
 ApM    |char*  |my_strerror    |const int errnum
-EXpMn  |void   |_warn_problematic_locale
-ApOM   |void   |new_numeric    |NULLOK const char* newcoll
-Ap     |void   |set_numeric_local
-Ap     |void   |set_numeric_standard
+Xpn    |void   |_warn_problematic_locale
+p      |void   |new_numeric    |NULLOK const char* newcoll
+Xp     |void   |set_numeric_local
+Xp     |void   |set_numeric_standard
 ApM    |bool   |_is_in_locale_category|const bool compiling|const int category
 Apd    |void   |sync_locale
 ApdO   |void   |require_pv     |NN const char* pv
diff --git a/embed.h b/embed.h
index 461d910..9767841 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define newWHILEOP(a,b,c,d,e,f,g)      Perl_newWHILEOP(aTHX_ a,b,c,d,e,f,g)
 #define newXS(a,b,c)           Perl_newXS(aTHX_ a,b,c)
 #define newXS_flags(a,b,c,d,e) Perl_newXS_flags(aTHX_ a,b,c,d,e)
-#define new_numeric(a)         Perl_new_numeric(aTHX_ a)
 #define new_stackinfo(a,b)     Perl_new_stackinfo(aTHX_ a,b)
 #define new_version(a)         Perl_new_version(aTHX_ a)
 #define nothreadhook()         Perl_nothreadhook(aTHX)
 #define scan_vstring(a,b,c)    Perl_scan_vstring(aTHX_ a,b,c)
 #define seed()                 Perl_seed(aTHX)
 #define set_context            Perl_set_context
-#define set_numeric_local()    Perl_set_numeric_local(aTHX)
-#define set_numeric_standard() Perl_set_numeric_standard(aTHX)
 #define setdefout(a)           Perl_setdefout(aTHX_ a)
 #define share_hek(a,b,c)       Perl_share_hek(aTHX_ a,b,c)
 #define sortsv(a,b,c)          Perl_sortsv(aTHX_ a,b,c)
 #endif
 #if defined(PERL_CORE) || defined(PERL_EXT)
 #define _byte_dump_string(a,b,c)       Perl__byte_dump_string(aTHX_ a,b,c)
-#define _warn_problematic_locale       Perl__warn_problematic_locale
 #define append_utf8_from_native_byte   S_append_utf8_from_native_byte
 #define av_reify(a)            Perl_av_reify(aTHX_ a)
 #define current_re_engine()    Perl_current_re_engine(aTHX)
 #ifdef PERL_CORE
 #define Slab_Alloc(a)          Perl_Slab_Alloc(aTHX_ a)
 #define Slab_Free(a)           Perl_Slab_Free(aTHX_ a)
+#define _warn_problematic_locale       Perl__warn_problematic_locale
 #define abort_execution(a,b)   Perl_abort_execution(aTHX_ a,b)
 #define alloc_LOGOP(a,b,c)     Perl_alloc_LOGOP(aTHX_ a,b,c)
 #define allocmy(a,b,c)         Perl_allocmy(aTHX_ a,b,c)
 #define newSVavdefelem(a,b,c)  Perl_newSVavdefelem(aTHX_ a,b,c)
 #define newXS_deffile(a,b)     Perl_newXS_deffile(aTHX_ a,b)
 #define newXS_len_flags(a,b,c,d,e,f,g) Perl_newXS_len_flags(aTHX_ a,b,c,d,e,f,g)
+#define new_numeric(a)         Perl_new_numeric(aTHX_ a)
 #define nextargv(a,b)          Perl_nextargv(aTHX_ a,b)
 #define noperl_die             Perl_noperl_die
 #define notify_parser_that_changed_to_utf8()   Perl_notify_parser_that_changed_to_utf8(aTHX)
 #define scalar(a)              Perl_scalar(aTHX_ a)
 #define scalarvoid(a)          Perl_scalarvoid(aTHX_ a)
 #define set_caret_X()          Perl_set_caret_X(aTHX)
+#define set_numeric_local()    Perl_set_numeric_local(aTHX)
+#define set_numeric_standard() Perl_set_numeric_standard(aTHX)
 #define sub_crush_depth(a)     Perl_sub_crush_depth(aTHX_ a)
 #define sv_2num(a)             Perl_sv_2num(aTHX_ a)
 #define sv_clean_all()         Perl_sv_clean_all(aTHX)
 #  define perl_get_sv(a,b)             get_sv(a,b)
 #  define perl_init_i18nl10n(a)                init_i18nl10n(a)
 #  define perl_init_i18nl14n(a)                init_i18nl14n(a)
-#  define perl_new_numeric(a)          new_numeric(a)
 #  define perl_require_pv(a)           require_pv(a)
 
 /* varargs functions can't be handled with CPP macros. :-(
diff --git a/perl.h b/perl.h
index a2557ec..07fda9c 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -5952,7 +5952,7 @@ typedef struct am_table_short AMTS;
 #           define _CHECK_AND_WARN_PROBLEMATIC_LOCALE                         \
                 STMT_START {                                                  \
                     if (UNLIKELY(PL_warn_locale)) {                           \
-                        _warn_problematic_locale();                           \
+                        Perl__warn_problematic_locale();                      \
                     }                                                         \
                 }  STMT_END
 #       else
@@ -6136,7 +6136,7 @@ expression, but with an empty argument list, like this:
 #define STORE_LC_NUMERIC_SET_TO_NEEDED()                                    \
     if (IN_LC(LC_NUMERIC)) {                                                \
         if (_NOT_IN_NUMERIC_UNDERLYING) {                                   \
-            set_numeric_local();                                            \
+            Perl_set_numeric_local(aTHX);                                   \
             _restore_LC_NUMERIC_function = &Perl_set_numeric_standard;      \
         }                                                                   \
     }                                                                       \
@@ -6155,31 +6155,32 @@ expression, but with an empty argument list, like this:
 /* The next two macros set unconditionally.  These should be rarely used, and
  * only after being sure that this is what is needed */
 #define SET_NUMERIC_STANDARD()                                              \
-       STMT_START { if (_NOT_IN_NUMERIC_STANDARD) set_numeric_standard();  \
-                                                                 } STMT_END
+       STMT_START { if (_NOT_IN_NUMERIC_STANDARD)                          \
+                                          Perl_set_numeric_standard(aTHX);  \
+                   } STMT_END
 
 #define SET_NUMERIC_UNDERLYING()                                            \
        STMT_START { if (_NOT_IN_NUMERIC_UNDERLYING)                        \
-                                            set_numeric_local(); } STMT_END
+                                Perl_set_numeric_local(aTHX); } STMT_END
 
 /* The rest of these LC_NUMERIC macros toggle to one or the other state, with
  * the RESTORE_foo ones called to switch back, but only if need be */
 #define STORE_LC_NUMERIC_UNDERLYING_SET_STANDARD()                          \
        bool _was_local = _NOT_IN_NUMERIC_STANDARD;                         \
-       if (_was_local) set_numeric_standard();
+       if (_was_local) Perl_set_numeric_standard(aTHX);
 
 /* Doesn't change to underlying locale unless within the scope of some form of
  * 'use locale'.  This is the usual desired behavior. */
 #define STORE_LC_NUMERIC_STANDARD_SET_UNDERLYING()                          \
        bool _was_standard = _NOT_IN_NUMERIC_UNDERLYING                     \
                             && IN_LC(LC_NUMERIC);                           \
-       if (_was_standard) set_numeric_local();
+       if (_was_standard) Perl_set_numeric_local(aTHX);
 
 /* Rarely, we want to change to the underlying locale even outside of 'use
  * locale'.  This is principally in the POSIX:: functions */
 #define STORE_LC_NUMERIC_FORCE_TO_UNDERLYING()                              \
     if (_NOT_IN_NUMERIC_UNDERLYING) {                                       \
-        set_numeric_local();                                                \
+        Perl_set_numeric_local(aTHX);                                       \
         _restore_LC_NUMERIC_function = &Perl_set_numeric_standard;          \
     }
 
@@ -6199,7 +6200,7 @@ expression, but with an empty argument list, like this:
             } STMT_END
 
 #define RESTORE_LC_NUMERIC_UNDERLYING()                     \
-       if (_was_local) set_numeric_local();
+       if (_was_local) Perl_set_numeric_local(aTHX);
 
 #define RESTORE_LC_NUMERIC_STANDARD()                       \
     if (_restore_LC_NUMERIC_function) {                     \