[Libreoffice-commits] core.git: basic/source
Stephan Bergmann
sbergman at redhat.com
Mon Jun 2 02:17:25 PDT 2014
basic/source/classes/sbxmod.cxx | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
New commits:
commit 6b4c596b01039324cfe78f38c4e3ffb9080bcd34
Author: Stephan Bergmann <sbergman at 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;
More information about the Libreoffice-commits
mailing list