summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'io.c')
-rw-r--r--io.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/io.c b/io.c
index 8f699747bc..75f7abe4a6 100644
--- a/io.c
+++ b/io.c
@@ -3317,6 +3317,20 @@ rb_io_fptr_finalize(rb_io_t *fptr)
return 1;
}
+size_t rb_econv_memsize(rb_econv_t *);
+
+size_t
+rb_io_memsize(rb_io_t *fptr)
+{
+ size_t size = sizeof(rb_io_t);
+ size += fptr->rbuf_capa;
+ size += fptr->wbuf_capa;
+ size += fptr->cbuf_capa;
+ if (fptr->readconv) size += rb_econv_memsize(fptr->readconv);
+ if (fptr->writeconv) size += rb_econv_memsize(fptr->writeconv);
+ return size;
+}
+
VALUE
rb_io_close(VALUE io)
{