Kaydet (Commit) 6b4c596b authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Fix memory leak for BASIC sub (as well as void function)

d88593af "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
üst 8e115c60
...@@ -2172,9 +2172,15 @@ void SbMethod::Broadcast( sal_uIntPtr nHintId ) ...@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment