on line 605 of OPT.Mod typ := impCtxt.ref[-tag] read let's say, 19, i.

e. int64 typ, but because in procedure Close set to NIL everything upper
than FirstRef, which is 16, that's why obj.typ was not set in InStruct,
which caused crash later.
for now fixed by starting to NIL array from Comp + 1, not from FirstRef.
changing FirstRef causes crashes, which I did not investigate yet.

-- noch
This commit is contained in:
norayr 2015-03-12 21:39:13 +04:00
parent fb960f552f
commit 42ecf2464c
3 changed files with 1 additions and 1 deletions

View file

@ -200,7 +200,7 @@ VAR i: INTEGER;
BEGIN (* garbage collection *)
CloseScope;
i := 0; WHILE i < maxImps DO GlbMod[i] := NIL; INC(i) END ;
i := FirstRef; WHILE i < maxStruct DO impCtxt.ref[i] := NIL; impCtxt.old[i] := NIL; INC(i) END
i := (*FirstRef*)Comp + 1; WHILE i < maxStruct DO impCtxt.ref[i] := NIL; impCtxt.old[i] := NIL; INC(i) END
END Close;
PROCEDURE FindImport*(mod: Object; VAR res: Object);

BIN
voc

Binary file not shown.

Binary file not shown.