diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-07-17 10:51:01 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-07-17 10:52:59 +0900 |
| commit | 7f66cf7d66f71d729f9ad1b129d9d817c075b979 (patch) | |
| tree | 5d8564ae73e2889ccc7899a0737e3e5aebcadcbb /mrbgems/mruby-objectspace | |
| parent | 9840d6a2e7fccb8eb64df3fc8e89fdd3c84670e3 (diff) | |
| download | mruby-7f66cf7d66f71d729f9ad1b129d9d817c075b979.tar.gz mruby-7f66cf7d66f71d729f9ad1b129d9d817c075b979.zip | |
Fix `memsize_of` for string objects; #5032
Diffstat (limited to 'mrbgems/mruby-objectspace')
| -rw-r--r-- | mrbgems/mruby-objectspace/src/mruby_objectspace.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/mrbgems/mruby-objectspace/src/mruby_objectspace.c b/mrbgems/mruby-objectspace/src/mruby_objectspace.c index 7892c6a1b..a9469203f 100644 --- a/mrbgems/mruby-objectspace/src/mruby_objectspace.c +++ b/mrbgems/mruby-objectspace/src/mruby_objectspace.c @@ -250,7 +250,10 @@ os_memsize_of_object(mrb_state* mrb, mrb_value obj, mrb_value recurse, mrb_int* switch(obj.tt) { case MRB_TT_STRING: - (*t) += RSTRING_LEN(obj); + (*t) += mrb_objspace_page_slot_size(); + if (!RSTR_EMBED_P(RSTRING(obj)) && !RSTR_SHARED_P(RSTRING(obj))) { + (*t) += RSTRING_CAPA(obj); + } break; case MRB_TT_CLASS: case MRB_TT_MODULE: |
