From 2b2e61e6f98f4dde3547a097241a950cb1300b86 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 21 Feb 2024 10:28:58 -0500 Subject: [PATCH] [ruby/prism] Only call encoding_changed callback on change https://github.com/ruby/prism/commit/7d0bea3ce0 --- prism/prism.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/prism/prism.c b/prism/prism.c index d829c984dd..ee3e3f0d5a 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -6605,9 +6605,12 @@ parser_lex_magic_comment_encoding_value(pm_parser_t *parser, const uint8_t *star const pm_encoding_t *encoding = pm_encoding_find(start, end); if (encoding != NULL) { - parser->encoding = encoding; + if (parser->encoding != encoding) { + parser->encoding = encoding; + if (parser->encoding_changed_callback != NULL) parser->encoding_changed_callback(parser); + } + parser->encoding_changed = (encoding != PM_ENCODING_UTF_8_ENTRY); - if (parser->encoding_changed_callback != NULL) parser->encoding_changed_callback(parser); return true; }