[fpc-pascal] How are Assigned, Free, Nil and Destroy related?
Mark Morgan Lloyd
markMLl.fpc-pascal at telemetry.co.uk
Sat Oct 22 11:01:10 CEST 2011
Felipe Monteiro de Carvalho wrote:
> Free is how you release the memory allocated for a object. Free calls
> Destroy. Never call Destroy manually. When you implement the
> destructor you always implement Destroy, never change Free.
A number of years ago, Matthew Jones's wife looked over his shoulder and
caught him using Create and Destroy. "Bit violent, isn't it?" When he
told the story somebody else pointed out that he should be using Create
and Free, I find this anecdote makes it easy to remember.
> Nil is not a routine, it is a value, it means that the object is
> empty, it does not exist / is not allocated. Nil in existing
> implementations that I know is represented by the value zero.
I've once seen a compiler using a non-zero value, I think it was the
first Logitech protected-mode Modula-2 and it used ffff:0000. Apart from
that I think that C specifies that nil has a bit pattern of all zeros,
and anything with even the slightest interest in compatibility sticks to
this as a convention.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the fpc-pascal
mailing list