我正在编写一个 Ruby 扩展并使用该函数Data_wrap_struct
。
为了参与 Ruby 的标记和清除垃圾收集过程,我需要定义一个例程来释放我的结构,以及一个例程来标记从我的结构到其他结构的任何引用。我通过经典free
函数来释放内存,但我不知道如何使用标记函数。
我的结构听起来像这样
typedef struct
{
int x;
int y;
} A;
typedef struct
{
A collection[10];
int current;
} B;
我认为我需要一个标记函数来标记collection
结构 B中的引用。
有人可以给我看一个例子来看看标记功能是如何工作的?