diff options
-rw-r--r-- | basic/inc/pch/precompiled_sb.hxx | 1 | ||||
-rw-r--r-- | basic/source/runtime/methods.cxx | 13 |
2 files changed, 7 insertions, 7 deletions
diff --git a/basic/inc/pch/precompiled_sb.hxx b/basic/inc/pch/precompiled_sb.hxx index 4c0ba1bb6e17..a7cd16b55efa 100644 --- a/basic/inc/pch/precompiled_sb.hxx +++ b/basic/inc/pch/precompiled_sb.hxx @@ -29,6 +29,7 @@ #include <com/sun/star/uno/XInterface.hpp> #include <com/sun/star/util/DateTime.hpp> #include <comphelper/processfactory.hxx> +#include <comphelper/random.hxx> #include <comphelper/string.hxx> #include <cstddef> #include <ctype.h> diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index fe2f00d3a178..2e3c375699b2 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -45,6 +45,7 @@ #include "errobject.hxx" #include <comphelper/processfactory.hxx> +#include <comphelper/random.hxx> #include <comphelper/string.hxx> #include <com/sun/star/uno/Sequence.hxx> @@ -3521,16 +3522,16 @@ RTLFUNC(Randomize) { StarBASIC::Error( SbERR_BAD_ARGUMENT ); } - sal_Int16 nSeed; + int nSeed; if( rPar.Count() == 2 ) { - nSeed = (sal_Int16)rPar.Get(1)->GetInteger(); + nSeed = (int)rPar.Get(1)->GetInteger(); } else { - nSeed = (sal_Int16)rand(); + nSeed = (int)time(NULL); } - srand( nSeed ); + comphelper::rng::seed( nSeed ); } RTLFUNC(Rnd) @@ -3544,9 +3545,7 @@ RTLFUNC(Rnd) } else { - double nRand = (double)rand(); - nRand = ( nRand / ((double)RAND_MAX + 1.0)); - rPar.Get(0)->PutDouble( nRand ); + rPar.Get(0)->PutDouble( comphelper::rng::uniform() ); } } |