[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37221] branches/soc-2011-onion/intern/ smoke/intern/MERSENNETWISTER.h: fixed signed/ unsigned warning in MERSENNETWISTER.h
Jason Wilkins
Jason.A.Wilkins at gmail.com
Sun Jun 5 22:22:25 CEST 2011
Revision: 37221
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37221
Author: jwilkins
Date: 2011-06-05 20:22:24 +0000 (Sun, 05 Jun 2011)
Log Message:
-----------
fixed signed/unsigned warning in MERSENNETWISTER.h
casting uint32 to int32 is safe for loBits because the value is 0 or 1, which is less than LONG_MAX
casting 0 or 1 back to uint32 is guaranteed by the standard to result in 0 or 0xFFFFFFFF (respectively)
so, same results, but no warning
extra parens for readability
had to add int32 type to be used in this one place
Modified Paths:
--------------
branches/soc-2011-onion/intern/smoke/intern/MERSENNETWISTER.h
Modified: branches/soc-2011-onion/intern/smoke/intern/MERSENNETWISTER.h
===================================================================
--- branches/soc-2011-onion/intern/smoke/intern/MERSENNETWISTER.h 2011-06-05 19:57:11 UTC (rev 37220)
+++ branches/soc-2011-onion/intern/smoke/intern/MERSENNETWISTER.h 2011-06-05 20:22:24 UTC (rev 37221)
@@ -73,6 +73,7 @@
// Data
public:
typedef unsigned long uint32; // unsigned integer type, at least 32 bits
+ typedef signed long int32; // signed integer type, at least 32 bits
enum { N = 624 }; // length of state vector
enum { SAVE = N + 1 }; // length of array for save()
@@ -132,7 +133,7 @@
uint32 mixBits( const uint32& u, const uint32& v ) const
{ return hiBit(u) | loBits(v); }
uint32 twist( const uint32& m, const uint32& s0, const uint32& s1 ) const
- { return m ^ (mixBits(s0,s1)>>1) ^ (-loBit(s1) & 0x9908b0dfUL); }
+ { return m ^ (mixBits(s0,s1)>>1) ^ ((uint32)(-(int32)loBit(s1)) & 0x9908b0dfUL); }
static uint32 hash( time_t t, clock_t c );
};
More information about the Bf-blender-cvs
mailing list