mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-12 07:26:15 +01:00
Fixing signedness in glib/giochannel.c
In file included from glib/glibconfig.h:9, from glib/gtypes.h:32, from glib/gquark.h:32, from glib/gerror.h:28, from glib/gconvert.h:32, from glib/giochannel.h:32, from glib/giochannel.c:37: glib/giochannel.c: In function ‘g_io_channel_write_chars’: glib/gmacros.h:351:26: error: comparison of integer expressions of different signedness: ‘gsize’ {aka ‘long unsigned int’} and ‘gssize’ {aka ‘long int’} [-Werror=sign-compare] #define MIN(a, b) (((a) < (b)) ? (a) : (b)) ^ glib/giochannel.c:2285:31: note: in expansion of macro ‘MIN’ gssize write_this = MIN (space_in_buf, count - wrote_bytes); ^~~ glib/gmacros.h:351:41: error: operand of ?: changes signedness from ‘gssize’ {aka ‘long int’} to ‘gsize’ {aka ‘long unsigned int’} due to unsignedness of other operand [-Werror=sign-compare] #define MIN(a, b) (((a) < (b)) ? (a) : (b)) ^~~ glib/giochannel.c:2285:31: note: in expansion of macro ‘MIN’ gssize write_this = MIN (space_in_buf, count - wrote_bytes); ^~~ glib/giochannel.c:2415:41: error: comparison of integer expressions of different signedness: ‘gssize’ {aka ‘long int’} and ‘gsize’ {aka ‘long unsigned int’} [-Werror=sign-compare] g_assert (count == from_buf_len - from_buf_old_len); ^~ glib/gmacros.h:455:25: note: in definition of macro ‘G_LIKELY’ #define G_LIKELY(expr) (expr) ^~~~ glib/giochannel.c:2415:25: note: in expansion of macro ‘g_assert’ g_assert (count == from_buf_len - from_buf_old_len); ^~~~~~~~
This commit is contained in:
parent
0fea1a4775
commit
2f9e6e977a
@ -2180,6 +2180,7 @@ g_io_channel_write_chars (GIOChannel *channel,
|
||||
gsize *bytes_written,
|
||||
GError **error)
|
||||
{
|
||||
gsize count_unsigned;
|
||||
GIOStatus status;
|
||||
gssize wrote_bytes = 0;
|
||||
|
||||
@ -2190,8 +2191,9 @@ g_io_channel_write_chars (GIOChannel *channel,
|
||||
|
||||
if ((count < 0) && buf)
|
||||
count = strlen (buf);
|
||||
|
||||
if (count == 0)
|
||||
count_unsigned = count;
|
||||
|
||||
if (count_unsigned == 0)
|
||||
{
|
||||
if (bytes_written)
|
||||
*bytes_written = 0;
|
||||
@ -2199,7 +2201,7 @@ g_io_channel_write_chars (GIOChannel *channel,
|
||||
}
|
||||
|
||||
g_return_val_if_fail (buf != NULL, G_IO_STATUS_ERROR);
|
||||
g_return_val_if_fail (count > 0, G_IO_STATUS_ERROR);
|
||||
g_return_val_if_fail (count_unsigned > 0, G_IO_STATUS_ERROR);
|
||||
|
||||
/* Raw write case */
|
||||
|
||||
@ -2210,7 +2212,8 @@ g_io_channel_write_chars (GIOChannel *channel,
|
||||
g_assert (!channel->write_buf || channel->write_buf->len == 0);
|
||||
g_assert (channel->partial_write_buf[0] == '\0');
|
||||
|
||||
status = channel->funcs->io_write (channel, buf, count, &tmp_bytes, error);
|
||||
status = channel->funcs->io_write (channel, buf, count_unsigned,
|
||||
&tmp_bytes, error);
|
||||
|
||||
if (bytes_written)
|
||||
*bytes_written = tmp_bytes;
|
||||
@ -2286,7 +2289,7 @@ g_io_channel_write_chars (GIOChannel *channel,
|
||||
|
||||
if (!channel->encoding)
|
||||
{
|
||||
gssize write_this = MIN (space_in_buf, count - wrote_bytes);
|
||||
gssize write_this = MIN (space_in_buf, count_unsigned - wrote_bytes);
|
||||
|
||||
g_string_append_len (channel->write_buf, buf, write_this);
|
||||
buf += write_this;
|
||||
@ -2306,7 +2309,7 @@ g_io_channel_write_chars (GIOChannel *channel,
|
||||
from_buf = channel->partial_write_buf;
|
||||
from_buf_old_len = strlen (channel->partial_write_buf);
|
||||
g_assert (from_buf_old_len > 0);
|
||||
from_buf_len = MIN (6, from_buf_old_len + count);
|
||||
from_buf_len = MIN (6, from_buf_old_len + count_unsigned);
|
||||
|
||||
memcpy (channel->partial_write_buf + from_buf_old_len, buf,
|
||||
from_buf_len - from_buf_old_len);
|
||||
@ -2314,7 +2317,7 @@ g_io_channel_write_chars (GIOChannel *channel,
|
||||
else
|
||||
{
|
||||
from_buf = buf;
|
||||
from_buf_len = count - wrote_bytes;
|
||||
from_buf_len = count_unsigned - wrote_bytes;
|
||||
from_buf_old_len = 0;
|
||||
}
|
||||
|
||||
@ -2404,7 +2407,7 @@ reconvert:
|
||||
memcpy (channel->partial_write_buf, from_buf, left_len);
|
||||
channel->partial_write_buf[left_len] = '\0';
|
||||
if (bytes_written)
|
||||
*bytes_written = count;
|
||||
*bytes_written = count_unsigned;
|
||||
return G_IO_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
@ -2416,12 +2419,12 @@ reconvert:
|
||||
* less than a full character
|
||||
*/
|
||||
|
||||
g_assert (count == from_buf_len - from_buf_old_len);
|
||||
g_assert (count_unsigned == from_buf_len - from_buf_old_len);
|
||||
|
||||
channel->partial_write_buf[from_buf_len] = '\0';
|
||||
|
||||
if (bytes_written)
|
||||
*bytes_written = count;
|
||||
*bytes_written = count_unsigned;
|
||||
|
||||
return G_IO_STATUS_NORMAL;
|
||||
}
|
||||
@ -2483,7 +2486,7 @@ reconvert:
|
||||
}
|
||||
|
||||
if (bytes_written)
|
||||
*bytes_written = count;
|
||||
*bytes_written = count_unsigned;
|
||||
|
||||
return G_IO_STATUS_NORMAL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user