Author: pfg
Date: Tue May 31 23:25:11 2016
New Revision: 1746363

URL: http://svn.apache.org/viewvc?rev=1746363&view=rev
Log:
RAND(): Destroy the random pool after seeding.

We are using rtl_random() only for seeding, we can save some memory here.

Modified:
    openoffice/trunk/main/sc/source/core/tool/interpr1.cxx

Modified: openoffice/trunk/main/sc/source/core/tool/interpr1.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/core/tool/interpr1.cxx?rev=1746363&r1=1746362&r2=1746363&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/core/tool/interpr1.cxx (original)
+++ openoffice/trunk/main/sc/source/core/tool/interpr1.cxx Tue May 31 23:25:11 
2016
@@ -1679,15 +1679,16 @@ void ScInterpreter::ScRandom()
 {
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "pfg", 
"ScInterpreter::ScRandom" );
 
-    static rtlRandomPool aPool = rtl_random_createPool();
     static sal_Bool SqSeeded = sal_False;
     static sal_uInt32 ScCNG, ScXS = 362436069;
 
     // Seeding for the PRNG
     if (SqSeeded == sal_False) {
+        rtlRandomPool aPool = rtl_random_createPool();
         rtl_random_getBytes(aPool, &ScCNG, sizeof(ScCNG));
         rtl_random_getBytes(aPool, &nScRandomQ,
                             sizeof(nScRandomQ[0]) * SCRANDOMQ_SIZE);
+        rtl_random_destroyPool(aPool);
         SqSeeded = sal_True;
         }
     PushDouble(static_cast<double>(KISS) / SAL_MAX_UINT32);


Reply via email to