diff options
author | Andreas Bregas <ab@openoffice.org> | 2010-07-16 11:06:18 +0200 |
---|---|---|
committer | Andreas Bregas <ab@openoffice.org> | 2010-07-16 11:06:18 +0200 |
commit | 56cc458ab5e5a47553b6b8d5742d1fc67206fc7c (patch) | |
tree | 1ea9fb717f67e5bf5a75380f8965f63dd4bd4b89 /basic | |
parent | 178380e2d221a8340f760cb6ba5e226434a6c090 (diff) |
mib17: #162980# Force Broadcast in StepIS for SbxEmpty
Diffstat (limited to 'basic')
-rw-r--r-- | basic/source/runtime/step0.cxx | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/basic/source/runtime/step0.cxx b/basic/source/runtime/step0.cxx index 2c576e07f6..e3f4db74c3 100644 --- a/basic/source/runtime/step0.cxx +++ b/basic/source/runtime/step0.cxx @@ -312,9 +312,21 @@ void SbiRuntime::StepIS() { SbxVariableRef refVar1 = PopVar(); SbxVariableRef refVar2 = PopVar(); - BOOL bRes = BOOL( - refVar1->GetType() == SbxOBJECT - && refVar2->GetType() == SbxOBJECT ); + + SbxDataType eType1 = refVar1->GetType(); + SbxDataType eType2 = refVar2->GetType(); + if ( eType1 == SbxEMPTY ) + { + refVar1->Broadcast( SBX_HINT_DATAWANTED ); + eType1 = refVar1->GetType(); + } + if ( eType2 == SbxEMPTY ) + { + refVar2->Broadcast( SBX_HINT_DATAWANTED ); + eType2 = refVar2->GetType(); + } + + BOOL bRes = BOOL( eType1 == SbxOBJECT && eType2 == SbxOBJECT ); if ( bVBAEnabled && !bRes ) Error( SbERR_INVALID_USAGE_OBJECT ); bRes = ( bRes && refVar1->GetObject() == refVar2->GetObject() ); |