This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
RT #76248: double-freed SV with nested sig-handler
[perl5.git] / perlvars.h
index 3639bd6..1a44e22 100644 (file)
@@ -12,7 +12,7 @@
 =head1 Global Variables
 */
 
-/* Don't forget to re-run embed.pl to propagate changes! */
+/* Don't forget to re-run regen/embed.pl to propagate changes! */
 
 /* This file describes the "global" variables used by perl
  * This used to be in perl.h directly but we want to abstract out into
@@ -102,10 +102,6 @@ PERLVARA(Gsig_ignoring, SIG_SIZE, int)     /* which signals we are ignoring */
 PERLVARA(Gsig_defaulting, SIG_SIZE, int)
 #endif
 
-#ifndef PERL_IMPLICIT_CONTEXT
-PERLVAR(Gsig_sv, SV*)
-#endif
-
 /* XXX signals are process-wide anyway, so we
  * ignore the implications of this for threading */
 #ifndef HAS_SIGACTION
@@ -120,6 +116,7 @@ PERLVAR(Gwatch_pvx, char*)
 PERLVAR(Gppaddr, Perl_ppaddr_t*) /* or opcode.h */
 PERLVAR(Gcheck,  Perl_check_t *) /* or opcode.h */
 PERLVARA(Gfold_locale, 256, unsigned char) /* or perl.h */
+PERLVARA(Gcharclass, 256, U32)
 #endif
 
 #ifdef PERL_NEED_APPCTX
@@ -157,8 +154,8 @@ PERLVARI(Gveto_cleanup,     int, FALSE)     /* exit without cleanup */
 /* dummy variables that hold pointers to both runops functions, thus forcing
  * them *both* to get linked in (useful for Peek.xs, debugging etc) */
 
-PERLVARI(Grunops_std,  runops_proc_t,  MEMBER_TO_FPTR(Perl_runops_standard))
-PERLVARI(Grunops_dbg,  runops_proc_t,  MEMBER_TO_FPTR(Perl_runops_debug))
+PERLVARI(Grunops_std,  runops_proc_t,  Perl_runops_standard)
+PERLVARI(Grunops_dbg,  runops_proc_t,  Perl_runops_debug)
 
 
 /* These are baked at compile time into any shared perl library.
@@ -207,19 +204,12 @@ C<KEYWORD_PLUGIN_DECLINE>, and the normal parser process will continue.
 
 If the function wants to handle the keyword, it first must
 parse anything following the keyword that is part of the syntax
-introduced by the keyword.  The lexer interface is poorly documented.
-Broadly speaking, parsing needs to look at the buffer that extends
-from C<PL_parser-E<gt>bufptr> to C<PL_parser-E<gt>bufend>, and
-C<PL_parser-E<gt>bufptr> must be advanced across whatever text is
-consumed by the parsing process.  The buffer end is not necessarily the
-real end of the input text, but refilling the buffer is too complicated
-to discuss here.  See L<Devel::Declare> for some parsing experience,
-and hope for more core support in a future version of Perl.
+introduced by the keyword.  See L</Lexer interface> for details.
 
 When a keyword is being handled, the plugin function must build
 a tree of C<OP> structures, representing the code that was parsed.
 The root of the tree must be stored in C<*op_ptr>.  The function then
-returns a contant indicating the syntactic role of the construct that
+returns a constant indicating the syntactic role of the construct that
 it has parsed: C<KEYWORD_PLUGIN_STMT> if it is a complete statement, or
 C<KEYWORD_PLUGIN_EXPR> if it is an expression.  Note that a statement
 construct cannot be used inside an expression (except via C<do BLOCK>
@@ -247,4 +237,4 @@ the Perl core) will normally return C<KEYWORD_PLUGIN_DECLINE>.
 =cut
 */
 
-PERLVARI(Gkeyword_plugin, Perl_keyword_plugin_t, MEMBER_TO_FPTR(Perl_keyword_plugin_standard))
+PERLVARI(Gkeyword_plugin, Perl_keyword_plugin_t, Perl_keyword_plugin_standard)