From: John Lam Date: 2005-12-17T13:31:31+09:00 Subject: Class object creation and scope ------=_Part_17443_21779548.1134793880018 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline It appears that class objects (created via Class.new) are somewhat unusual. I'm trying to write some code to inject some non-Ruby data into these objects. I'm worried about what happens at GC time, so I need to use Data_Wrap_Struct() to create the class objects so that I can register my memory cleanup functions with Ruby. However, this technique doesn't seem to work. If I try to create a class object using: Data_Wrap_Struct(rb_cClass, 0, ReleaseClassObject, my_data); Ruby complains with a bizarre TypeError exception: "wrong argument type Class (expected Class)". I've tried some other workarounds involving the use of rb_define_alloc_func(), which works fine for non class objects, but there seems to be something special about how Ruby handles class objects. A secondary question: what's the lifetime of a class object in Ruby? Are these things ever garbage collected? Thanks -John http://www.iunknown.com ------=_Part_17443_21779548.1134793880018--