Skip to content

Commit 68a4399

Browse files
Change call to get_char_len
1 parent 8e05abe commit 68a4399

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

cpp/src/gandiva/gdv_function_stubs.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -643,9 +643,9 @@ const char* gdv_fn_initcap_utf8(int64_t context, const char* data, int32_t data_
643643
bool last_char_was_space = true;
644644

645645
for (int32_t i = 0; i < data_len; i += char_len) {
646-
char_len = gdv_fn_utf8_char_length(data[i]);
647646
// An optimization for single byte characters:
648-
if (char_len == 1) {
647+
if (static_cast<signed char>(data[i]) >= 0) { // 1-byte char (0x00 ~ 0x7F)
648+
char_len = 1;
649649
char cur = data[i];
650650

651651
if (cur >= 0x61 && cur <= 0x7a && last_char_was_space) {
@@ -668,6 +668,8 @@ const char* gdv_fn_initcap_utf8(int64_t context, const char* data, int32_t data_
668668
continue;
669669
}
670670

671+
char_len = gdv_fn_utf8_char_length(data[i]);
672+
671673
// Control reaches here when we encounter a multibyte character
672674
const auto* in_char = (const uint8_t*)(data + i);
673675

0 commit comments

Comments
 (0)