diff options
| -rw-r--r-- | vm_core.h | 19 |
1 files changed, 8 insertions, 11 deletions
@@ -218,23 +218,20 @@ struct rb_control_frame_struct; /* iseq data type */ typedef struct rb_compile_option_struct rb_compile_option_t; -#if (SIZEOF_SERIAL_T > SIZEOF_VOIDP) && defined(__CYGWIN__) -#pragma pack(push, 4) /* == SIZEOF_VOIDP */ -#endif - // imemo_constcache struct iseq_inline_constant_cache_entry { VALUE flags; VALUE value; // v0 - const rb_cref_t *ic_cref; // v1 - rb_serial_t ic_serial; // v2 - // v3 -}; - -#if (SIZEOF_SERIAL_T > SIZEOF_VOIDP) && defined(__CYGWIN__) -#pragma pack(pop) + rb_serial_t ic_serial; // v1 +#if (SIZEOF_SERIAL_T < 2 * SIZEOF_VOIDP) + VALUE ic_padding; // v2 #endif + const rb_cref_t *ic_cref; // v3 +}; +STATIC_ASSERT(sizeof_iseq_inline_constant_cache_entry, + (offsetof(struct iseq_inline_constant_cache_entry, ic_cref) + + sizeof(const rb_cref_t *)) <= sizeof(struct RObject)); struct iseq_inline_constant_cache { struct iseq_inline_constant_cache_entry *entry; |
