summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorAndreas Bregas <ab@openoffice.org>2010-07-16 11:06:18 +0200
committerAndreas Bregas <ab@openoffice.org>2010-07-16 11:06:18 +0200
commit56cc458ab5e5a47553b6b8d5742d1fc67206fc7c (patch)
tree1ea9fb717f67e5bf5a75380f8965f63dd4bd4b89 /basic
parent178380e2d221a8340f760cb6ba5e226434a6c090 (diff)
mib17: #162980# Force Broadcast in StepIS for SbxEmpty
Diffstat (limited to 'basic')
-rw-r--r--basic/source/runtime/step0.cxx18
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() );