From fb01411ae842dbcc16d18dec2216fa2719649dff Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Fri, 18 Jun 2021 01:31:50 +0900 Subject: node.h: Reduce struct size to fit with Ruby object size (five VALUEs) by merging `rb_ast_body_t#line_count` and `#script_lines`. Fortunately `line_count == RARRAY_LEN(script_lines)` was always satisfied. When script_lines is saved, it has an array of lines, and when not saved, it has a Fixnum that represents the old line_count. --- node.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'node.h') diff --git a/node.h b/node.h index 592b285b83..8b09e81a8c 100644 --- a/node.h +++ b/node.h @@ -398,8 +398,10 @@ typedef struct node_buffer_struct node_buffer_t; typedef struct rb_ast_body_struct { const NODE *root; VALUE compile_option; - int line_count; VALUE script_lines; + // script_lines is either: + // - a Fixnum that represents the line count of the original source, or + // - an Array that contains the lines of the original source } rb_ast_body_t; typedef struct rb_ast_struct { VALUE flags; -- cgit v1.2.3