Cleanup: use strict flags for string utilities & cursor

Make type conversions explicit so it's clear when char/char32_t/uint
values are being mixed, also use int instead of size_t for cursor
functions because the cursor is an int - which caused many int/size_t
comparisons.
This commit is contained in:
Campbell Barton 2023-09-20 12:11:30 +10:00
parent f8719abdf4
commit 731fc5d980
6 changed files with 95 additions and 91 deletions

View File

@ -985,7 +985,7 @@ size_t blf_str_offset_from_cursor_position(FontBLF *font,
else if (BLI_str_utf8_char_width_or_error(&str[data.r_offset]) == 0) {
/* This is a combining character, so move to previous visible valid char. */
int offset = int(data.r_offset);
BLI_str_cursor_step_prev_utf8(str, str_len, &offset);
BLI_str_cursor_step_prev_utf8(str, int(str_len), &offset);
data.r_offset = size_t(offset);
}

View File

@ -23,21 +23,21 @@ typedef enum eStrCursorJumpDirection {
STRCUR_DIR_NEXT,
} eStrCursorJumpDirection;
bool BLI_str_cursor_step_next_utf8(const char *str, size_t str_maxlen, int *pos);
bool BLI_str_cursor_step_prev_utf8(const char *str, size_t str_maxlen, int *pos);
bool BLI_str_cursor_step_next_utf8(const char *str, int str_maxlen, int *pos);
bool BLI_str_cursor_step_prev_utf8(const char *str, int str_maxlen, int *pos);
bool BLI_str_cursor_step_next_utf32(const char32_t *str, size_t str_maxlen, int *pos);
bool BLI_str_cursor_step_prev_utf32(const char32_t *str, size_t str_maxlen, int *pos);
bool BLI_str_cursor_step_next_utf32(const char32_t *str, int str_maxlen, int *pos);
bool BLI_str_cursor_step_prev_utf32(const char32_t *str, int str_maxlen, int *pos);
void BLI_str_cursor_step_utf8(const char *str,
size_t str_maxlen,
int str_maxlen,
int *pos,
eStrCursorJumpDirection direction,
eStrCursorJumpType jump,
bool use_init_step);
void BLI_str_cursor_step_utf32(const char32_t *str,
size_t str_maxlen,
int str_maxlen,
int *pos,
eStrCursorJumpDirection direction,
eStrCursorJumpType jump,
@ -57,11 +57,11 @@ void BLI_str_cursor_step_utf32(const char32_t *str,
* \param r_end: returned end of word/sequence boundary (0-based)
*/
void BLI_str_cursor_step_bounds_utf8(
const char *str, const size_t str_maxlen, int pos, int *r_start, int *r_end);
const char *str, int str_maxlen, int pos, int *r_start, int *r_end);
/** A UTF32 version of #BLI_str_cursor_step_bounds_utf8 */
void BLI_str_cursor_step_bounds_utf32(
const char32_t *str, const size_t str_maxlen, int pos, int *r_start, int *r_end);
const char32_t *str, int str_maxlen, int pos, int *r_start, int *r_end);
#ifdef __cplusplus
}

View File

@ -20,9 +20,7 @@
#include "BLI_utildefines.h"
#ifdef __GNUC__
# pragma GCC diagnostic error "-Wsign-conversion"
#endif
#include "BLI_strict_flags.h"
/* -------------------------------------------------------------------- */
/** \name String Duplicate/Copy
@ -165,7 +163,7 @@ size_t BLI_vsnprintf(char *__restrict dst,
n = (size_t)vsnprintf(dst, dst_maxncpy, format, arg);
if (n != -1 && n < dst_maxncpy) {
if (n != (size_t)-1 && n < dst_maxncpy) {
dst[n] = '\0';
}
else {
@ -190,7 +188,7 @@ size_t BLI_vsnprintf_rlen(char *__restrict dst,
n = (size_t)vsnprintf(dst, dst_maxncpy, format, arg);
if (n != -1 && n < dst_maxncpy) {
if (n != (size_t)-1 && n < dst_maxncpy) {
/* pass */
}
else {
@ -249,7 +247,7 @@ char *BLI_sprintfN_with_buffer(
return fixed_buf;
}
*result_len = (size_t)retval;
if (retval < fixed_buf_size) {
if ((size_t)retval < fixed_buf_size) {
return fixed_buf;
}
@ -259,7 +257,7 @@ char *BLI_sprintfN_with_buffer(
va_start(args, format);
retval = vsnprintf(result, size, format, args);
va_end(args);
BLI_assert(retval + 1 == size);
BLI_assert((size_t)(retval + 1) == size);
return result;
}
@ -283,7 +281,7 @@ char *BLI_vsprintfN_with_buffer(char *fixed_buf,
return fixed_buf;
}
*result_len = (size_t)retval;
if (retval < fixed_buf_size) {
if ((size_t)retval < fixed_buf_size) {
return fixed_buf;
}
@ -291,7 +289,7 @@ char *BLI_vsprintfN_with_buffer(char *fixed_buf,
const size_t size = (size_t)retval + 1;
char *result = MEM_mallocN(sizeof(char) * size, __func__);
retval = vsnprintf(result, size, format, args);
BLI_assert(retval + 1 == size);
BLI_assert((size_t)(retval + 1) == size);
return result;
}
@ -549,14 +547,14 @@ char *BLI_strcasestr(const char *s, const char *find)
size_t len;
if ((c = *find++) != 0) {
c = tolower(c);
c = (char)tolower(c);
len = strlen(find);
do {
do {
if ((sc = *s++) == 0) {
return NULL;
}
sc = tolower(sc);
sc = (char)tolower(sc);
} while (sc != c);
} while (BLI_strncasecmp(s, find, len) != 0);
s--;
@ -602,14 +600,14 @@ char *BLI_strncasestr(const char *s, const char *find, size_t len)
char c, sc;
if ((c = *find++) != 0) {
c = tolower(c);
c = (char)tolower(c);
if (len > 1) {
do {
do {
if ((sc = *s++) == 0) {
return NULL;
}
sc = tolower(sc);
sc = (char)tolower(sc);
} while (sc != c);
} while (BLI_strncasecmp(s, find, len - 1) != 0);
}
@ -619,7 +617,7 @@ char *BLI_strncasestr(const char *s, const char *find, size_t len)
if ((sc = *s++) == 0) {
return NULL;
}
sc = tolower(sc);
sc = (char)tolower(sc);
} while (sc != c);
}
}
@ -634,8 +632,8 @@ int BLI_strcasecmp(const char *s1, const char *s2)
char c1, c2;
for (i = 0;; i++) {
c1 = tolower(s1[i]);
c2 = tolower(s2[i]);
c1 = (char)tolower(s1[i]);
c2 = (char)tolower(s2[i]);
if (c1 < c2) {
return -1;
@ -657,8 +655,8 @@ int BLI_strncasecmp(const char *s1, const char *s2, size_t len)
char c1, c2;
for (i = 0; i < len; i++) {
c1 = tolower(s1[i]);
c2 = tolower(s2[i]);
c1 = (char)tolower(s1[i]);
c2 = (char)tolower(s2[i]);
if (c1 < c2) {
return -1;
@ -758,8 +756,8 @@ int BLI_strcasecmp_natural(const char *s1, const char *s2)
break;
}
c1 = tolower(s1[d1]);
c2 = tolower(s2[d2]);
c1 = (char)tolower(s1[d1]);
c2 = (char)tolower(s2[d2]);
if (c1 == c2) {
/* Continue iteration */
@ -1006,7 +1004,7 @@ int BLI_str_rstrip_float_zero(char *str, const char pad)
int BLI_str_rstrip_digits(char *str)
{
int totstrip = 0;
int str_len = strlen(str);
int str_len = (int)strlen(str);
while (str_len > 0 && isdigit(str[--str_len])) {
str[str_len] = '\0';
totstrip++;
@ -1087,13 +1085,13 @@ int BLI_string_find_split_words(
bool charsearch = true;
/* Skip leading spaces */
for (i = 0; (i < str_maxlen) && (str[i] != '\0'); i++) {
for (i = 0; (i < (int)str_maxlen) && (str[i] != '\0'); i++) {
if (str[i] != delim) {
break;
}
}
for (; (i < str_maxlen) && (str[i] != '\0') && (n < words_max); i++) {
for (; (i < (int)str_maxlen) && (str[i] != '\0') && (n < words_max); i++) {
if ((str[i] != delim) && (charsearch == true)) {
r_words[n][0] = i;
charsearch = false;
@ -1152,7 +1150,7 @@ size_t BLI_str_format_int_grouped(char dst[BLI_STR_FORMAT_INT32_GROUPED_SIZE], i
UNUSED_VARS_NDEBUG(dst_maxncpy);
char src[BLI_STR_FORMAT_INT32_GROUPED_SIZE];
const int num_len = SNPRINTF(src, "%d", num);
const int num_len = (int)SNPRINTF(src, "%d", num);
return BLI_str_format_int_grouped_ex(src, dst, num_len);
}
@ -1164,7 +1162,7 @@ size_t BLI_str_format_uint64_grouped(char dst[BLI_STR_FORMAT_UINT64_GROUPED_SIZE
UNUSED_VARS_NDEBUG(dst_maxncpy);
char src[BLI_STR_FORMAT_UINT64_GROUPED_SIZE];
const int num_len = SNPRINTF(src, "%" PRIu64 "", num);
const int num_len = (int)SNPRINTF(src, "%" PRIu64 "", num);
return BLI_str_format_int_grouped_ex(src, dst, num_len);
}
@ -1176,7 +1174,7 @@ void BLI_str_format_byte_unit(char dst[BLI_STR_FORMAT_INT64_BYTE_UNIT_SIZE],
const size_t dst_maxncpy = BLI_STR_FORMAT_INT64_BYTE_UNIT_SIZE;
BLI_string_debug_size(dst, dst_maxncpy);
double bytes_converted = bytes;
double bytes_converted = (double)bytes;
int order = 0;
int decimals;
const int base = base_10 ? 1000 : 1024;
@ -1204,7 +1202,7 @@ void BLI_str_format_decimal_unit(char dst[BLI_STR_FORMAT_INT32_DECIMAL_UNIT_SIZE
{
BLI_string_debug_size(dst, BLI_STR_FORMAT_INT32_DECIMAL_UNIT_SIZE);
float number_to_format_converted = number_to_format;
float number_to_format_converted = (float)number_to_format;
int order = 0;
const float base = 1000;
const char *units[] = {"", "K", "M", "B"};
@ -1229,7 +1227,7 @@ void BLI_str_format_integer_unit(char dst[BLI_STR_FORMAT_INT32_INTEGER_UNIT_SIZE
const size_t dst_maxncpy = BLI_STR_FORMAT_INT32_INTEGER_UNIT_SIZE;
BLI_string_debug_size(dst, dst_maxncpy);
float number_to_format_converted = number_to_format;
float number_to_format_converted = (float)number_to_format;
int order = 0;
const float base = 1000;
const char *units[] = {"", "K", "M", "B"};

View File

@ -14,9 +14,7 @@
#include "BLI_string_cursor_utf8.h" /* own include */
#ifdef __GNUC__
# pragma GCC diagnostic error "-Wsign-conversion"
#endif
#include "BLI_strict_flags.h"
/**
* The category of character as returned by #cursor_delim_type_unicode.
@ -99,49 +97,50 @@ static eStrCursorDelimType cursor_delim_type_unicode(const uint uch)
}
static eStrCursorDelimType cursor_delim_type_utf8(const char *ch_utf8,
const size_t ch_utf8_len,
const int ch_utf8_len,
const int pos)
{
BLI_assert(ch_utf8_len >= 0);
/* for full unicode support we really need to have large lookup tables to figure
* out what's what in every possible char set - and python, glib both have these. */
size_t index = (size_t)pos;
uint uch = BLI_str_utf8_as_unicode_step_or_error(ch_utf8, ch_utf8_len, &index);
uint uch = BLI_str_utf8_as_unicode_step_or_error(ch_utf8, (size_t)ch_utf8_len, &index);
return cursor_delim_type_unicode(uch);
}
bool BLI_str_cursor_step_next_utf8(const char *str, size_t str_maxlen, int *pos)
bool BLI_str_cursor_step_next_utf8(const char *str, const int str_maxlen, int *pos)
{
/* NOTE: Keep in sync with #BLI_str_cursor_step_next_utf32. */
if ((*pos) >= (int)str_maxlen) {
if (*pos >= str_maxlen) {
return false;
}
const char *str_end = str + (str_maxlen + 1);
const char *str_pos = str + (*pos);
const char *str_pos = str + *pos;
const char *str_next = str_pos;
do {
str_next = BLI_str_find_next_char_utf8(str_next, str_end);
} while (str_next < str_end && str_next[0] != 0 &&
BLI_str_utf8_char_width_or_error(str_next) == 0);
(*pos) += (str_next - str_pos);
if ((*pos) > (int)str_maxlen) {
(*pos) = (int)str_maxlen;
} while ((str_next < str_end) && (str_next[0] != 0) &&
(BLI_str_utf8_char_width_or_error(str_next) == 0));
*pos += (int)(str_next - str_pos);
if (*pos > str_maxlen) {
*pos = str_maxlen;
}
return true;
}
bool BLI_str_cursor_step_prev_utf8(const char *str, size_t str_maxlen, int *pos)
bool BLI_str_cursor_step_prev_utf8(const char *str, const int str_maxlen, int *pos)
{
/* NOTE: Keep in sync with #BLI_str_cursor_step_prev_utf32. */
if ((*pos) > 0 && (*pos) <= str_maxlen) {
const char *str_pos = str + (*pos);
if ((*pos > 0) && (*pos <= str_maxlen)) {
const char *str_pos = str + *pos;
const char *str_prev = str_pos;
do {
str_prev = BLI_str_find_prev_char_utf8(str_prev, str);
} while (str_prev > str && BLI_str_utf8_char_width_or_error(str_prev) == 0);
(*pos) -= (str_pos - str_prev);
} while ((str_prev > str) && (BLI_str_utf8_char_width_or_error(str_prev) == 0));
*pos -= (int)(str_pos - str_prev);
return true;
}
@ -149,12 +148,13 @@ bool BLI_str_cursor_step_prev_utf8(const char *str, size_t str_maxlen, int *pos)
}
void BLI_str_cursor_step_utf8(const char *str,
size_t str_maxlen,
const int str_maxlen,
int *pos,
eStrCursorJumpDirection direction,
eStrCursorJumpType jump,
bool use_init_step)
{
BLI_assert(str_maxlen >= 0);
const int pos_orig = *pos;
if (direction == STRCUR_DIR_NEXT) {
@ -166,13 +166,13 @@ void BLI_str_cursor_step_utf8(const char *str,
}
if (jump != STRCUR_JUMP_NONE) {
const eStrCursorDelimType delim_type = (*pos) < str_maxlen ?
const eStrCursorDelimType delim_type = (*pos < str_maxlen) ?
cursor_delim_type_utf8(str, str_maxlen, *pos) :
STRCUR_DELIM_NONE;
/* jump between special characters (/,\,_,-, etc.),
* look at function cursor_delim_type() for complete
* list of special character, ctr -> */
while ((*pos) < str_maxlen) {
while (*pos < str_maxlen) {
if (BLI_str_cursor_step_next_utf8(str, str_maxlen, pos)) {
if (*pos == str_maxlen) {
break;
@ -197,19 +197,19 @@ void BLI_str_cursor_step_utf8(const char *str,
}
if (jump != STRCUR_JUMP_NONE) {
const eStrCursorDelimType delim_type = (*pos) > 0 ? cursor_delim_type_utf8(
const eStrCursorDelimType delim_type = (*pos > 0) ? cursor_delim_type_utf8(
str, str_maxlen, *pos - 1) :
STRCUR_DELIM_NONE;
/* jump between special characters (/,\,_,-, etc.),
* look at function cursor_delim_type() for complete
* list of special character, ctr -> */
while ((*pos) > 0) {
while (*pos > 0) {
const int pos_prev = *pos;
if (BLI_str_cursor_step_prev_utf8(str, str_maxlen, pos)) {
if ((jump != STRCUR_JUMP_ALL) &&
(delim_type != cursor_delim_type_utf8(str, str_maxlen, *pos))) {
/* left only: compensate for index/change in direction */
if ((pos_orig - (*pos)) >= 1) {
if ((pos_orig - *pos) >= 1) {
*pos = pos_prev;
}
break;
@ -226,41 +226,45 @@ void BLI_str_cursor_step_utf8(const char *str,
}
}
bool BLI_str_cursor_step_next_utf32(const char32_t *str, size_t str_maxlen, int *pos)
bool BLI_str_cursor_step_next_utf32(const char32_t *str, const int str_maxlen, int *pos)
{
/* NOTE: Keep in sync with #BLI_str_cursor_step_next_utf8. */
BLI_assert(str_maxlen >= 0);
if ((*pos) >= (int)str_maxlen) {
if (*pos >= str_maxlen) {
return false;
}
do {
(*pos)++;
} while (*pos < (int)str_maxlen && str[*pos] != 0 && BLI_wcwidth_or_error(str[*pos]) == 0);
} while ((*pos < str_maxlen) && (str[*pos] != 0) && (BLI_wcwidth_or_error(str[*pos]) == 0));
return true;
}
bool BLI_str_cursor_step_prev_utf32(const char32_t *str, size_t UNUSED(str_maxlen), int *pos)
bool BLI_str_cursor_step_prev_utf32(const char32_t *str, const int str_maxlen, int *pos)
{
/* NOTE: Keep in sync with #BLI_str_cursor_step_prev_utf8. */
BLI_assert(str_maxlen >= 0);
UNUSED_VARS_NDEBUG(str_maxlen);
if ((*pos) <= 0) {
if (*pos <= 0) {
return false;
}
do {
(*pos)--;
} while (*pos > 0 && BLI_wcwidth_or_error(str[*pos]) == 0);
} while ((*pos > 0) && (BLI_wcwidth_or_error(str[*pos]) == 0));
return true;
}
void BLI_str_cursor_step_utf32(const char32_t *str,
size_t str_maxlen,
const int str_maxlen,
int *pos,
eStrCursorJumpDirection direction,
eStrCursorJumpType jump,
bool use_init_step)
{
BLI_assert(str_maxlen >= 0);
const int pos_orig = *pos;
if (direction == STRCUR_DIR_NEXT) {
@ -272,13 +276,13 @@ void BLI_str_cursor_step_utf32(const char32_t *str,
}
if (jump != STRCUR_JUMP_NONE) {
const eStrCursorDelimType delim_type = (*pos) < str_maxlen ?
const eStrCursorDelimType delim_type = (*pos < str_maxlen) ?
cursor_delim_type_unicode((uint)str[*pos]) :
STRCUR_DELIM_NONE;
/* jump between special characters (/,\,_,-, etc.),
* look at function cursor_delim_type_unicode() for complete
* list of special character, ctr -> */
while ((*pos) < str_maxlen) {
while (*pos < str_maxlen) {
if (BLI_str_cursor_step_next_utf32(str, str_maxlen, pos)) {
if ((jump != STRCUR_JUMP_ALL) &&
(delim_type != cursor_delim_type_unicode((uint)str[*pos]))) {
@ -300,19 +304,19 @@ void BLI_str_cursor_step_utf32(const char32_t *str,
}
if (jump != STRCUR_JUMP_NONE) {
const eStrCursorDelimType delim_type = (*pos) > 0 ?
const eStrCursorDelimType delim_type = (*pos > 0) ?
cursor_delim_type_unicode((uint)str[(*pos) - 1]) :
STRCUR_DELIM_NONE;
/* jump between special characters (/,\,_,-, etc.),
* look at function cursor_delim_type() for complete
* list of special character, ctr -> */
while ((*pos) > 0) {
while (*pos > 0) {
const int pos_prev = *pos;
if (BLI_str_cursor_step_prev_utf32(str, str_maxlen, pos)) {
if ((jump != STRCUR_JUMP_ALL) &&
(delim_type != cursor_delim_type_unicode((uint)str[*pos]))) {
/* left only: compensate for index/change in direction */
if ((pos_orig - (*pos)) >= 1) {
if ((pos_orig - *pos) >= 1) {
*pos = pos_prev;
}
break;
@ -330,8 +334,9 @@ void BLI_str_cursor_step_utf32(const char32_t *str,
}
void BLI_str_cursor_step_bounds_utf8(
const char *str, const size_t str_maxlen, const int pos, int *r_start, int *r_end)
const char *str, const int str_maxlen, const int pos, int *r_start, int *r_end)
{
BLI_assert(str_maxlen >= 0);
/* Identify the type of characters are on either side of the current cursor position. */
const eStrCursorDelimType prev = (pos > 0) ? cursor_delim_type_utf8(str, str_maxlen, pos - 1) :
STRCUR_DELIM_NONE;
@ -352,8 +357,9 @@ void BLI_str_cursor_step_bounds_utf8(
}
void BLI_str_cursor_step_bounds_utf32(
const char32_t *str, const size_t str_maxlen, const int pos, int *r_start, int *r_end)
const char32_t *str, const int str_maxlen, const int pos, int *r_start, int *r_end)
{
BLI_assert(str_maxlen >= 0);
/* Identify the type of characters are on either side of the current cursor position. */
const eStrCursorDelimType prev = (pos > 0) ? cursor_delim_type_unicode(str[pos - 1]) :
STRCUR_DELIM_NONE;

View File

@ -28,6 +28,8 @@
# pragma GCC diagnostic error "-Wsign-conversion"
#endif
#include "BLI_strict_flags.h"
/* -------------------------------------------------------------------- */
/** \name UTF8 Character Decoding (Skip & Mask Lookup)
*
@ -178,7 +180,7 @@ ptrdiff_t BLI_str_utf8_invalid_byte(const char *str, size_t length)
* we only add/subtract extra utf8 bytes in code below
* (ab number, aka number of bytes remaining in the utf8 sequence after the initial one). */
ab = utf8_char_compute_skip(c) - 1;
if (length <= ab) {
if (length <= (size_t)ab) {
goto utf8_error;
}
@ -855,7 +857,7 @@ size_t BLI_str_utf8_from_unicode(uint c, char *dst, const size_t dst_maxncpy)
dst[i] = (c & 0x3f) | 0x80;
c >>= 6;
}
dst[0] = c | first;
dst[0] = (char)(c | first);
return len;
}
@ -1061,7 +1063,7 @@ int BLI_str_utf8_offset_from_index(const char *str, const size_t str_len, const
UNUSED_VARS(code);
index++;
}
return offset;
return (int)offset;
}
int BLI_str_utf8_offset_to_column(const char *str, const size_t str_len, const int offset_target)

View File

@ -21,9 +21,7 @@
#include "DNA_listBase.h"
#ifdef __GNUC__
# pragma GCC diagnostic error "-Wsign-conversion"
#endif
#include "BLI_strict_flags.h"
/* -------------------------------------------------------------------- */
/** \name String Replace
@ -52,7 +50,7 @@ char *BLI_string_replaceN(const char *__restrict str,
if (str != match) {
/* Add the segment of the string from `str` to match to the buffer,
* then restore the value at match. */
BLI_dynstr_nappend(ds, str, (match - str));
BLI_dynstr_nappend(ds, str, (int)(match - str));
/* now our current position should be set on the start of the match */
str = match;
@ -113,17 +111,17 @@ bool BLI_string_replace_table_exact(char *string,
size_t BLI_string_replace_range(
char *string, size_t string_maxncpy, int src_beg, int src_end, const char *dst)
{
int string_len = strlen(string);
int string_len = (int)strlen(string);
BLI_assert(src_beg <= src_end);
BLI_assert(src_end <= string_len);
const int src_len = src_end - src_beg;
int dst_len = strlen(dst);
int dst_len = (int)strlen(dst);
if (src_len < dst_len) {
/* Grow, first handle special cases. */
/* Special case, the src_end is entirely clipped. */
if (UNLIKELY(string_maxncpy <= src_beg + dst_len)) {
if (UNLIKELY((int)string_maxncpy <= src_beg + dst_len)) {
/* There is only room for the destination. */
dst_len = ((int)string_maxncpy - src_beg) - 1;
string_len = src_end;
@ -132,7 +130,7 @@ size_t BLI_string_replace_range(
const int ofs = dst_len - src_len;
/* Clip the string when inserting the destination string exceeds `string_maxncpy`. */
if (string_len + ofs >= string_maxncpy) {
if (string_len + ofs >= (int)string_maxncpy) {
string_len = ((int)string_maxncpy - ofs) - 1;
string[string_len] = '\0';
BLI_assert(src_end <= string_len);
@ -177,7 +175,7 @@ size_t BLI_string_split_name_number(const char *name,
while (a--) {
if (name[a] == delim) {
r_name_left[a] = '\0'; /* truncate left part here */
*r_number = atol(name + a + 1);
*r_number = (int)atol(name + a + 1);
/* casting down to an int, can overflow for large numbers */
if (*r_number < 0) {
*r_number = 0;
@ -567,7 +565,7 @@ size_t BLI_string_join_array_by_sep_char(
char *BLI_string_join_arrayN(const char *strings[], uint strings_num)
{
const uint result_size = BLI_string_len_array(strings, strings_num) + 1;
const size_t result_size = BLI_string_len_array(strings, strings_num) + 1;
char *result = MEM_mallocN(sizeof(char) * result_size, __func__);
char *c = result;
for (uint i = 0; i < strings_num; i++) {
@ -583,8 +581,8 @@ char *BLI_string_join_arrayN(const char *strings[], uint strings_num)
char *BLI_string_join_array_by_sep_charN(char sep, const char *strings[], uint strings_num)
{
const uint result_size = BLI_string_len_array(strings, strings_num) +
(strings_num ? strings_num - 1 : 0) + 1;
const size_t result_size = BLI_string_len_array(strings, strings_num) +
(strings_num ? strings_num - 1 : 0) + 1;
char *result = MEM_mallocN(sizeof(char) * result_size, __func__);
char *c = result;
if (strings_num != 0) {
@ -607,7 +605,7 @@ char *BLI_string_join_array_by_sep_char_with_tableN(char sep,
const char *strings[],
uint strings_num)
{
uint result_size = 0;
size_t result_size = 0;
for (uint i = 0; i < strings_num; i++) {
result_size += strlen(strings[i]) + 1;
}