diff options
| author | Rory OConnell <[email protected]> | 2020-07-13 15:58:50 -0700 |
|---|---|---|
| committer | Rory OConnell <[email protected]> | 2020-07-13 15:58:50 -0700 |
| commit | e7bd7d0eaf677f62d86f27c2e9a917faa5a7d419 (patch) | |
| tree | d7455eeb10c5fed2b5c422af8d237d8314ff63de /mrbgems/mruby-objectspace/src | |
| parent | 41e3220539ff0150bb09968b243ce6ed96b6fe0e (diff) | |
| download | mruby-e7bd7d0eaf677f62d86f27c2e9a917faa5a7d419.tar.gz mruby-e7bd7d0eaf677f62d86f27c2e9a917faa5a7d419.zip | |
Use size of hash's table in calculation
Diffstat (limited to 'mrbgems/mruby-objectspace/src')
| -rw-r--r-- | mrbgems/mruby-objectspace/src/mruby_objectspace.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/mrbgems/mruby-objectspace/src/mruby_objectspace.c b/mrbgems/mruby-objectspace/src/mruby_objectspace.c index 791bf68fe..b0a3e0d89 100644 --- a/mrbgems/mruby-objectspace/src/mruby_objectspace.c +++ b/mrbgems/mruby-objectspace/src/mruby_objectspace.c @@ -262,8 +262,12 @@ os_memsize_of_object(mrb_state* mrb, mrb_value obj, mrb_bool recurse, mrb_int* t break; } case MRB_TT_HASH: { - /*struct htable* htable = RHASH_TBL(obj); - * Need htable & segment struct defs */ + (*t) += mrb_objspace_page_slot_size() + + os_memsize_of_hash_table(obj); + if(recurse) { + os_memsize_of_object(mrb, mrb_hash_keys(mrb, obj), recurse, t); + os_memsize_of_object(mrb, mrb_hash_values(mrb, obj), recurse, t); + } break; } case MRB_TT_ARRAY: { @@ -325,7 +329,6 @@ os_memsize_of_object(mrb_state* mrb, mrb_value obj, mrb_bool recurse, mrb_int* t case MRB_TT_FREE: case MRB_TT_UNDEF: case MRB_TT_ENV: - case MRB_TT_ISTRUCT: /* never used, silences compiler warning * not having a default: clause lets the compiler tell us when there is a new * TT not accounted for */ |
