diff options
author | HASUMI Hitoshi <[email protected]> | 2024-04-26 21:43:35 +0900 |
---|---|---|
committer | Yuichiro Kaneko <[email protected]> | 2024-04-27 12:08:26 +0900 |
commit | 55a402bb759597487905a94d5b1bbff4a672499c (patch) | |
tree | 9a6309c61f0f6871de0d47c135d4270bb270dfc7 /ast.c | |
parent | bf1f16ef47966e33401e5b9656a4ae4152dd1e60 (diff) |
Add line_count field to rb_ast_body_t
This patch adds `int line_count` field to `rb_ast_body_t` structure.
Instead, we no longer cast `script_lines` to Fixnum.
## Background
Ref https://github.com/ruby/ruby/pull/10618
In the PR above, we have decoupled IMEMO from `rb_ast_t`.
This means we could lift the five-words-restriction of the structure
that forced us to unionize `rb_ast_t *` and `FIXNUM` in one field.
## Relating refactor
- Remove the second parameter of `rb_ruby_ast_new()` function
## Attention
I will remove a code that assigns -1 to line_count, in `rb_binding_add_dynavars()`
of vm.c, because I don't think it is necessary.
But I will make another PR for this so that we can atomically revert
in case I was wrong (See the comment on the code)
Diffstat (limited to 'ast.c')
-rw-r--r-- | ast.c | 1 |
1 files changed, 0 insertions, 1 deletions
@@ -802,7 +802,6 @@ ast_node_script_lines(rb_execution_context_t *ec, VALUE self) TypedData_Get_Struct(self, struct ASTNodeData, &rb_node_type, data); ast = rb_ruby_ast_data_get(data->vast); rb_parser_ary_t *ret = ast->body.script_lines; - if (!ret || FIXNUM_P((VALUE)ret)) return Qnil; return rb_parser_build_script_lines_from(ret); } |