aboutsummaryrefslogtreecommitdiffstats
path: root/prism/prism.c
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2024-02-21 10:28:58 -0500
committergit <svn-admin@ruby-lang.org>2024-02-21 15:47:05 +0000
commit2b2e61e6f98f4dde3547a097241a950cb1300b86 (patch)
treea5cf51f9e40c85200b5ec7b2d722400cb61c2ec6 /prism/prism.c
parentbf680af7b2ef41339481ab013c15934d84dec5dd (diff)
downloadruby-2b2e61e6f98f4dde3547a097241a950cb1300b86.tar.gz
[ruby/prism] Only call encoding_changed callback on change
https://github.com/ruby/prism/commit/7d0bea3ce0
Diffstat (limited to 'prism/prism.c')
-rw-r--r--prism/prism.c7
1 files 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;
}