mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[DOC] mention rb_define_alloc_func [ci skip]
This commit is contained in:
parent
e2b2b577b6
commit
8f755ad6c8
2 changed files with 27 additions and 24 deletions
|
@ -698,7 +698,8 @@ Cの世界で定義されたデータ(構造体)をRubyのオブジェクトと
|
|||
このマクロの戻り値は生成されたオブジェクトを表すVALUE値です.
|
||||
|
||||
klassはこのオブジェクトのクラスです.klassは, Objectクラスか
|
||||
ら派生し, 必ずrb_undef_alloc_func(klass)を呼び出してください.
|
||||
ら派生し, 必ずrb_define_alloc_funcかrb_undef_alloc_funcを呼
|
||||
び出してallocatorを設定してください.
|
||||
|
||||
data_typeはこの構造体をRubyが管理するための情報を記述した
|
||||
const rb_data_type_t型へのポインタです.
|
||||
|
@ -708,16 +709,16 @@ rb_data_type_tは次のように定義されています.
|
|||
typedef struct rb_data_type_struct rb_data_type_t;
|
||||
|
||||
struct rb_data_type_struct {
|
||||
const char *wrap_struct_name;
|
||||
struct {
|
||||
void (*dmark)(void*);
|
||||
void (*dfree)(void*);
|
||||
size_t (*dsize)(const void *);
|
||||
void *reserved[2];
|
||||
} function;
|
||||
const rb_data_type_t *parent;
|
||||
void *data;
|
||||
VALUE flags;
|
||||
const char *wrap_struct_name;
|
||||
struct {
|
||||
void (*dmark)(void*);
|
||||
void (*dfree)(void*);
|
||||
size_t (*dsize)(const void *);
|
||||
void *reserved[2];
|
||||
} function;
|
||||
const rb_data_type_t *parent;
|
||||
void *data;
|
||||
VALUE flags;
|
||||
};
|
||||
|
||||
wrap_struct_nameはこの構造体を識別する名前です.主に統計情報
|
||||
|
|
|
@ -657,8 +657,10 @@ with the next macro.
|
|||
|
||||
TypedData_Wrap_Struct() returns a created Ruby object as a VALUE.
|
||||
|
||||
The klass argument is the class for the object. It is recommended
|
||||
that klass derives from rb_cObject.
|
||||
The klass argument is the class for the object. The klass should
|
||||
derive from rb_cObject, and the allocator must be set by calling
|
||||
rb_define_alloc_func or rb_undef_alloc_func.
|
||||
|
||||
data_type is a pointer to a const rb_data_type_t which describes
|
||||
how Ruby should manage the struct.
|
||||
|
||||
|
@ -668,17 +670,17 @@ member of the struct.
|
|||
typedef struct rb_data_type_struct rb_data_type_t;
|
||||
|
||||
struct rb_data_type_struct {
|
||||
const char *wrap_struct_name;
|
||||
struct {
|
||||
void (*dmark)(void*);
|
||||
void (*dfree)(void*);
|
||||
size_t (*dsize)(const void *);
|
||||
void (*dcompact)(void*);
|
||||
void *reserved[1];
|
||||
} function;
|
||||
const rb_data_type_t *parent;
|
||||
void *data;
|
||||
VALUE flags;
|
||||
const char *wrap_struct_name;
|
||||
struct {
|
||||
void (*dmark)(void*);
|
||||
void (*dfree)(void*);
|
||||
size_t (*dsize)(const void *);
|
||||
void (*dcompact)(void*);
|
||||
void *reserved[1];
|
||||
} function;
|
||||
const rb_data_type_t *parent;
|
||||
void *data;
|
||||
VALUE flags;
|
||||
};
|
||||
|
||||
wrap_struct_name is an identifier of this instance of the struct.
|
||||
|
|
Loading…
Add table
Reference in a new issue