summaryrefslogtreecommitdiff
path: root/op.h
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2012-06-23 09:48:34 -0700
committerFather Chrysostomos <sprout@cpan.org>2012-06-29 00:20:55 -0700
commitbb38a9e0f528ce1ecffe4f8c3c76984148803932 (patch)
tree7a2a6d40014705c9a079ad16e1cfbae4a040be41 /op.h
parentbfbc3ad9dfc28552739737eb87f09552732c0e95 (diff)
downloadperl-bb38a9e0f528ce1ecffe4f8c3c76984148803932.tar.gz
Flag ops that are on the savestack
This is to allow future commits to free dangling ops after errors. If an op is on the savestack, then it is going to be freed by scope.c, and op_free must not be called on it by anyone else. So we flag such ops new.
Diffstat (limited to 'op.h')
-rw-r--r--op.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/op.h b/op.h
index 7be9bf5ce7..7e20c70fe6 100644
--- a/op.h
+++ b/op.h
@@ -28,8 +28,9 @@
* the op may be safely op_free()d multiple times
* op_latefreed an op_latefree op has been op_free()d
* op_attached this op (sub)tree has been attached to a CV
+ * op_savefree on savestack via SAVEFREEOP
*
- * op_spare three spare bits!
+ * op_spare two spare bits!
* op_flags Flags common to all operations. See OPf_* below.
* op_private Flags peculiar to a particular operation (BUT,
* by default, set to the number of children until
@@ -62,7 +63,8 @@ typedef PERL_BITFIELD16 Optype;
PERL_BITFIELD16 op_latefree:1; \
PERL_BITFIELD16 op_latefreed:1; \
PERL_BITFIELD16 op_attached:1; \
- PERL_BITFIELD16 op_spare:3; \
+ PERL_BITFIELD16 op_savefree:1; \
+ PERL_BITFIELD16 op_spare:2; \
U8 op_flags; \
U8 op_private;
#endif