[fpc-devel] Now sure why this raises Runtime Error 216

Ozz Nixon ozznixon at gmail.com
Fri Jan 7 01:51:22 CET 2022


Just incase someone needs to know: (public release, not a custom build).
Free Pascal Compiler version 3.0.4 [2017/10/06] for i386
Copyright (c) 1993-2017 by Florian Klaempfl and others
C:\FPC\3.0.4\bin\i386-Win32\fpc.exe [options] <inputfile> [options]

On Thu, Jan 6, 2022 at 6:50 PM Ozz Nixon <ozznixon at gmail.com> wrote:

> Without SetLength(var,0) at the end I get Runtime Error 216 once, adding
> those - assuming FPC now required me to zero out those fields, I now get
> the error twice.
>
> Code:
> Program MakePrompts;
>
> Type
>    Language_File = Record
>       Description:Array of Char; {null terminated string}
>       Enabled:Boolean;
>       SecurityLevel:Byte;        {zero to 255, 255 is reserved for SYSOP}
>       Flags:Longint;             {32 Flags - A..Z,1..6}
>       MenuPath:Array of Char;
>       TextPath:Array of Char;
>       QuestPath:Array of Char;
>    End;
>
> Var
>    L:Language_File;
>
> Procedure Make_Language_File(
>    Description,MenuPath,TextPath,QuestPath:String;
>    Enabled:Boolean;SecurityLevel:Byte;Flags:Longint);
> Var
>    FileSize:Longint;
>
> Begin
>    Writeln('Language_File empty size is ',SizeOf(L));
>    FileSize:=0;
>    Description:=Description+#0;
>    Inc(FileSize,Length(Description));
>    MenuPath:=MenuPath+#0;
>    Inc(FileSize,Length(MenuPath));
>    TextPath:=TextPath+#0;
>    Inc(FileSize,Length(TextPath));
>    QuestPath:=QuestPath+#0;
>    Inc(FileSize,Length(QuestPath));
>    SetLength(L.Description,Length(Description));
>    SetLength(L.MenuPath,Length(MenuPath));
>    SetLength(L.TextPath,Length(TextPath));
>    SetLength(L.QuestPath,Length(QuestPath));
>    Move(Description[1],L.Description,Length(Description));
>    Move(MenuPath[1],L.MenuPath,Length(MenuPath));
>    Move(TextPath[1],L.TextPath,Length(TextPath));
>    Move(QuestPath[1],L.QuestPath,Length(QuestPath));
>    L.Enabled:=Enabled;
>    L.SecurityLevel:=SecurityLevel;
>    L.Flags:=Flags;
>    Inc(FileSize,6);
>    Writeln('Language_File size is ',FileSize);
>    SetLength(L.Description,0);
>    SetLength(L.MenuPath,0);
>    SetLength(L.TextPath,0);
>    SetLength(L.QuestPath,0);
> End;
>
> Begin
>    Make_Language_File('English (c) 2022 by Ozz
> Nixon','%ROOTPATH%\MENUS\','%ROOTPATH%\TXTFILES\','%ROOTPATH%\QUESTION\',True,0,0);
> End.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20220106/053a68fa/attachment.htm>


More information about the fpc-devel mailing list