summaryrefslogtreecommitdiff
path: root/cop.h
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2017-08-23 10:18:53 +0100
committerDavid Mitchell <davem@iabyn.com>2017-08-23 10:18:53 +0100
commitd2dccc05447801502a45b7e823dbd02a4e6070b0 (patch)
treeb4ef1e9fe42335ed70c5bdb2917fe217454c9dc3 /cop.h
parentf749af30fc853206f2c6a94557bbfe7498adb961 (diff)
downloadperl-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.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/cop.h b/cop.h
index f621cd2cd2..34ebbc09ab 100644
--- a/cop.h
+++ b/cop.h
@@ -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;