Opened 5 years ago
Closed 5 years ago
#5949 closed defect (fixed)
SimpleModelicaParser does stack overflow on huge arrays
Reported by: | Adrian Pop | Owned by: | Martin Sjölund |
---|---|---|---|
Priority: | high | Milestone: | 1.16.0 |
Component: | Parser | Version: | |
Keywords: | Cc: |
Description (last modified by )
Basically it does diffModelicaFileListings
on a file with a *HUGE* diagram annotation.
This needs to be rewritten somehow so that it doesn't blow up the stack:
elseif id==TokenId.LBRACE then (tokens, tree) := scan(tokens, tree, TokenId.LBRACE); (tokens, tree, b) := LA1(tokens, tree, {TokenId.RBRACE}); // Easier than checking First(expression), etc if not b then (tokens, tree) := function_arguments(tokens, tree); end if; (tokens, tree) := scan(tokens, tree, TokenId.RBRACE);
Attachments (1)
Change History (5)
by , 5 years ago
Attachment: | BadClassDiagram.mo added |
---|
comment:1 by , 5 years ago
comment:2 by , 5 years ago
Description: | modified (diff) |
---|
comment:3 by , 5 years ago
The problem is that function_arguments is self recursive:
https://github.com/OpenModelica/OpenModelica/blob/master/OMCompiler/Compiler/Parsers/SimpleModelicaParser.mo#L1300
comment:4 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Reported by AKIO NATORI via OpenModelica list.