[Lazarus] Runtime error: INCLOCKED (BUG)
Santiago A.
svaa at ciberpiula.net
Fri May 11 11:36:51 CEST 2018
El 29/04/2018 a las 19:38, Vojtěch Čihák via Lazarus escribió:
>
> Hi,
>
>
>
> I changed line 7:
>
>
>
> TElement = record
>
> strr: String;
>
> end;
>
> TList = array[0..1] of TElement; //HERE
>
> Plist = ^TList;
>
>
>
> and demo works. Simply, static and dynamic arrays are not the same.
>
> AFAIR, dynamic array is just pointer while static array are data.
>
> I guess someone else will give you more detailed answer.
>
Yes, but I think that it should be considered a FPC bug
TList = array of TElement;
Plist = ^TList;
TSetting = record
list: Plist;
end;
const
_List: array [0..1] of TElement = (
(strr: 'a'),
(strr: 'b'));
_Settings: array [0..0] of TSetting = (
(list: @_List)); // <=== This line should rise a compiler error.
You are asigning a pointer to an static array to a pointer to a dynamic
array.
-------------------
You could add a type cast of the pointer to Plist
_Settings: array [0..0] of TSetting = (
(list: Plist(@_List) ));
You explicitly tell the complier to bypass type check, it is up to deal
with this potential dangerous
>
>
> V.
>
> ______________________________________________________________
> > Od: Valdas Jankūnas via Lazarus
> > Komu: Lazarus at lists.lazarus-ide.org
> > Datum: 29.04.2018 18:16
> > Předmět: [Lazarus] Runtime error: INCLOCKED
> >
>
>
> type
> TElement = record
> strr: String;
> end;
> TList = array of TElement;
> Plist = ^TList;
> .....
>
> Why I getting that error? Something wrong with records and constant
> initialization?
>
> My system is: Linux 4.13.0-39-generic #44-Ubuntu SMP Thu Apr 5
> 14:25:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
> FPC (from SVN): 3.1.1 [2018/02/21] for x86_64
> --
> Valdas Jankūnas
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus-ide.org
> https://lists.lazarus-ide.org/listinfo/lazarus
>
>
--
Saludos
Santiago A.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20180511/6c3c22da/attachment.html>
More information about the Lazarus
mailing list