[rtems commit] Use uint32_t instead of long. Use unsigned defines ( Prevent overflows on 16bit targets)

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Apr 17 12:53:08 UTC 2013


On 04/17/2013 12:19 PM, Ralf Corsepius wrote:
[...]
> @@ -147,8 +147,8 @@ static uint32_t simple_random(uint32_t v)
>
>   static unsigned get_bucket_with_random(unsigned count, long random)
>   {
> -  long unsigned unit = (1U << 31) / count;
> -  long unsigned bucket = (long unsigned) random / unit;
> +  uint32_t unit = ((uint32_t) 1U << 31) / count;
> +  uint32_t bucket = (uint32_t) random / unit;
>
>     if (bucket != count) {
>       return bucket;

A long must be able to store a 32-bit integer so there is no need to use 
uint32_t here.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the devel mailing list