From 499f6d62c7f0039e4c047b2fce605bb17f52f453 Mon Sep 17 00:00:00 2001 From: normal Date: Sun, 13 Jul 2014 07:01:09 +0000 Subject: vm_core.h (struct rb_iseq_struct): stack_max is uint32_t * vm_core.h (struct rb_iseq_struct): stack_max is uint32_t No program will ever need more than a few megabytes of stack, so there's no sense in using a 64-bit counter for stack accounting. Packing this with the 32-bit type enum reduces rb_iseq_struct from 312 to 304 bytes on 64-bit systems. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ vm_core.h | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3890d33492..788724739c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Jul 13 15:53:25 2014 Eric Wong + + * vm_core.h (struct rb_iseq_struct): stack_max is uint32_t + Sun Jul 13 10:56:26 2014 Nobuyoshi Nakada * configure.in (rb_cv_broken_backtrace): exit with failure diff --git a/vm_core.h b/vm_core.h index 63e53a5d11..c71b83c70d 100644 --- a/vm_core.h +++ b/vm_core.h @@ -204,6 +204,7 @@ struct rb_iseq_struct { ISEQ_TYPE_MAIN, ISEQ_TYPE_DEFINED_GUARD } type; /* instruction sequence type */ + uint32_t stack_max; /* for stack overflow check */ rb_iseq_location_t location; @@ -271,8 +272,6 @@ struct rb_iseq_struct { int arg_keyword_required; ID *arg_keyword_table; - size_t stack_max; /* for stack overflow check */ - /* catch table */ struct iseq_catch_table_entry *catch_table; int catch_table_size; -- cgit v1.2.3