[Newbies] Re: Proper object removal
Bert Freudenberg
bert at freudenbergs.de
Wed Jun 4 10:12:59 UTC 2008
On 04.06.2008, at 10:32, Klaus D. Witzel wrote:
> On Wed, 04 Jun 2008 09:55:11 +0200, Norbert Hartl wrote:
>
>> The objects are still referenced in the collection you get
>> from self selected. The line with "each := nil" is useless
>> as each is only a temporary variable.
>
> Not 100% useless, since temporary variables (and arguments, for that
> matter) survive any attempt, from within the same method, to garbage
> collect them:
>
> {'this ', 'and ', 'that'} collect: [:each | ].
> Smalltalk garbageCollect.
> {thisContext tempAt: 1} inspect
>
> first line: create some object and make a temp var point to it.
> second line: invoke GC.
> third line: see what's still pointed to by the temp var.
Yikes. Klaus, please keep the hair-splitting to squeak-dev if possible.
Assigning to a block parameter is just wrong. Setting temps to nil is
unnecessary in any normal method. If your code actually needs to worry
about this, then you left the beginner playground.
Rob: Here's a recipe to find out what is keeping your instances from
being garbage-collected:
http://wiki.squeak.org/squeak/2631
- Bert -
More information about the Beginners
mailing list