summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-06-16 22:36:27 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-06-16 22:36:27 +0000
commit3caa4ee5e545ee975ca3dc3fa798e63876e59a05 (patch)
treec15c43e94c7e82c7260cf9d175919511e0dc0786 /array.c
parent51d174a17704c56342488cc1cc932b0825a3f305 (diff)
* array.c (rb_ary_memsize): added.
* io.c (rb_io_memsize): added. * regcomp.c (onig_memsize): added. * string.c (rb_str_memsize): added. * transcode.c (rb_transcoding_memsize, rb_econv_memsize): added. * variable.c (rb_geneic_ivar_memsize): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'array.c')
-rw-r--r--array.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/array.c b/array.c
index 3d53bc8ef7..cb37a2ead7 100644
--- a/array.c
+++ b/array.c
@@ -386,6 +386,17 @@ rb_ary_free(VALUE ary)
}
}
+size_t
+rb_ary_memsize(VALUE ary)
+{
+ if (ARY_OWNS_HEAP_P(ary)) {
+ return RARRAY(ary)->as.heap.aux.capa * sizeof(VALUE);
+ }
+ else {
+ return 0;
+ }
+}
+
static inline void
ary_discard(VALUE ary)
{