summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-objectspace/src/mruby_objectspace.c
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-objectspace/src/mruby_objectspace.c')
-rw-r--r--mrbgems/mruby-objectspace/src/mruby_objectspace.c5
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: