From: Jian Lin Date: 2010-05-20T19:17:31+09:00 Subject: Re: method returning a hash, is the hash in the heap? Robert Klemme wrote: > The lifetime of an instance is more accurately described as "from its > creation until GC decides to remove it". Of course, the earliest > point in time when GC can decide to remove it is after the last > reference to the instance has gone. (Note there is a special case > with WeakReference but I don't want to complicate things too much > initially. There are also ways to access an instance during the period > between "last ref gone" and "GC removed it" via ObjectSpace but this > is not something you should rely on.) yes, because previous, I was thinking that any local variables will get erased and the stack will shrink, so in this case, the hash seems valid and it is actually a new object creation, something that is like a malloc()... and it resides in the heap. for the WeakReference... the wiki explanation is "weakly reachable"... I thought it can be garbage collected when there is not usable reference that can reach that object... but what if it is still "reachable, but weakly", then it can still be garbage collected? Then won't the reference to it and its usage cause a segmentation fault or similar error? -- Posted via http://www.ruby-forum.com/.