This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Restrict some inversion list functions
authorKarl Williamson <public@khwilliamson.com>
Sun, 5 Jun 2011 19:16:30 +0000 (13:16 -0600)
committerKarl Williamson <public@khwilliamson.com>
Sun, 3 Jul 2011 20:05:48 +0000 (14:05 -0600)
These functions are internal only with names beginning with underscore.
I hadn't realized that their definitions could be restricted.

embed.fnc
embed.h
global.sym
proto.h

index 16a1c9b..e1a5010 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1300,10 +1300,6 @@ Apd      |void   |sv_vsetpvfn    |NN SV *const sv|NN const char *const pat|const STRLEN pa
 ApR    |NV     |str_to_version |NN SV *sv
 Ap     |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
 Ap     |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
-EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
-EXMpR  |SV*    |_new_invlist   |IV initial_size
-EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
-EXMp   |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
 #ifdef PERL_IN_REGCOMP_C
 EiMR   |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
 EsMR   |SV*    |add_range_to_invlist   |NULLOK SV* invlist|const UV start|const UV end
@@ -1326,6 +1322,10 @@ EpM      |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
 EpM    |void   |_invlist_union |NN SV* const a|NN SV* const b|NN SV** output
 EpM    |void   |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
 EpM    |void   |_invlist_invert|NN SV* const invlist
+EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
+EXMpR  |SV*    |_new_invlist   |IV initial_size
+EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
+EXMp   |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
 #endif
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
diff --git a/embed.h b/embed.h
index e20a86c..3e19420 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define do_spawn_nowait(a)     Perl_do_spawn_nowait(aTHX_ a)
 #endif
 #if defined(PERL_CORE) || defined(PERL_EXT)
-#define _append_range_to_invlist(a,b,c)        Perl__append_range_to_invlist(aTHX_ a,b,c)
-#define _new_invlist(a)                Perl__new_invlist(aTHX_ a)
-#define _swash_inversion_hash(a)       Perl__swash_inversion_hash(aTHX_ a)
-#define _swash_to_invlist(a)   Perl__swash_to_invlist(aTHX_ a)
 #define av_reify(a)            Perl_av_reify(aTHX_ a)
 #define is_utf8_X_L(a)         Perl_is_utf8_X_L(aTHX_ a)
 #define is_utf8_X_LV(a)                Perl_is_utf8_X_LV(aTHX_ a)
 #define study_chunk(a,b,c,d,e,f,g,h,i,j,k)     S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
 #  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
+#define _append_range_to_invlist(a,b,c)        Perl__append_range_to_invlist(aTHX_ a,b,c)
 #define _invlist_intersection(a,b,c)   Perl__invlist_intersection(aTHX_ a,b,c)
 #define _invlist_invert(a)     Perl__invlist_invert(aTHX_ a)
 #define _invlist_subtract(a,b,c)       Perl__invlist_subtract(aTHX_ a,b,c)
 #define _invlist_union(a,b,c)  Perl__invlist_union(aTHX_ a,b,c)
+#define _new_invlist(a)                Perl__new_invlist(aTHX_ a)
+#define _swash_inversion_hash(a)       Perl__swash_inversion_hash(aTHX_ a)
+#define _swash_to_invlist(a)   Perl__swash_to_invlist(aTHX_ a)
 #  endif
 #  if defined(PERL_IN_REGEXEC_C)
 #define find_byclass(a,b,c,d,e)        S_find_byclass(aTHX_ a,b,c,d,e)
index 30614c4..d0f92fa 100644 (file)
 
 Perl_Gv_AMupdate
 Perl_PerlIO_context_layers
-Perl__append_range_to_invlist
-Perl__new_invlist
-Perl__swash_inversion_hash
-Perl__swash_to_invlist
 Perl__to_uni_fold_flags
 Perl__to_utf8_fold_flags
 Perl_amagic_call
@@ -833,6 +829,10 @@ Perl_warn_nocontext
 Perl_warner_nocontext
 perl_alloc_using
 perl_clone_using
+Perl__append_range_to_invlist
+Perl__new_invlist
+Perl__swash_inversion_hash
+Perl__swash_to_invlist
 Perl_sv_setsv_cow
 Perl_Slab_Alloc
 Perl_Slab_Free
diff --git a/proto.h b/proto.h
index 0541d23..7b99648 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -23,26 +23,6 @@ PERL_CALLCONV int    Perl_Gv_AMupdate(pTHX_ HV* stash, bool destructing)
        assert(stash)
 
 PERL_CALLCONV const char *     Perl_PerlIO_context_layers(pTHX_ const char *mode);
-PERL_CALLCONV void     Perl__append_range_to_invlist(pTHX_ SV* const invlist, const UV start, const UV end)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST      \
-       assert(invlist)
-
-PERL_CALLCONV SV*      Perl__new_invlist(pTHX_ IV initial_size)
-                       __attribute__warn_unused_result__;
-
-PERL_CALLCONV HV*      Perl__swash_inversion_hash(pTHX_ SV* const swash)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT__SWASH_INVERSION_HASH \
-       assert(swash)
-
-PERL_CALLCONV SV*      Perl__swash_to_invlist(pTHX_ SV* const swash)
-                       __attribute__warn_unused_result__
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT__SWASH_TO_INVLIST     \
-       assert(swash)
-
 PERL_CALLCONV UV       Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags)
                        __attribute__nonnull__(pTHX_2)
                        __attribute__nonnull__(pTHX_3);
@@ -6276,6 +6256,11 @@ STATIC I32       S_study_chunk(pTHX_ struct RExC_state_t *pRExC_state, regnode **scanp
 
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV void     Perl__append_range_to_invlist(pTHX_ SV* const invlist, const UV start, const UV end)
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST      \
+       assert(invlist)
+
 PERL_CALLCONV void     Perl__invlist_intersection(pTHX_ SV* const a, SV* const b, SV** i)
                        __attribute__nonnull__(pTHX_1)
                        __attribute__nonnull__(pTHX_2)
@@ -6302,6 +6287,21 @@ PERL_CALLCONV void       Perl__invlist_union(pTHX_ SV* const a, SV* const b, SV** outp
 #define PERL_ARGS_ASSERT__INVLIST_UNION        \
        assert(a); assert(b); assert(output)
 
+PERL_CALLCONV SV*      Perl__new_invlist(pTHX_ IV initial_size)
+                       __attribute__warn_unused_result__;
+
+PERL_CALLCONV HV*      Perl__swash_inversion_hash(pTHX_ SV* const swash)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__SWASH_INVERSION_HASH \
+       assert(swash)
+
+PERL_CALLCONV SV*      Perl__swash_to_invlist(pTHX_ SV* const swash)
+                       __attribute__warn_unused_result__
+                       __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT__SWASH_TO_INVLIST     \
+       assert(swash)
+
 #endif
 #if defined(PERL_IN_REGEXEC_C)
 STATIC char*   S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, const char *strend, regmatch_info *reginfo)