summaryrefslogtreecommitdiff
path: root/basic/source/runtime/runtime.cxx
diff options
context:
space:
mode:
authorRĂ¼diger Timm <rt@openoffice.org>2004-11-15 15:37:32 +0000
committerRĂ¼diger Timm <rt@openoffice.org>2004-11-15 15:37:32 +0000
commit6da4d12ee857bdeeac218f8ea735bfb9d664d4ea (patch)
tree3e6568b68a6db2e40add58cd41f80361247874f6 /basic/source/runtime/runtime.cxx
parentce9999c97399df2ff04ef36d78f33440871c54c3 (diff)
INTEGRATION: CWS texteng03 (1.16.10); FILE MERGED
2004/11/04 10:52:55 ab 1.16.10.1: #118235# Maintain For Level in runtime and Gosub Stack
Diffstat (limited to 'basic/source/runtime/runtime.cxx')
-rw-r--r--basic/source/runtime/runtime.cxx13
1 files changed, 6 insertions, 7 deletions
diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx
index a2aed22514a7..fd939cb8653c 100644
--- a/basic/source/runtime/runtime.cxx
+++ b/basic/source/runtime/runtime.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: runtime.cxx,v $
*
- * $Revision: 1.18 $
+ * $Revision: 1.19 $
*
- * last change: $Author: obo $ $Date: 2004-11-15 13:29:32 $
+ * last change: $Author: rt $ $Date: 2004-11-15 16:37:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -97,11 +97,6 @@ void StarBASIC::StaticEnableReschedule( BOOL bReschedule )
}
-struct SbiGosubStack { // GOSUB-Stack:
- SbiGosubStack* pNext; // Chain
- const BYTE* pCode; // Return-Pointer
-};
-
struct SbiArgvStack { // Argv stack:
SbiArgvStack* pNext; // Stack Chain
SbxArrayRef refArgv; // Argv
@@ -541,6 +536,7 @@ SbiRuntime::SbiRuntime( SbModule* pm, SbMethod* pe, USHORT nStart )
nArgc =
nError =
nGosubLvl =
+ nForLvl =
nOps = 0;
refExprStk = new SbxArray;
#if defined GCC
@@ -875,6 +871,7 @@ void SbiRuntime::PushGosub( const BYTE* pc )
SbiGosubStack* p = new SbiGosubStack;
p->pCode = pc;
p->pNext = pGosubStk;
+ p->nStartForLvl = nForLvl;
pGosubStk = p;
}
@@ -949,6 +946,7 @@ void SbiRuntime::PushFor()
SbxVariableRef xBgn = PopVar();
p->refVar = PopVar();
*(p->refVar) = *xBgn;
+ nForLvl++;
}
// Poppen des FOR-Stacks
@@ -960,6 +958,7 @@ void SbiRuntime::PopFor()
SbiForStack* p = pForStk;
pForStk = p->pNext;
delete p;
+ nForLvl--;
}
}