lib/rand: cleanup __fill_random_buffer()
[fio.git] / lib / rand.c
index 32aec208b6c6fc6a01f1cd1ed1301b157286638a..185b679e7c1365956cd80e40d433dc8fa41a951e 100644 (file)
@@ -72,23 +72,23 @@ void __fill_random_buf(void *buf, unsigned int len, unsigned long seed)
        void *ptr = buf;
 
        while (len) {
+               int this_len;
+
                if (len >= sizeof(int64_t)) {
                        *((int64_t *) ptr) = seed;
-                       ptr += sizeof(int64_t);
-                       len -= sizeof(int64_t);
+                       this_len = sizeof(int64_t);
                } else if (len >= sizeof(int32_t)) {
                        *((int32_t *) ptr) = seed;
-                       ptr += sizeof(int32_t);
-                       len -= sizeof(int32_t);
+                       this_len = sizeof(int32_t);
                } else if (len >= sizeof(int16_t)) {
                        *((int16_t *) ptr) = seed;
-                       ptr += sizeof(int16_t);
-                       len -= sizeof(int16_t);
+                       this_len = sizeof(int16_t);
                } else {
                        *((int8_t *) ptr) = seed;
-                       ptr += sizeof(int8_t);
-                       len -= sizeof(int8_t);
+                       this_len = sizeof(int8_t);
                }
+               ptr += this_len;
+               len -= this_len;
                seed *= GOLDEN_RATIO_PRIME;
                seed >>= 3;
        }