Fix building MAD with C++ - a MAD_PV of "" is illegal, as it will be free()d.
[p5sagit/p5-mst-13.2.git] / intrpvar.h
index 487576a..02d6515 100644 (file)
@@ -170,6 +170,20 @@ PERLVARA(Icolors,6,        char *)         /* from regcomp.c */
 PERLVARI(Ipeepp,       peep_t, MEMBER_TO_FPTR(Perl_peep))
                                        /* Pointer to peephole optimizer */
 
+/*
+=for apidoc Amn|Perl_ophook_t|PL_opfreehook
+
+When non-C<NULL>, the function pointed by this variable will be called each time an OP is freed with the corresponding OP as the argument.
+This allows extensions to free any extra attribute they have locally attached to an OP.
+It is also assured to first fire for the parent OP and then for its kids.
+
+When you replace this variable, it is considered a good practice to store the possibly previously installed hook and that you recall it inside your own.
+
+=cut
+*/
+
+PERLVARI(Iopfreehook,  Perl_ophook_t, 0) /* op_free() hook */
+
 PERLVARI(Imaxscream,   I32,    -1)
 PERLVARI(Ireginterp_cnt,I32,    0)     /* Whether "Regexp" was interpolated. */
 PERLVARI(Iwatchaddr,   char **, 0)
@@ -499,7 +513,6 @@ PERLVAR(Inumeric_name,      char *)         /* Name of current numeric locale */
 
 /* utf8 character classes */
 PERLVAR(Iutf8_alnum,   SV *)
-PERLVAR(Iutf8_alnumc,  SV *)
 PERLVAR(Iutf8_ascii,   SV *)
 PERLVAR(Iutf8_alpha,   SV *)
 PERLVAR(Iutf8_space,   SV *)
@@ -533,21 +546,12 @@ PERLVARI(Iglob_index,     int,    0)
 
 PERLVAR(Iparser,       yy_parser *)    /* current parser state */
 
-#ifdef MULTIPLICITY
-/* For binary compatibility, keep the interpreter structure the same.
-   However, we no longer use this entry.  */
-PERLVAR(Ibitcount,     char *)
-#else
-/* For binary compatibility, need to retain an extern char *PL_bitcount.
-   So make it point to the compile time generated array.  */
-PERLVARI(Ibitcount,    char *, (char *)PL_bitcount_array)
-#endif
-
 /* Array of signal handlers, indexed by signal number, through which the C
    signal handler dispatches.  */
 PERLVAR(Ipsig_ptr, SV**)
 /* Array of names of signals, indexed by signal number, for (re)use as the first
-   argument to a signal handler.   */
+   argument to a signal handler.   Only one block of memory is allocated for
+   both psig_name and psig_ptr.  */
 PERLVAR(Ipsig_name, SV**)              
 
 #if defined(PERL_IMPLICIT_SYS)