diff options
Diffstat (limited to 'luni/src/main/java/java/lang/Math.java')
-rw-r--r-- | luni/src/main/java/java/lang/Math.java | 28 |
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(); } /** |