This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Move regcurly to regcomp.c (from inline.h)
authorKarl Williamson <khw@cpan.org>
Wed, 18 Nov 2020 02:15:06 +0000 (19:15 -0700)
committerKarl Williamson <khw@cpan.org>
Wed, 18 Nov 2020 12:11:16 +0000 (05:11 -0700)
This function is called only at compile time; experience has shown that
compile-time operations are not time-critical.  And future commits will
lengthen it, making it not practically inlinable anyway.

embed.fnc
embed.h
inline.h
proto.h
regcomp.c

index 48f2b8b..2d2c703 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -2343,7 +2343,7 @@ EXTp      |UV     |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int
 EpX    |SV*    |invlist_clone  |NN SV* const invlist|NULLOK SV* newlist
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EiRT   |bool   |regcurly       |NN const char *s
+EXpRT  |bool   |regcurly       |NN const char *s
 #endif
 #if defined(PERL_IN_REGEXEC_C)
 ERS    |bool   |isFOO_utf8_lc  |const U8 classnum|NN const U8* character|NN const U8* e
diff --git a/embed.h b/embed.h
index 2cc6934..6348d64 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define invlist_clone(a,b)     Perl_invlist_clone(aTHX_ a,b)
 #  endif
 #  if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-#define regcurly               S_regcurly
+#define regcurly               Perl_regcurly
 #  endif
 #  if defined(PERL_IN_REGEXEC_C)
 #define advance_one_LB(a,b,c)  S_advance_one_LB(aTHX_ a,b,c)
index 96f706e..5ada155 100644 (file)
--- a/inline.h
+++ b/inline.h
@@ -1994,36 +1994,6 @@ S_lossless_NV_to_IV(const NV nv, IV *ivp)
 
 #endif
 
-/* ------------------ regcomp.c, toke.c ------------ */
-
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-
-/*
- - regcurly - a little FSA that accepts {\d+,?\d*}
-    Pulled from reg.c.
- */
-PERL_STATIC_INLINE bool
-S_regcurly(const char *s)
-{
-    PERL_ARGS_ASSERT_REGCURLY;
-
-    if (*s++ != '{')
-       return FALSE;
-    if (!isDIGIT(*s))
-       return FALSE;
-    while (isDIGIT(*s))
-       s++;
-    if (*s == ',') {
-       s++;
-       while (isDIGIT(*s))
-           s++;
-    }
-
-    return *s == '}';
-}
-
-#endif
-
 /* ------------------ pp.c, regcomp.c, toke.c, universal.c ------------ */
 
 #if defined(PERL_IN_PP_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
diff --git a/proto.h b/proto.h
index 6361875..5e1be02 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -6127,12 +6127,10 @@ PERL_CALLCONV SV*       Perl_invlist_clone(pTHX_ SV* const invlist, SV* newlist);
        assert(invlist)
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool        S_regcurly(const char *s)
+PERL_CALLCONV bool     Perl_regcurly(const char *s)
                        __attribute__warn_unused_result__;
 #define PERL_ARGS_ASSERT_REGCURLY      \
        assert(s)
-#endif
 
 #endif
 #if defined(PERL_IN_REGEXEC_C)
index 308d5de..853501c 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -12550,6 +12550,30 @@ S_regbranch(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, I32 first, U32 depth)
 }
 
 /*
+ - regcurly - a little FSA that accepts {\d+,?\d*}
+    Pulled from reg.c.
+ */
+bool
+Perl_regcurly(const char *s)
+{
+    PERL_ARGS_ASSERT_REGCURLY;
+
+    if (*s++ != '{')
+       return FALSE;
+    if (!isDIGIT(*s))
+       return FALSE;
+    while (isDIGIT(*s))
+       s++;
+    if (*s == ',') {
+       s++;
+       while (isDIGIT(*s))
+           s++;
+    }
+
+    return *s == '}';
+}
+
+/*
  - regpiece - something followed by possible quantifier * + ? {n,m}
  *
  * Note that the branching code sequences used for ? and the general cases