diff options
author | Father Chrysostomos <sprout@cpan.org> | 2012-06-23 09:48:34 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2012-06-29 00:20:55 -0700 |
commit | bb38a9e0f528ce1ecffe4f8c3c76984148803932 (patch) | |
tree | 7a2a6d40014705c9a079ad16e1cfbae4a040be41 /op.h | |
parent | bfbc3ad9dfc28552739737eb87f09552732c0e95 (diff) | |
download | perl-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.h | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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 |