Move multiple calls to random() out of parameter lists so that the
evaluation order is consistent across compilers.



git-svn-id: http://skia.googlecode.com/svn/trunk@2173 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/points.cpp b/gm/points.cpp
index ff535cd..4aa6597 100644
--- a/gm/points.cpp
+++ b/gm/points.cpp
@@ -28,8 +28,14 @@
     }
 
     static void fill_pts(SkPoint pts[], size_t n, SkRandom* rand) {
-        for (size_t i = 0; i < n; i++)
-            pts[i].set(rand->nextUScalar1() * 640, rand->nextUScalar1() * 480);
+        for (size_t i = 0; i < n; i++) {
+            // Compute these independently and store in variables, rather
+            // than in the parameter-passing expression, to get consistent
+            // evaluation order across compilers.
+            float y = rand->nextUScalar1() * 480;
+            float x = rand->nextUScalar1() * 640;
+            pts[i].set(x, y);
+        }
     }
 
     virtual void onDraw(SkCanvas* canvas) {
diff --git a/gm/strokerects.cpp b/gm/strokerects.cpp
index 29d8cb0..44c0120 100644
--- a/gm/strokerects.cpp
+++ b/gm/strokerects.cpp
@@ -38,9 +38,11 @@
         SkScalar y = rand.nextUScalar1() * H;
         SkScalar w = rand.nextUScalar1() * (W >> 2);
         SkScalar h = rand.nextUScalar1() * (H >> 2);
+        SkScalar hoffset = rand.nextSScalar1();
+        SkScalar woffset = rand.nextSScalar1();
         
         r->set(x, y, x + w, y + h);
-        r->offset(-w/2 + rand.nextSScalar1(), -h/2 +  + rand.nextSScalar1());
+        r->offset(-w/2 + woffset, -h/2 + hoffset);
     }
 
     virtual void onDraw(SkCanvas* canvas) {
diff --git a/gm/strokes.cpp b/gm/strokes.cpp
index 862a517..d8b21b2 100644
--- a/gm/strokes.cpp
+++ b/gm/strokes.cpp
@@ -25,9 +25,11 @@
     SkScalar y = rand.nextUScalar1() * H;
     SkScalar w = rand.nextUScalar1() * (W >> 2);
     SkScalar h = rand.nextUScalar1() * (H >> 2);
+    SkScalar hoffset = rand.nextSScalar1();
+    SkScalar woffset = rand.nextSScalar1();
     
     r->set(x, y, x + w, y + h);
-    r->offset(-w/2 + rand.nextSScalar1(), -h/2 +  + rand.nextSScalar1());
+    r->offset(-w/2 + woffset, -h/2 + hoffset);
     
     paint->setColor(rand.nextU());
     paint->setAlpha(0xFF);