summaryrefslogtreecommitdiff
path: root/libappstream-glib/as-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'libappstream-glib/as-utils.c')
-rw-r--r--libappstream-glib/as-utils.c23
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);