Garbage collection

I think this is a simple question but I just down’t know where to find
the answer. Any help would be appreciated.

I have the following code:

class MMR
attr_accessor :id, :name, :cap

@@header = []

def initHeader(fld)
@@header = fld
end

def initInstance(fld, cap=0)
@@header.each_with_index {|fn, i| send("#{fn}=", fld[i])}
self
end
end

MMR.new.initHeader([‘id’, ‘name’, ‘cap’])

The above line instanciates an MMR object and initializes @@header.

My question is, since I don’t have a variable pointing to this newly

instantiated MMR object, can it be removed by the garbage collector?

Is this dangerous?

When I run the program it works just fine but I’m afraid it may not

@lst << MMR.new.initHeader([‘1’, ‘disk1’, ‘1073741824’])
@lst << MMR.new.initHeader([‘2’, ‘disk2’, ‘10737418240’])

Thanks
Hector

On Jan 26, 2012, at 8:04, Hector Q. [email protected] wrote:

MMR.new.initHeader([‘id’, ‘name’, ‘cap’])

The above line instanciates an MMR object and initializes @@header.

My question is, since I don’t have a variable pointing to this newly

instantiated MMR object, can it be removed by the garbage collector?

Is this dangerous?

It is assigning a class var, so you do have an active reference to it:
the MMR class. Unless you make the class get collected (hard to do), it
is safe for the span of your program’s run.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs