mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-28 11:17:46 +00:00
Remove previous variables from Watch List if TYPEs change
This commit is contained in:
parent
7c17c987cb
commit
7ab98a5a9e
2 changed files with 23 additions and 8 deletions
|
@ -510,6 +510,7 @@ FUNCTION ide2 (ignore)
|
|||
REDIM IdeSkipLines(iden) AS _BYTE
|
||||
variableWatchList$ = ""
|
||||
backupVariableWatchList$ = "": REDIM backupUsedVariableList(1000) AS usedVarList
|
||||
backupTypeDefinitions$ = ""
|
||||
watchpointList$ = ""
|
||||
callstacklist$ = "": callStackLength = 0
|
||||
ideunsaved = -1
|
||||
|
@ -608,6 +609,7 @@ FUNCTION ide2 (ignore)
|
|||
REDIM IdeSkipLines(iden) AS _BYTE
|
||||
variableWatchList$ = ""
|
||||
backupVariableWatchList$ = "": REDIM backupUsedVariableList(1000) AS usedVarList
|
||||
backupTypeDefinitions$ = ""
|
||||
watchpointList$ = ""
|
||||
callstacklist$ = "": callStackLength = 0
|
||||
IF ideStartAtLine > 0 AND ideStartAtLine <= iden THEN
|
||||
|
@ -6019,6 +6021,8 @@ FUNCTION ide2 (ignore)
|
|||
REDIM IdeBreakpoints(1) AS _BYTE
|
||||
REDIM IdeSkipLines(1) AS _BYTE
|
||||
variableWatchList$ = ""
|
||||
backupVariableWatchList$ = "": REDIM backupUsedVariableList(1000) AS usedVarList
|
||||
backupTypeDefinitions$ = ""
|
||||
watchpointList$ = ""
|
||||
callstacklist$ = "": callStackLength = 0
|
||||
idet$ = MKL$(0) + MKL$(0): idel = 1: ideli = 1: iden = 1: IdeBmkN = 0
|
||||
|
@ -6920,6 +6924,7 @@ SUB DebugMode
|
|||
IF result = 2 THEN
|
||||
variableWatchList$ = ""
|
||||
backupVariableWatchList$ = "": REDIM backupUsedVariableList(1000) AS usedVarList
|
||||
backupTypeDefinitions$ = ""
|
||||
FOR i = 1 TO totalVariablesCreated
|
||||
usedVariableList(i).watch = 0
|
||||
NEXT
|
||||
|
@ -8684,6 +8689,7 @@ FUNCTION idevariablewatchbox$(currentScope$, filter$, selectVar, returnAction)
|
|||
(IdeDebugMode > 0 AND focus = 7 AND info <> 0) THEN
|
||||
variableWatchList$ = ""
|
||||
backupVariableWatchList$ = "" 'used in case this program is edited in the same session
|
||||
backupTypeDefinitions$ = typeDefinitions$ 'store current TYPE definitions for later comparison
|
||||
longestVarName = 0
|
||||
nextvWatchDataSlot = 0
|
||||
totalVisibleVariables = 0
|
||||
|
@ -11928,6 +11934,7 @@ FUNCTION idefiledialog$(programname$, mode AS _BYTE)
|
|||
REDIM IdeSkipLines(iden) AS _BYTE
|
||||
variableWatchList$ = ""
|
||||
backupVariableWatchList$ = "": REDIM backupUsedVariableList(1000) AS usedVarList
|
||||
backupTypeDefinitions$ = ""
|
||||
callstacklist$ = "": callStackLength = 0
|
||||
|
||||
ideerror = 1
|
||||
|
|
|
@ -121,6 +121,7 @@ TYPE usedVarList
|
|||
END TYPE
|
||||
|
||||
REDIM SHARED backupUsedVariableList(1000) AS usedVarList
|
||||
DIM SHARED typeDefinitions$, backupTypeDefinitions$
|
||||
DIM SHARED totalVariablesCreated AS LONG, totalMainVariablesCreated AS LONG
|
||||
DIM SHARED bypassNextVariable AS _BYTE
|
||||
DIM SHARED totalWarnings AS LONG, warningListItems AS LONG, lastWarningHeader AS STRING
|
||||
|
@ -1464,6 +1465,7 @@ SelectCaseCounter = 0
|
|||
ExecCounter = 0
|
||||
UserDefineCount = 7
|
||||
totalVariablesCreated = 0
|
||||
typeDefinitions$ = ""
|
||||
totalMainVariablesCreated = 0
|
||||
REDIM SHARED usedVariableList(1000) AS usedVarList
|
||||
totalWarnings = 0
|
||||
|
@ -1962,9 +1964,9 @@ DO
|
|||
|
||||
IF validname(n$) = 0 THEN a$ = "Invalid name": GOTO errmes
|
||||
udtename(i2) = n$
|
||||
|
||||
udtecname(i2) = getelement$(ca$, 1)
|
||||
NormalTypeBlock:
|
||||
typeDefinitions$ = typeDefinitions$ + MKL$(i2) + MKL$(LEN(n$)) + n$
|
||||
udtetype(i2) = typ
|
||||
udtetypesize(i2) = typsize
|
||||
|
||||
|
@ -2092,10 +2094,12 @@ DO
|
|||
IF firstelement$ = "TYPE" THEN
|
||||
IF n <> 2 THEN a$ = "Expected TYPE typename": GOTO errmes
|
||||
lasttype = lasttype + 1
|
||||
typeDefinitions$ = typeDefinitions$ + MKL$(-1) + MKL$(lasttype)
|
||||
definingtype = lasttype
|
||||
i = definingtype
|
||||
WHILE i > UBOUND(udtenext): increaseUDTArrays: WEND
|
||||
IF validname(secondelement$) = 0 THEN a$ = "Invalid name": GOTO errmes
|
||||
typeDefinitions$ = typeDefinitions$ + MKL$(LEN(secondelement$)) + secondelement$
|
||||
udtxname(i) = secondelement$
|
||||
udtxcname(i) = getelement(ca$, 2)
|
||||
udtxnext(i) = 0
|
||||
|
@ -26155,14 +26159,18 @@ SUB manageVariableList (__name$, __cname$, localIndex AS LONG, action AS _BYTE)
|
|||
'this variable existed in a previous edit of this program
|
||||
'in this same session; let's preselect it.
|
||||
j = CVL(MID$(backupVariableWatchList$, found + LEN(temp$), 4))
|
||||
usedVariableList(i).watch = backupUsedVariableList(j).watch
|
||||
usedVariableList(i).watchRange = backupUsedVariableList(j).watchRange
|
||||
usedVariableList(i).indexes = backupUsedVariableList(j).indexes
|
||||
usedVariableList(i).elements = backupUsedVariableList(j).elements
|
||||
usedVariableList(i).elementTypes = backupUsedVariableList(j).elementTypes
|
||||
usedVariableList(i).elementOffset = backupUsedVariableList(j).elementOffset
|
||||
END IF
|
||||
|
||||
'if there have been changes in TYPEs, this variable won't be preselected
|
||||
IF (LEN(backupUsedVariableList(j).elements) > 0 AND backupTypeDefinitions$ = typeDefinitions$) OR _
|
||||
(LEN(backupUsedVariableList(j).elements) = 0) THEN
|
||||
usedVariableList(i).watch = backupUsedVariableList(j).watch
|
||||
usedVariableList(i).watchRange = backupUsedVariableList(j).watchRange
|
||||
usedVariableList(i).indexes = backupUsedVariableList(j).indexes
|
||||
usedVariableList(i).elements = backupUsedVariableList(j).elements
|
||||
usedVariableList(i).elementTypes = backupUsedVariableList(j).elementTypes
|
||||
usedVariableList(i).elementOffset = backupUsedVariableList(j).elementOffset
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
CASE ELSE 'find and mark as used
|
||||
IF found THEN
|
||||
|
|
Loading…
Reference in a new issue