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 */
|
/* iseq data type */
|
||||||
typedef struct rb_compile_option_struct rb_compile_option_t;
|
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
|
// imemo_constcache
|
||||||
struct iseq_inline_constant_cache_entry {
|
struct iseq_inline_constant_cache_entry {
|
||||||
VALUE flags;
|
VALUE flags;
|
||||||
|
|
||||||
VALUE value; // v0
|
VALUE value; // v0
|
||||||
const rb_cref_t *ic_cref; // v1
|
rb_serial_t ic_serial; // v1
|
||||||
rb_serial_t ic_serial; // v2
|
#if (SIZEOF_SERIAL_T < 2 * SIZEOF_VOIDP)
|
||||||
// v3
|
VALUE ic_padding; // v2
|
||||||
};
|
|
||||||
|
|
||||||
#if (SIZEOF_SERIAL_T > SIZEOF_VOIDP) && defined(__CYGWIN__)
|
|
||||||
#pragma pack(pop)
|
|
||||||
#endif
|
#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 {
|
||||||
struct iseq_inline_constant_cache_entry *entry;
|
struct iseq_inline_constant_cache_entry *entry;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue