aboutsummaryrefslogtreecommitdiffstats
path: root/ast.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-07-23 16:18:40 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-07-23 16:22:53 +0900
commit33f54da15ba137fc1569016f5caa492c1a57eb4d (patch)
treef9ccdfb13bbfc8ca69089e83bed6ca3bd536bcf1 /ast.c
parent90c4bd2d2bd10b19c2b09834396553742bc7e8a4 (diff)
downloadruby-33f54da15ba137fc1569016f5caa492c1a57eb4d.tar.gz
Support memsize of AST
Diffstat (limited to 'ast.c')
-rw-r--r--ast.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ast.c b/ast.c
index a1af214b33..4c6477d3c9 100644
--- a/ast.c
+++ b/ast.c
@@ -22,9 +22,16 @@ node_gc_mark(void *ptr)
rb_gc_mark((VALUE)data->ast);
}
+static size_t
+node_memsize(const void *ptr)
+{
+ struct ASTNodeData *data = (struct ASTNodeData *)ptr;
+ return rb_ast_memsize(data->ast);
+}
+
static const rb_data_type_t rb_node_type = {
"AST/node",
- {node_gc_mark, RUBY_TYPED_DEFAULT_FREE, 0,},
+ {node_gc_mark, RUBY_TYPED_DEFAULT_FREE, node_memsize,},
0, 0,
RUBY_TYPED_FREE_IMMEDIATELY,
};