summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Withnall <philip.withnall@collabora.co.uk>2013-12-17 10:06:10 +0000
committerOlivier Crête <olivier.crete@collabora.com>2013-12-18 17:50:58 -0500
commit3e29fec4a959f2999a0f5a91561f5e798cd9bba2 (patch)
tree434cb8ee5c915d315ec5d4fc01ea92c246c66f3e
parent869093b34758646d915ef06a2473aa0b2c7432d1 (diff)
downloadlibnice-3e29fec4a959f2999a0f5a91561f5e798cd9bba2.tar.gz
stun: Fix a use of a function with an aggregate return value
div() has an aggregate return, which GCC doesn’t like, although this seems like a pretty pointless warning because div_t is the same size as a pointer on 64-bit platforms (probably) and hardly going to cause performance problems by passing it by value. Anyway, it seems easier to simplify the code by using explicit / and % operators inline, than it does to add pragmas and shut the warning up.
-rw-r--r--stun/stunmessage.c5
-rw-r--r--stun/usages/timer.c6
2 files changed, 5 insertions, 6 deletions
diff --git a/stun/stunmessage.c b/stun/stunmessage.c
index 874d3f1..b9c54e3 100644
--- a/stun/stunmessage.c
+++ b/stun/stunmessage.c
@@ -524,15 +524,14 @@ stun_message_append_error (StunMessage *msg, StunError code)
{
const char *str = stun_strerror (code);
size_t len = strlen (str);
- div_t d = div (code, 100);
uint8_t *ptr = stun_message_append (msg, STUN_ATTRIBUTE_ERROR_CODE, 4 + len);
if (ptr == NULL)
return STUN_MESSAGE_RETURN_NOT_ENOUGH_SPACE;
memset (ptr, 0, 2);
- ptr[2] = d.quot;
- ptr[3] = d.rem;
+ ptr[2] = code / 100;
+ ptr[3] = code % 100;
memcpy (ptr + 4, str, len);
return STUN_MESSAGE_RETURN_SUCCESS;
}
diff --git a/stun/usages/timer.c b/stun/usages/timer.c
index ce711c2..82f3ea2 100644
--- a/stun/usages/timer.c
+++ b/stun/usages/timer.c
@@ -88,9 +88,9 @@ static void stun_gettime (struct timeval *now)
static void add_delay (struct timeval *ts, unsigned delay)
{
- div_t d = div (delay, 1000);
- ts->tv_sec += d.quot;
- ts->tv_usec += d.rem * 1000;
+ /* Delay is in ms. */
+ ts->tv_sec += delay / 1000;
+ ts->tv_usec += (delay % 1000) * 1000;
while (ts->tv_usec > 1000000)
{