[fpc-pascal] fpc 3.2: "Declaration of type TTypeList changed"

Luca Olivetti luca at ventoso.org
Thu Apr 25 22:23:19 CEST 2019


Hello,

as per the subject, I've been bitten by this change:

http://wiki.freepascal.org/User_Changes_Trunk#Declaration_of_type_TTypeList_changed


This code (FTasks is a specialization of TFPGList)

   for i:=0 to FTasks.Count-1 do
   begin
     FTasks.List^[i].rackData:=FindRack(FTasks[i].rack);
     FTasks.List^[i].cellData:=
         FindCell(FTasks[i].rackData,FTasks[i].cell);
   end;


worked before.

Now it compiles with no warnings but it segfaults.
(This is just an example, there are other instances where I use List^[] 
and they also segfault).


I changed the above code to be

     LocTask:=FTasks[i];
     LocTask.RackData:=...;
     LocTask.CellData:=....;
     FTasks[i]:=LocTask;


but I don't understand why the former implementation bombs. The change 
in the definition of TTypeList shouldn't have that effect, besides, as I 
said, I get no warning compiling the code (apart from the ton of 
messages about the assignment not inlined).

Bye
-- 
Luca



More information about the fpc-pascal mailing list