[fpc-pascal] dynamic array contents and system.move

Andrew Brunner andrew.t.brunner at gmail.com
Sat Apr 24 23:01:05 CEST 2010


David,

I don't see how you are not getting memory leaks by doing a move
before making sure that the destination buffer has the memory
allocated.  You see, in Delphi and FPC, move d/n actually move the
memory... It just copies it.

You were warned :-)

On Sat, Apr 24, 2010 at 3:01 PM, David Emerson <dle3ab at angelbase.com> wrote:
> cobines wrote:
>> David Emerson wrote:
>> > move (src.f_data, self.f_data, length(self.f_data) * sizeof(byte));
>>
>> I think it should be:
>>
>> SetLength(self.f_data, length(src.f_data));
>> move (src.f_data[0], self.f_data[0], length(self.f_data) * sizeof(byte));
>
> Well, the setlength is not necessary, and very nearly prevented me from noticing
> the real solution here, f_data[0] -- thanks very much, it is working now.
> (I have this feeling like I have asked this question before. d'oh.)
>
> ~David.
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>



More information about the fpc-pascal mailing list