From 42484d1281868a50dd06cd819aaa3d9f977b3ae2 Mon Sep 17 00:00:00 2001 From: eileencodes Date: Fri, 13 Oct 2023 13:30:02 -0400 Subject: [ruby/prism] Move common flags to top bits Moves the common flag bits to the top. This lets us eliminate the `COMMON` constant, and also allows us to group encoding flags on a nibble so we can more easily mask them. https://github.com/ruby/prism/commit/895508659e --- prism/templates/src/prettyprint.c.erb | 2 +- prism/templates/src/serialize.c.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'prism/templates/src') diff --git a/prism/templates/src/prettyprint.c.erb b/prism/templates/src/prettyprint.c.erb index 0dd8632616..c5d05485b8 100644 --- a/prism/templates/src/prettyprint.c.erb +++ b/prism/templates/src/prettyprint.c.erb @@ -80,7 +80,7 @@ prettyprint_node(pm_buffer_t *buffer, pm_parser_t *parser, pm_node_t *node) { pm_buffer_append_str(buffer, <%= field.name %>_buffer, strlen(<%= field.name %>_buffer)); <%- when Prism::FlagsField -%> char <%= field.name %>_buffer[12]; - snprintf(<%= field.name %>_buffer, sizeof(<%= field.name %>_buffer), "+%d", node->flags >> <%= Prism::COMMON_FLAGS %>); + snprintf(<%= field.name %>_buffer, sizeof(<%= field.name %>_buffer), "+%d", (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK)); pm_buffer_append_str(buffer, <%= field.name %>_buffer, strlen(<%= field.name %>_buffer)); <%- else -%> <%- raise -%> diff --git a/prism/templates/src/serialize.c.erb b/prism/templates/src/serialize.c.erb index cc2d4db7a0..e9ebc31590 100644 --- a/prism/templates/src/serialize.c.erb +++ b/prism/templates/src/serialize.c.erb @@ -110,7 +110,7 @@ pm_serialize_node(pm_parser_t *parser, pm_node_t *node, pm_buffer_t *buffer) { <%- when Prism::UInt32Field -%> pm_buffer_append_u32(buffer, ((pm_<%= node.human %>_t *)node)-><%= field.name %>); <%- when Prism::FlagsField -%> - pm_buffer_append_u32(buffer, node->flags >> <%= Prism::COMMON_FLAGS %>); + pm_buffer_append_u32(buffer, (uint32_t)(node->flags & ~PM_NODE_FLAG_COMMON_MASK)); <%- else -%> <%- raise -%> <%- end -%> -- cgit v1.2.3