basic/source/classes/sbxmod.cxx |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 6b4c596b01039324cfe78f38c4e3ffb9080bcd34
Author: Stephan Bergmann <sberg...@redhat.com>
Date:   Mon Jun 2 11:12:11 2014 +0200

    Fix memory leak for BASIC sub (as well as void function)
    
    d88593af59d9126cdbcd6c0a5b06fb9c673dc6f9 "INTEGRATION: CWS ab34: #i73457#
    Prevent sub from beeing set as param 0 for return type void" to fix i#73457
    "Memory Leak in all Basic type void Method calls" had made the PutDirect 
call
    dependent on != SbxVOID only (which would cover void functions) but not 
also on
    != SbxEMPTY (which would apparently be required to also cover subs, as seen 
with
    CppunitTest_basic_vba run under lsan).  Either this was an oversight with 
the
    original fix, or subs have meanwhile changed from GetType() == SbxVOID to
    SbxEMPTY?
    
    Change-Id: I3e5dbf79bfd5eea3cfec8ed3fa984d13167aa501

diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index 078a4f9..6713e4b 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -2172,9 +2172,15 @@ void SbMethod::Broadcast( sal_uIntPtr nHintId )
         if( mpPar.Is() )
         {
             // Enrigister this as element 0, but don't reset the parent!
-            if( GetType() != SbxVOID )
+            switch( GetType() ) {
+            case SbxEMPTY:
+            case SbxVOID:
+                break;
+            default:
                 mpPar->PutDirect( pThisCopy, 0 );
-               SetParameters( NULL );
+                break;
+            }
+            SetParameters( NULL );
         }
 
         pCst = pSave;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to