Hi Paul,

Thanks for the clarification.  I guess then the actual problem may be even
more complicated than what has been discussed, as in my case, not all the
inner C struct's are wrapped by an RObject (such as a struct that
contains a datum of type BigNum).  (Yes, yes, probably I should have used
an "independent" C library that provides arbitrary-precision, hash,
etc...)

Regards,

Bill
============================================================================
Paul Brannan <pbrannan / atdesk.com> wrote:
>> But at any level, if that object that holds references to the inner
>> objects was not created using Data_Wrap_Struct(), there is no way for it
>> to mark the inner objects, is there?

> I think so.

> When I speak of creating an object, I mean allocating the memory for the
> object's data (when I think of an object, I think of a C++ object, not
> the entity that the VALUE is pointing to).

> When I speak of registering an object with the garbage collector, I mean
> wrapping it with a Ruby object.  The gargage collector then knows it is
> there and knows that the object must at some point be freed.

> It's confusing, because there are two objects (the RObject and the
> object that is being wrapped), and those objects act as a single unit.
> I can use clearer wording if I have better words to use.

> Paul