mcalha / jasmin

Jasmin Assembly emulator
6 stars 0 forks source link

Bug no reconhecimento de rótulos #6

Open ghost opened 7 years ago

ghost commented 7 years ago

Ao criar um ficheiro novo, colar código de um dos trabalhos de arquitetura, fazer undo e colar outra vez o mesmo código o jasmin avisa que todos os rótulos já estão definidos umas linhas abaixo do fim do código.

ghost commented 7 years ago

Quantas mais vezes eu faço undo e colo o código o numero das linhas em que os rótulos estão já definidos aumenta.

ulissesferreira commented 7 years ago

Isto ocorre nesta ultima versão master ou com a ultima que o professor forneceu, 1.4.1 que está no branch stable? Experimenta nos dois lados só para sabermos se foi um bug induzido pelos updates do outro Jasmin original... (dúvido, porque tive bastante cuidado mas pelo sim pelo não...)

ghost commented 7 years ago

Ocorre na ultima versão master mas vou experimentar agora com a stable já reporto o resultado.

ghost commented 7 years ago

Na versão stable ocorre o mesmo, até com os comandos. No caso dos comandos o jasmin indica que são comandos desconhecidos.

ghost commented 7 years ago

Se eu realizar a ação descrita no 1º comentário algumas vezes o NetBeans acusa um NullPointerException na thread AWT-EventQueue-0 começando na classe SyntaxHighlighter, mais precisamente, no método parseLine. Estará em anexo uma foto para melhor compreensão. nullexception

ghost commented 7 years ago

Nós podemos ter encontrado uma possível causa deste problema. Após verificação intensiva de vários métodos do código do jasmin reparámos que os hashMaps e/ou os HashSets do syntaxHighlighter podem estar a guardar labels que já foram apagadas pelo undo mas que continuam a ser declaradas como existentes dentro das hashes.

mcalha commented 7 years ago

Isso é muito interessante. Adicionem uns breakpoints para ver como respondem essas estruturas de dados.