Skip to content

Commit 7f05e9d

Browse files
committed
Call rb_enc_mbminlen() once
1 parent d758acd commit 7f05e9d

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/main/c/cext/encoding.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,9 +248,10 @@ int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc) {
248248

249249
long rb_enc_strlen(const char *p, const char *e, rb_encoding *enc) {
250250
long length = e - p;
251+
int minlen = rb_enc_mbminlen(enc);
251252

252-
if (rb_enc_mbminlen(enc) == rb_enc_mbmaxlen(enc)) {
253-
return length / rb_enc_mbminlen(enc) + !!(length % rb_enc_mbminlen(enc));
253+
if (minlen == rb_enc_mbmaxlen(enc)) {
254+
return length / minlen + !!(length % minlen);
254255
}
255256

256257
return polyglot_as_i64(RUBY_CEXT_INVOKE_NO_WRAP("rb_enc_strlen", rb_tr_temporary_native_string(p, length, enc)));

0 commit comments

Comments
 (0)