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
This commit is contained in:
parent
8e115c6008
commit
6b4c596b01
@ -2172,9 +2172,15 @@ void SbMethod::Broadcast( sal_uIntPtr nHintId )
|
|||||||
if( mpPar.Is() )
|
if( mpPar.Is() )
|
||||||
{
|
{
|
||||||
// Enrigister this as element 0, but don't reset the parent!
|
// 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 );
|
mpPar->PutDirect( pThisCopy, 0 );
|
||||||
SetParameters( NULL );
|
break;
|
||||||
|
}
|
||||||
|
SetParameters( NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
pCst = pSave;
|
pCst = pSave;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user