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 | 3ceb8dd77e9750449f20e01966b1b466741a922f (patch) | |
tree | 8d39a612424126f2b7aec25e9f149f518c44f085 /basic | |
parent | 476d5154563c7357c3f10069725dfcff5016712a (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 1d9333ff7555..bdbb22678bf3 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() ); |