mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Pack iseq_inline_constant_cache_entry
Reordered iseq_inline_constant_cache_entry members not to exceed the size of RValue.
This commit is contained in:
parent
9ba335e2eb
commit
e03bf76b31
1 changed files with 8 additions and 11 deletions
19
vm_core.h
19
vm_core.h
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue