Kaydet (Commit) 36493607 authored tarafından Eike Rathke's avatar Eike Rathke

Simplify the IsObject()/GetObject() logic here

Change-Id: I816b15b6795b4946b1bfed0d1f6d103a6a1aba4f
üst d1cd68fa
...@@ -2371,21 +2371,14 @@ void SbRtl_IsObject(StarBASIC *, SbxArray & rPar, bool) ...@@ -2371,21 +2371,14 @@ void SbRtl_IsObject(StarBASIC *, SbxArray & rPar, bool)
else else
{ {
SbxVariable* pVar = rPar.Get(1); SbxVariable* pVar = rPar.Get(1);
SbxBase* pObj = pVar->GetObject(); bool bObject = pVar->IsObject();
SbxBase* pObj = (bObject ? pVar->GetObject() : nullptr);
// #100385: GetObject can result in an error, so reset it
SbxBase::ResetError();
SbUnoClass* pUnoClass; SbUnoClass* pUnoClass;
bool bObject;
if( pObj && ( pUnoClass=dynamic_cast<SbUnoClass*>( pObj) ) != nullptr ) if( pObj && ( pUnoClass=dynamic_cast<SbUnoClass*>( pObj) ) != nullptr )
{ {
bObject = pUnoClass->getUnoClass().is(); bObject = pUnoClass->getUnoClass().is();
} }
else
{
bObject = pVar->IsObject();
}
rPar.Get( 0 )->PutBool( bObject ); rPar.Get( 0 )->PutBool( bObject );
} }
} }
......
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