diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/hash.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/hash.c b/src/hash.c index 5b5fc65b6..b049111b6 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1034,10 +1034,11 @@ size_t mrb_hash_memsize(mrb_value self) { struct RHash *h = mrb_hash_ptr(self); - return h_ar_p(h) ? (ar_ea_capa(h) * sizeof(hash_entry)) : - (ht_ea_capa(h) * sizeof(hash_entry) + - sizeof(hash_table) + - ib_byte_size_for(ib_bit(h))); + return mrb_obj_iv_tbl_memsize(self) + + (h_ar_p(h) ? (ar_ea_capa(h) * sizeof(hash_entry)) : + (ht_ea_capa(h) * sizeof(hash_entry) + + sizeof(hash_table) + + ib_byte_size_for(ib_bit(h)))); } /* Iterates over the key/value pairs. */ |
