diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-03-21 08:29:05 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-03-21 08:29:05 +0900 |
| commit | a6d4477a09ae9ca2af97bdcecd25911da5a75a7c (patch) | |
| tree | c41dcd7cb4170008e91cbb9f77fb2ae449af6bfe /mrbgems | |
| parent | e21f293de5d32af9349cef174df9f1e536adec16 (diff) | |
| download | mruby-a6d4477a09ae9ca2af97bdcecd25911da5a75a7c.tar.gz mruby-a6d4477a09ae9ca2af97bdcecd25911da5a75a7c.zip | |
memsize.c: handle `MRB_TT_RATIONAL` and `MRB_TT_COMPLEX`.
Diffstat (limited to 'mrbgems')
| -rw-r--r-- | mrbgems/mruby-os-memsize/src/memsize.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/mrbgems/mruby-os-memsize/src/memsize.c b/mrbgems/mruby-os-memsize/src/memsize.c index abfd94268..9947512cf 100644 --- a/mrbgems/mruby-os-memsize/src/memsize.c +++ b/mrbgems/mruby-os-memsize/src/memsize.c @@ -126,8 +126,25 @@ os_memsize_of_object(mrb_state* mrb, mrb_value obj) case MRB_TT_INTEGER: if (mrb_immediate_p(obj)) break; + case MRB_TT_RATIONAL: +#if defined(MRB_USE_RATIONAL) +#if defined(MRB_INT64) && defined(MRB_32BIT) + size += sizeof(mrb_int)*2; +#endif + size += mrb_objspace_page_slot_size(); +#endif + break; + + case MRB_TT_COMPLEX: +#if defined(MRB_USE_COMPLEX) +#if defined(MRB_32BIT) && !defined(MRB_USE_FLOAT32) + size += sizeof(mrb_float)*2; +#endif + size += mrb_objspace_page_slot_size(); +#endif + break; case MRB_TT_DATA: - case MRB_TT_ISTRUCT: + case MRB_TT_ISTRUCT: size += mrb_objspace_page_slot_size(); break; /* zero heap size types. |
