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 /src/hash.c | |
| parent | 41e3220539ff0150bb09968b243ce6ed96b6fe0e (diff) | |
| download | mruby-e7bd7d0eaf677f62d86f27c2e9a917faa5a7d419.tar.gz mruby-e7bd7d0eaf677f62d86f27c2e9a917faa5a7d419.zip | |
Use size of hash's table in calculation
Diffstat (limited to 'src/hash.c')
| -rw-r--r-- | src/hash.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/hash.c b/src/hash.c index 4d5310903..7c90758c0 100644 --- a/src/hash.c +++ b/src/hash.c @@ -518,6 +518,20 @@ ht_foreach(mrb_state *mrb, htable *t, mrb_hash_foreach_func *func, void *p) } } +mrb_int +os_memsize_of_hash_table(mrb_value obj) +{ + struct htable *h = mrb_hash_ptr(obj)->ht; + mrb_int segkv_size = 0; + + if(h->index) segkv_size = (sizeof(struct segkv) * h->index->capa); + + return sizeof(htable) + + sizeof(segindex) + + (sizeof(segment) * h->size) + + segkv_size; +} + /* Iterates over the hash table. */ MRB_API void mrb_hash_foreach(mrb_state *mrb, struct RHash *hash, mrb_hash_foreach_func *func, void *p) |
