diff options
Diffstat (limited to 'libappstream-glib/as-utils.c')
-rw-r--r-- | libappstream-glib/as-utils.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/libappstream-glib/as-utils.c b/libappstream-glib/as-utils.c index a3317fe..c959677 100644 --- a/libappstream-glib/as-utils.c +++ b/libappstream-glib/as-utils.c @@ -1626,9 +1626,9 @@ as_utils_string_replace (GString *string, const gchar *search, const gchar *repl { gchar *tmp; guint count = 0; - guint search_idx = 0; - guint replace_len; - guint search_len; + gsize search_idx = 0; + gsize replace_len; + gsize search_len; g_return_val_if_fail (string != NULL, 0); g_return_val_if_fail (search != NULL, 0); @@ -1638,8 +1638,8 @@ as_utils_string_replace (GString *string, const gchar *search, const gchar *repl if (string->len == 0) return 0; - search_len = (guint) strlen (search); - replace_len = (guint) strlen (replace); + search_len = strlen (search); + replace_len = strlen (replace); do { tmp = g_strstr_len (string->str + search_idx, -1, search); @@ -1647,16 +1647,19 @@ as_utils_string_replace (GString *string, const gchar *search, const gchar *repl break; /* advance the counter in case @replace contains @search */ - search_idx = (guint) (tmp - string->str); + search_idx = (gsize) (tmp - string->str); /* reallocate the string if required */ if (search_len > replace_len) { - g_string_erase (string, search_idx, - search_len - replace_len); + g_string_erase (string, + (gssize) search_idx, + (gssize) (search_len - replace_len)); memcpy (tmp, replace, replace_len); } else if (search_len < replace_len) { - g_string_insert_len (string, search_idx, replace, - replace_len - search_len); + g_string_insert_len (string, + (gssize) search_idx, + replace, + (gssize) (replace_len - search_len)); /* we have to treat this specially as it could have * been reallocated when the insertion happened */ memcpy (string->str + search_idx, replace, replace_len); |