Describe the bug
In the screenshot below, we're trying to decode an XML file into a linear structure. Because there are recurring patterns, we want to extract the identical code into another procedure, which returns the parameters as key-value list, and call that procedure multiple times. There seems to be a problem with the highlighted indices: if the expression of the index is used instead, it creates a never-ending loop.
To Reproduce
Steps to reproduce the behavior:
Create a similar pocedure
Use the expression with the key-value list as index
See error
Expected behavior
The index should be evaluated instead of creating a never-ending loop.
Screenshots
Desktop (please complete the following information):
OS: 10x64
Version v1.1.5.2303
Additional context
Add any other context about the problem here.
(Do not write below this line)
DEVS' SECTION
ANALYSIS
A complete analysis is not possible without actually resolving the issue. We could track it down to a recursion from void getIndices(...) in indices.cpp into StringParser::StringParserRetVal StringParser::evalAndFormat(...) due to the string expression used here, which does not return any more. There might be two issues:
Jumping in this function erases the internal string vector vars afterwards, which might have additional negative consequences
The string parser might not be able to completely understand the string vector var (it might be a problem in the final calculation stack).
DESCRIPTION
Describe the bug In the screenshot below, we're trying to decode an XML file into a linear structure. Because there are recurring patterns, we want to extract the identical code into another procedure, which returns the parameters as key-value list, and call that procedure multiple times. There seems to be a problem with the highlighted indices: if the expression of the index is used instead, it creates a never-ending loop.
To Reproduce Steps to reproduce the behavior:
Expected behavior The index should be evaluated instead of creating a never-ending loop.
Screenshots
Desktop (please complete the following information):
Additional context Add any other context about the problem here.
(Do not write below this line)
DEVS' SECTION
ANALYSIS
A complete analysis is not possible without actually resolving the issue. We could track it down to a recursion from
void getIndices(...)
inindices.cpp
intoStringParser::StringParserRetVal StringParser::evalAndFormat(...)
due to the string expression used here, which does not return any more. There might be two issues:IMPLEMENTATION STEPS
(see also our Wiki for implementation guidelines)
DOCUMENTATION STEPS
(see also our Wiki for further information)
*.NHLP
and*.NDB
files, if needed)*.NLNG
files, if needed)PULL REQUEST