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 Adrian Pop)

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)

BadClassDiagram.mo (4.0 MB ) - added by Adrian Pop 5 years ago.

Change History (5)

by Adrian Pop, 5 years ago

Attachment: BadClassDiagram.mo added

comment:1 by Adrian Pop, 5 years ago

Reported by AKIO NATORI via OpenModelica list.

comment:2 by Adrian Pop, 5 years ago

Description: modified (diff)

comment:4 by Martin Sjölund, 5 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.