summaryrefslogtreecommitdiffstats
path: root/luni/src/main/java/java/lang/Math.java
diff options
context:
space:
mode:
Diffstat (limited to 'luni/src/main/java/java/lang/Math.java')
-rw-r--r--luni/src/main/java/java/lang/Math.java28
1 files changed, 22 insertions, 6 deletions
diff --git a/luni/src/main/java/java/lang/Math.java b/luni/src/main/java/java/lang/Math.java
index 86df784..7203566 100644
--- a/luni/src/main/java/java/lang/Math.java
+++ b/luni/src/main/java/java/lang/Math.java
@@ -35,7 +35,9 @@ public final class Math {
*/
public static final double PI = 3.141592653589793;
- private static Random random;
+ private static class NoImagePreloadHolder {
+ private static final Random INSTANCE = new Random();
+ }
/**
* Prevents this class from being instantiated.
@@ -875,11 +877,25 @@ public final class Math {
*
* @return a pseudo-random number.
*/
- public static synchronized double random() {
- if (random == null) {
- random = new Random();
- }
- return random.nextDouble();
+ public static double random() {
+ return NoImagePreloadHolder.INSTANCE.nextDouble();
+ }
+
+ /**
+ * Set the seed for the pseudo random generator used by {@link #random()}
+ * and {@link #randomIntInternal()}.
+ *
+ * @hide for internal use only.
+ */
+ public static void setRandomSeedInternal(long seed) {
+ NoImagePreloadHolder.INSTANCE.setSeed(seed);
+ }
+
+ /**
+ * @hide for internal use only.
+ */
+ public static int randomIntInternal() {
+ return NoImagePreloadHolder.INSTANCE.nextInt();
}
/**