path: root/node.h
diff options
authorYusuke Endoh <>2021-06-18 01:31:50 +0900
committerYusuke Endoh <>2021-06-18 02:34:27 +0900
commitfb01411ae842dbcc16d18dec2216fa2719649dff (patch)
treee8dcf2550a7aa8c5579a86b2623b00b96d6f8f8c /node.h
parentacae5f363dfaedd9c2873cee68c9498da3c072f5 (diff)
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.
Notes: Merged:
Diffstat (limited to 'node.h')
1 files changed, 3 insertions, 1 deletions
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;