Issue #20322 has been updated by byroot (Jean Boussier).
That's a regression and should be fixed mostly for consistency with other functions
that take a encoding pointer.
----------------------------------------
Bug #20322: rb_enc_interned_str_cstr doesn't accept null pointer for encoding
https://bugs.ruby-lang.org/issues/20322#change-107105
* Author: thomasmarshall (Thomas Marshall)
* Status: Open
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
The [header
documentation](https://github.com/ruby/ruby/blob/93556d46203545bc2364b1c0dd…
for `rb_enc_interned_str_cstr` notes:
`enc` can be a null pointer.
When [adding support for this function to
TruffleRuby](https://github.com/oracle/truffleruby/pull/3427) we noticed that the
behaviour did not match that documentation. I think this did work previously, but it
currently causes a segmentation fault when trying to [autoload the
encoding](https://github.com/ruby/ruby/blob/93556d46203545bc2364b1c0dd1281b…
because it calls `rb_enc_mbmaxlen` which [expects a non-null
encoding](https://github.com/ruby/ruby/blob/93556d46203545bc2364b1c0dd1281b….
I'm not sure how important this behaviour is, whether extensions ever actually call
this with a null pointer, or if the documentation is instead just incorrect. I think
it's a straightforward fix to make the behaviour match the documentation, so I would
like to open a PR, but also happy to just remove the note if that is preferable.
--
https://bugs.ruby-lang.org/