diff options
author | David Mitchell <davem@iabyn.com> | 2017-08-23 10:18:53 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2017-08-23 10:18:53 +0100 |
commit | d2dccc05447801502a45b7e823dbd02a4e6070b0 (patch) | |
tree | b4ef1e9fe42335ed70c5bdb2917fe217454c9dc3 /cop.h | |
parent | f749af30fc853206f2c6a94557bbfe7498adb961 (diff) | |
download | perl-d2dccc05447801502a45b7e823dbd02a4e6070b0.tar.gz |
make 'struct jmpenv' size independent of DEBUGGING
RT #131942
My commit v5.27.1-114-g9449f0d added a field je_old_stack_hwm to
the jmpenv structure on debugging builds.
However, one field in the interpreter structure is a JMPENV (rather than
JMPENV*), so this can make the interpreter structure size vary on
debugging and non-debugging builds.
This is usually a no-no, since it breaks re.pm, which recompiles
the various re functions with DEBUGGING enabled, even on non-debugging
fields.
This was supposed to be handled by the extra '!defined DEBUGGING_RE_ONLY'
condition, and indeed all core XS modules including re.xs work ok.
However, it seems to have broken several CPAN modules. I still don't
understand why, but the easiest fix is to just always include the
debugging je_old_stack_hwm field in all builds.
Diffstat (limited to 'cop.h')
-rw-r--r-- | cop.h | 2 |
1 files changed, 0 insertions, 2 deletions
@@ -35,9 +35,7 @@ struct jmpenv { int je_ret; /* last exception thrown */ bool je_mustcatch; /* need to call longjmp()? */ U16 je_old_delaymagic; /* saved PL_delaymagic */ -#if defined DEBUGGING && !defined DEBUGGING_RE_ONLY SSize_t je_old_stack_hwm; -#endif }; typedef struct jmpenv JMPENV; |