1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-04 04:50:22 +00:00

Hopefully fixes the mysterious missing vwatchlabel bug.

This commit is contained in:
FellippeHeitor 2021-08-24 23:33:10 -03:00
parent 3aff84bba8
commit 8d479ee8ea

View file

@ -784,7 +784,7 @@ DIM SHARED currentid AS LONG 'is the index of the last ID accessed
DIM SHARED linenumber AS LONG, reallinenumber AS LONG, totallinenumber AS LONG, definingtypeerror AS LONG DIM SHARED linenumber AS LONG, reallinenumber AS LONG, totallinenumber AS LONG, definingtypeerror AS LONG
DIM SHARED wholeline AS STRING DIM SHARED wholeline AS STRING
DIM SHARED firstLineNumberLabelvWatch AS LONG, lastLineNumberLabelvWatch AS LONG DIM SHARED firstLineNumberLabelvWatch AS LONG, lastLineNumberLabelvWatch AS LONG
DIM SHARED vWatchUsedLabels AS STRING DIM SHARED vWatchUsedLabels AS STRING, vWatchUsedSkipLabels AS STRING
DIM SHARED linefragment AS STRING DIM SHARED linefragment AS STRING
'COMMON SHARED bitmask() AS _INTEGER64 'COMMON SHARED bitmask() AS _INTEGER64
'COMMON SHARED bitmaskinv() AS _INTEGER64 'COMMON SHARED bitmaskinv() AS _INTEGER64
@ -1466,6 +1466,7 @@ emptySCWarning = 0
warningListItems = 0 warningListItems = 0
lastWarningHeader = "" lastWarningHeader = ""
vWatchUsedLabels = SPACE$(1000) vWatchUsedLabels = SPACE$(1000)
vWatchUsedSkipLabels = SPACE$(1000)
firstLineNumberLabelvWatch = 0 firstLineNumberLabelvWatch = 0
REDIM SHARED warning$(1000) REDIM SHARED warning$(1000)
REDIM SHARED warningLines(1000) AS LONG REDIM SHARED warningLines(1000) AS LONG
@ -5316,6 +5317,7 @@ DO
FOR i = firstLineNumberLabelvWatch TO lastLineNumberLabelvWatch FOR i = firstLineNumberLabelvWatch TO lastLineNumberLabelvWatch
WHILE i > LEN(vWatchUsedLabels) WHILE i > LEN(vWatchUsedLabels)
vWatchUsedLabels = vWatchUsedLabels + SPACE$(1000) vWatchUsedLabels = vWatchUsedLabels + SPACE$(1000)
vWatchUsedSkipLabels = vWatchUsedSkipLabels + SPACE$(1000)
WEND WEND
IF ASC(vWatchUsedLabels, i) = 1 THEN IF ASC(vWatchUsedLabels, i) = 1 THEN
PRINT #12, " case " + str2$(i) + ":" PRINT #12, " case " + str2$(i) + ":"
@ -5331,7 +5333,7 @@ DO
PRINT #12, "VWATCH_SKIPLINE:;" PRINT #12, "VWATCH_SKIPLINE:;"
PRINT #12, "switch (*__LONG_VWATCH_GOTO) {" PRINT #12, "switch (*__LONG_VWATCH_GOTO) {"
FOR i = firstLineNumberLabelvWatch TO lastLineNumberLabelvWatch FOR i = firstLineNumberLabelvWatch TO lastLineNumberLabelvWatch
IF ASC(vWatchUsedLabels, i) = 1 THEN IF ASC(vWatchUsedSkipLabels, i) = 1 THEN
PRINT #12, " case -" + str2$(i) + ":" PRINT #12, " case -" + str2$(i) + ":"
PRINT #12, " goto VWATCH_SKIPLABEL_" + str2$(i) + ";" PRINT #12, " goto VWATCH_SKIPLABEL_" + str2$(i) + ";"
PRINT #12, " break;" PRINT #12, " break;"
@ -14307,12 +14309,14 @@ SUB vWatchAddLabel (this AS LONG, lastLine AS _BYTE)
IF lastLine = 0 THEN IF lastLine = 0 THEN
WHILE this > LEN(vWatchUsedLabels) WHILE this > LEN(vWatchUsedLabels)
vWatchUsedLabels = vWatchUsedLabels + SPACE$(1000) vWatchUsedLabels = vWatchUsedLabels + SPACE$(1000)
vWatchUsedSkipLabels = vWatchUsedSkipLabels + SPACE$(1000)
WEND WEND
IF firstLineNumberLabelvWatch = 0 THEN IF firstLineNumberLabelvWatch = 0 THEN
firstLineNumberLabelvWatch = this firstLineNumberLabelvWatch = this
ELSE ELSE
IF prevSkip <> prevLabel THEN IF prevSkip <> prevLabel THEN
ASC(vWatchUsedSkipLabels, prevLabel) = 1
PRINT #12, "VWATCH_SKIPLABEL_" + str2$(prevLabel) + ":;" PRINT #12, "VWATCH_SKIPLABEL_" + str2$(prevLabel) + ":;"
prevSkip = prevLabel prevSkip = prevLabel
END IF END IF
@ -14326,6 +14330,7 @@ SUB vWatchAddLabel (this AS LONG, lastLine AS _BYTE)
END IF END IF
ELSE ELSE
IF prevSkip <> prevLabel THEN IF prevSkip <> prevLabel THEN
ASC(vWatchUsedSkipLabels, prevLabel) = 1
PRINT #12, "VWATCH_SKIPLABEL_" + str2$(prevLabel) + ":;" PRINT #12, "VWATCH_SKIPLABEL_" + str2$(prevLabel) + ":;"
prevSkip = prevLabel prevSkip = prevLabel
END IF END IF
@ -14355,7 +14360,7 @@ SUB closemain
PRINT #12, "VWATCH_SKIPLINE:;" PRINT #12, "VWATCH_SKIPLINE:;"
PRINT #12, "switch (*__LONG_VWATCH_GOTO) {" PRINT #12, "switch (*__LONG_VWATCH_GOTO) {"
FOR i = firstLineNumberLabelvWatch TO lastLineNumberLabelvWatch FOR i = firstLineNumberLabelvWatch TO lastLineNumberLabelvWatch
IF ASC(vWatchUsedLabels, i) = 1 THEN IF ASC(vWatchUsedSkipLabels, i) = 1 THEN
PRINT #12, " case -" + str2$(i) + ":" PRINT #12, " case -" + str2$(i) + ":"
PRINT #12, " goto VWATCH_SKIPLABEL_" + str2$(i) + ";" PRINT #12, " goto VWATCH_SKIPLABEL_" + str2$(i) + ";"
PRINT #12, " break;" PRINT #12, " break;"