summaryrefslogtreecommitdiff
path: root/sv.h
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2016-11-10 21:38:30 +0000
committerDavid Mitchell <davem@iabyn.com>2016-11-12 16:15:09 +0000
commit6432a58ad9a504c2dc834eb0d131a10b4b6c886b (patch)
treeaacfe1256852ac05b4aefaa42dd9069685377cb8 /sv.h
parent9a70c74b0f460b0c96e443ecdfcb551157e02b51 (diff)
downloadperl-6432a58ad9a504c2dc834eb0d131a10b4b6c886b.tar.gz
Eliminate SVrepl_EVAL and SvEVALED()
This flag is only used to indicate that the SV holding the text of the replacement part of a s/// has seen at least one /e. Instead, set the IVX field in the SV to a true value. (We already set the NVX field on that SV to indicate a multi-src-line substitution). This is to reduce the number of odd special cases for the SVpbm_VALID flag.
Diffstat (limited to 'sv.h')
-rw-r--r--sv.h7
1 files changed, 1 insertions, 6 deletions
diff --git a/sv.h b/sv.h
index 01277afa8e..c33a9a4c11 100644
--- a/sv.h
+++ b/sv.h
@@ -456,8 +456,6 @@ perform the upgrade if necessary. See C<L</svtype>>.
/* This is only set true on a PVGV when it's playing "PVBM", but is tested for
on any regular scalar (anything <= PVLV) */
#define SVpbm_VALID 0x40000000
-/* Only used in toke.c on an SV stored in PL_lex_repl */
-#define SVrepl_EVAL 0x40000000 /* Replacement part of s///e */
/* IV, PVIV, PVNV, PVMG, PVGV and (I assume) PVLV */
#define SVf_IVisUV 0x80000000 /* use XPVUV instead of XPVIV */
@@ -492,6 +490,7 @@ union _xivu {
IV xivu_iv; /* integer value */
UV xivu_uv;
HEK * xivu_namehek; /* xpvlv, xpvgv: GvNAME */
+ bool xivu_eval_seen; /* used internally by S_scan_subst() */
};
union _xmgu {
@@ -1120,10 +1119,6 @@ object type. Exposed to perl code via Internals::SvREADONLY().
# define SvCOMPILED_off(sv)
#endif
-#define SvEVALED(sv) (SvFLAGS(sv) & SVrepl_EVAL)
-#define SvEVALED_on(sv) (SvFLAGS(sv) |= SVrepl_EVAL)
-#define SvEVALED_off(sv) (SvFLAGS(sv) &= ~SVrepl_EVAL)
-
#if defined (DEBUGGING) && defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
# define SvVALID(sv) ({ const SV *const _svvalid = (const SV*)(sv); \
if (SvFLAGS(_svvalid) & SVpbm_VALID && !SvSCREAM(_svvalid)) \