summaryrefslogtreecommitdiff
path: root/patches/vba/fix-vba-NOT-trigger-update.diff
diff options
context:
space:
mode:
Diffstat (limited to 'patches/vba/fix-vba-NOT-trigger-update.diff')
-rw-r--r--patches/vba/fix-vba-NOT-trigger-update.diff87
1 files changed, 0 insertions, 87 deletions
diff --git a/patches/vba/fix-vba-NOT-trigger-update.diff b/patches/vba/fix-vba-NOT-trigger-update.diff
deleted file mode 100644
index 63fe5e122..000000000
--- a/patches/vba/fix-vba-NOT-trigger-update.diff
+++ /dev/null
@@ -1,87 +0,0 @@
-diff --git basic/source/runtime/runtime.cxx basic/source/runtime/runtime.cxx
-index 5cec3e2..69c75b3 100644
---- basic/source/runtime/runtime.cxx
-+++ basic/source/runtime/runtime.cxx
-@@ -48,6 +48,8 @@
- #include "sbunoobj.hxx"
- #include "errobject.hxx"
-
-+SbxVariable* getDefaultProp( SbxVariable* pRef );
-+
- bool SbiRuntime::isVBAEnabled()
- {
- bool result = false;
-@@ -961,7 +963,25 @@ SbxVariable* SbiRuntime::GetTOS( short n
- void SbiRuntime::TOSMakeTemp()
- {
- SbxVariable* p = refExprStk->Get( nExprLvl - 1 );
-- if( p->GetRefCount() != 1 )
-+ if ( p->GetType() == SbxEMPTY )
-+ p->Broadcast( SBX_HINT_DATAWANTED );
-+
-+ SbxVariable* pDflt = NULL;
-+ if ( bVBAEnabled && ( p->GetType() == SbxOBJECT || p->GetType() == SbxVARIANT ) && ( pDflt = getDefaultProp( p ) ) )
-+ {
-+ pDflt->Broadcast( SBX_HINT_DATAWANTED );
-+ // replacing new p on stack causes object pointed by
-+ // pDft->pParent to be deleted, when p2->Compute() is
-+ // called below pParent is accessed ( but its deleted )
-+ // so set it to NULL now
-+ pDflt->SetParent( NULL );
-+ p = new SbxVariable( *pDflt );
-+ p->SetFlag( SBX_READWRITE );
-+ refExprStk->Put( p, nExprLvl - 1 );
-+// return;
-+ }
-+
-+ else if( p->GetRefCount() != 1 )
- {
- SbxVariable* pNew = new SbxVariable( *p );
- pNew->SetFlag( SBX_READWRITE );
-@@ -970,7 +990,6 @@ void SbiRuntime::TOSMakeTemp()
- }
-
- // Der GOSUB-Stack nimmt Returnadressen fuer GOSUBs auf
--
- void SbiRuntime::PushGosub( const BYTE* pc )
- {
- if( ++nGosubLvl > MAXRECURSION )
-diff --git basic/source/runtime/step0.cxx basic/source/runtime/step0.cxx
-index cbd2fad..0666725 100644
---- basic/source/runtime/step0.cxx
-+++ basic/source/runtime/step0.cxx
-@@ -59,34 +59,6 @@ void SbiRuntime::StepArith( SbxOperator
- TOSMakeTemp();
- SbxVariable* p2 = GetTOS();
-
--
-- // This could & should be moved to the MakeTempTOS() method in runtime.cxx
-- // In the code which this is cut'npaste from there is a check for a ref
-- // count != 1 based on which the copy of the SbxVariable is done.
-- // see orig code in MakeTempTOS ( and I'm not sure what the significance,
-- // of that is )
-- // here we alway seem to have a refcount of 1. Also it seems that
-- // MakeTempTOS is called for other operation, so I hold off for now
-- // until I have a better idea
-- if ( bVBAEnabled
-- && ( p2->GetType() == SbxOBJECT || p2->GetType() == SbxVARIANT )
-- )
-- {
-- SbxVariable* pDflt = getDefaultProp( p2 );
-- if ( pDflt )
-- {
-- pDflt->Broadcast( SBX_HINT_DATAWANTED );
-- // replacing new p2 on stack causes object pointed by
-- // pDft->pParent to be deleted, when p2->Compute() is
-- // called below pParent is accessed ( but its deleted )
-- // so set it to NULL now
-- pDflt->SetParent( NULL );
-- p2 = new SbxVariable( *pDflt );
-- p2->SetFlag( SBX_READWRITE );
-- refExprStk->Put( p2, nExprLvl - 1 );
-- }
-- }
--
- p2->ResetFlag( SBX_FIXED );
- p2->Compute( eOp, *p1 );
-