summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorAndreas Bregas <ab@openoffice.org>2010-07-27 12:20:29 +0200
committerAndreas Bregas <ab@openoffice.org>2010-07-27 12:20:29 +0200
commit80e76b44a8b52de470051ce1e27a71870078a5aa (patch)
treee10260adbe2f6bdc10285ef0b8d4473c321b8dc5 /basic
parentb7d6f018da399d350d778acf0d76b210242b3939 (diff)
parent276e8f53828b362e82423863c41e6d17c8c2f782 (diff)
mib17: merge
Diffstat (limited to 'basic')
-rw-r--r--basic/source/classes/sbxmod.cxx8
-rw-r--r--basic/source/runtime/step0.cxx19
2 files changed, 16 insertions, 11 deletions
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index 0f52eef2d825..e42193ac2696 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -121,16 +121,16 @@ class DocObjectWrapper : public DocObjectWrapper_BASE
public:
DocObjectWrapper( SbModule* pMod );
- ~DocObjectWrapper();
+ virtual ~DocObjectWrapper();
virtual void SAL_CALL acquire() throw();
virtual void SAL_CALL release() throw();
- virtual Sequence< sal_Int8 > SAL_CALL getImplementationId()
- throw ( com::sun::star::uno::RuntimeException )
+ virtual Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (RuntimeException)
{
+ if( !m_xAggregateTypeProv.is() )
+ throw RuntimeException();
return m_xAggregateTypeProv->getImplementationId();
-
}
virtual Reference< XIntrospectionAccess > SAL_CALL getIntrospection( ) throw (RuntimeException);
diff --git a/basic/source/runtime/step0.cxx b/basic/source/runtime/step0.cxx
index bdbb22678bf3..29965c7e9da5 100644
--- a/basic/source/runtime/step0.cxx
+++ b/basic/source/runtime/step0.cxx
@@ -532,9 +532,10 @@ void SbiRuntime::StepSET_Impl( SbxVariableRef& refVal, SbxVariableRef& refVar, b
// Handle withevents
BOOL bWithEvents = refVar->IsSet( SBX_WITH_EVENTS );
- Reference< XInterface > xComListener;
- if( bWithEvents )
+ if ( bWithEvents )
{
+ Reference< XInterface > xComListener;
+
SbxBase* pObj = refVal->GetObject();
SbUnoObject* pUnoObj = (pObj != NULL) ? PTR_CAST(SbUnoObject,pObj) : NULL;
if( pUnoObj != NULL )
@@ -545,13 +546,17 @@ void SbiRuntime::StepSET_Impl( SbxVariableRef& refVal, SbxVariableRef& refVar, b
::rtl::OUString aPrefix = refVar->GetName();
SbxObjectRef xScopeObj = refVar->GetParent();
xComListener = createComListener( aControlAny, aVBAType, aPrefix, xScopeObj );
- }
- }
- *refVar = *refVal;
+ refVal->SetDeclareClassName( aDeclareClassName );
+ refVal->SetComListener( xComListener ); // Hold reference
+ }
- if( bWithEvents )
- refVar->SetComListener( xComListener ); // Hold reference
+ *refVar = *refVal;
+ }
+ else
+ {
+ *refVar = *refVal;
+ }
// lhs is a property who's value is currently (Empty e.g. no broadcast yet)
// in this case if there is a default prop involved the value of the