Re: Fwd: What to do to get new users

Nikolay Nikolov via fpc-pascal <[email protected]>
Newsgroups gmane.comp.compilers.free-pascal.general
Message-ID <[email protected]>
On 1/24/25 3:21 AM, Hairy Pixels via fpc-pascal wrote:
> On Jan 24, 2025 at 2:10:53 AM, Santi via fpc-pascal 
> <[email protected]> wrote:
>> procedure foo()
>> var
>>  s1: TStringList;
>>  s2: TStringList;
>>  s3: TStringList;
>> begin
>>  s1:=TStringList.create;
>>  try
>>    s2:=TStringList.create;
>>    try
>>      s3:=TStringList.create;
>>      try
>>        doWhatever(s1,s2,s3)
>>      finally
>>        s3.free;
>>      end;
>>    finally
>>      s2.free;
>>    end;
>>  finally
>>   s1.free;
>>  end
>> end; 
>
> Honestly this is the worst memory management strategy I've seen in any 
> language. It's more keywords than code! It was Delphi’s idea right? If 
> you’re making some UI app in 2025 a garbage collector or full ARC is 
> perfectly fine so I don’t see how they get away with selling this.

Maybe because there's a much better way to write it:

procedure foo();
var
   s1: TStringList = nil;
   s2: TStringList = nil;
   s3: TStringList = nil;
begin
   try
     s1:=TStringList.create;
     s2:=TStringList.create;
     s3:=TStringList.create;
     doWhatever(s1,s2,s3);
   finally
     FreeAndNil(s3);
     FreeAndNil(s2);
     FreeAndNil(s1);
   end;
end;

Best regards,

Nikolay

_______________________________________________
fpc-pascal maillist  -  [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.