]> granicus.if.org Git - curl/commitdiff
timeval: typecast for better type (on Amiga)
authorChris Young <chris.young@unsatisfactorysoftware.co.uk>
Tue, 20 Jan 2015 07:53:14 +0000 (08:53 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 20 Jan 2015 07:53:14 +0000 (08:53 +0100)
There is an issue with conflicting "struct timeval" definitions with
certain AmigaOS releases and C libraries, depending on what gets
included when.  It's a minor difference - the OS one is unsigned,
whereas the common structure has signed elements.  If the OS one ends up
getting defined, this causes a timing calculation error in curl.

It's easy enough to resolve this at the curl end, by casting the
potentially errorneous calculation to a signed long.

lib/timeval.c

index 769eb3c49c561c767eeafc92a2149b6323e2f6c9..45731ac59f3db0f36343fad2c19e37f1933e3d83 100644 (file)
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -118,7 +118,7 @@ struct timeval curlx_tvnow(void)
 long curlx_tvdiff(struct timeval newer, struct timeval older)
 {
   return (newer.tv_sec-older.tv_sec)*1000+
-    (newer.tv_usec-older.tv_usec)/1000;
+    (long)(newer.tv_usec-older.tv_usec)/1000;
 }
 
 /*