[glib: 3/6] Fix signedness warning in glib/ghostutils.c




commit affa41179a29c3ff5322ae902a7d7ee794d1ef25
Author: Emmanuel Fleury <emmanuel fleury gmail com>
Date:   Fri May 14 11:26:39 2021 +0200

    Fix signedness warning in glib/ghostutils.c
    
    glib/ghostutils.c: In function 'punycode_encode':
    glib/ghostutils.c:141:35: warning: comparison of integer expressions of different signedness: 'guint' 
{aka 'unsigned int'} and 'glong' {aka 'long int'}
       for (j = num_basic_chars = 0; j < input_length; j++)
                                       ^
    glib/ghostutils.c:158:24: warning: comparison of integer expressions of different signedness: 'guint' 
{aka 'unsigned int'} and 'glong' {aka 'long int'}
       while (handled_chars < input_length)
                            ^
    glib/ghostutils.c:161:36: warning: comparison of integer expressions of different signedness: 'guint' 
{aka 'unsigned int'} and 'glong' {aka 'long int'}
           for (m = G_MAXUINT, j = 0; j < input_length; j++)
                                        ^
    glib/ghostutils.c:172:21: warning: comparison of integer expressions of different signedness: 'guint' 
{aka 'unsigned int'} and 'glong' {aka 'long int'}
           for (j = 0; j < input_length; j++)
                         ^

 glib/ghostutils.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/glib/ghostutils.c b/glib/ghostutils.c
index dff4a1997..24a7d37bb 100644
--- a/glib/ghostutils.c
+++ b/glib/ghostutils.c
@@ -128,15 +128,18 @@ punycode_encode (const gchar *input_utf8,
 {
   guint delta, handled_chars, num_basic_chars, bias, j, q, k, t, digit;
   gunichar n, m, *input;
-  glong input_length;
+  glong written_chars;
+  gsize input_length;
   gboolean success = FALSE;
 
   /* Convert from UTF-8 to Unicode code points */
   input = g_utf8_to_ucs4 (input_utf8, input_utf8_length, NULL,
-                         &input_length, NULL);
+                         &written_chars, NULL);
   if (!input)
     return FALSE;
 
+  input_length = (gsize) (written_chars > 0 ? written_chars : 0);
+
   /* Copy basic chars */
   for (j = num_basic_chars = 0; j < input_length; j++)
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]