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;

Reply via email to