On Sun, Oct 15, 2006 at 04:02:43PM -0500, Craig A. Berry wrote:
> Change 28770 by [EMAIL PROTECTED] on 2006/08/31 08:26:13
>
> Save 4 bytes from struct context (on ILP32) by moving cx_type into
> struct block and struct subst.
>
> Details here:
>
> http://public.activestate.com/cgi-bin/perlbrowse/28770
What type does U8 end up as on VMS? And what type is bool?
What's the offset of the I32 blku_oldsp in struct block? 3, or 4?
Does the appended patch fix it?
Nicholas Clark
==== //depot/perl/cop.h#131 - /home/nick/p4perl/perl/cop.h ====
--- /tmp/tmp.74363.0 Sun Oct 15 22:55:17 2006
+++ /home/nick/p4perl/perl/cop.h Sun Oct 15 22:39:23 2006
@@ -497,6 +497,7 @@ struct block_givwhen {
struct block {
U16 blku_type; /* what kind of context this is */
U8 blku_gimme; /* is this block running in list context? */
+ U8 blku_spare; /* Padding to match with struct subst */
I32 blku_oldsp; /* stack pointer to copy stuff down to
*/
COP * blku_oldcop; /* old curcop pointer */
I32 blku_oldmarksp; /* mark stack index */
@@ -556,8 +557,8 @@ struct block {
/* substitution context */
struct subst {
U16 sbu_type; /* what kind of context this is */
- bool sbu_once;
- bool sbu_rxtainted;
+ U8 sbu_once; /* Actually both booleans, but U8 to matches */
+ U8 sbu_rxtainted; /* struct block */
I32 sbu_iters;
I32 sbu_maxiters;
I32 sbu_rflags;