44件ヒット
[1-44件を表示]
(0.263秒)
キーワード
-
Data
_ Make _ Struct (11) -
Data
_ Wrap _ Struct (11) -
rb
_ data _ object _ alloc (11)
検索結果
先頭4件
- MACRO RUBY
_ DATA _ FUNC(func) - VALUE rb
_ data _ object _ alloc(VALUE klass , void *datap , RUBY _ DATA _ FUNC dmark , RUBY _ DATA _ FUNC dfree) - VALUE Data
_ Make _ Struct(VALUE klass , type , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , type *svar) - VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval)
-
MACRO RUBY
_ DATA _ FUNC(func) (44200.0) -
任意の関数へのポインタ func を struct RData の dmark/dfree の 値として適する型に強制キャストします。
...任意の関数へのポインタ func を struct RData の dmark/dfree の
値として適する型に強制キャストします。... -
VALUE rb
_ data _ object _ alloc(VALUE klass , void *datap , RUBY _ DATA _ FUNC dmark , RUBY _ DATA _ FUNC dfree) (6600.0) -
datap をラップするオブジェクトを生成し、返します。 そのクラスは klass となり、datap をマークするときは dmark、解放するときは dfree を使うようになります。
...
datap をラップするオブジェクトを生成し、返します。
そのクラスは klass となり、datap をマークするときは
dmark、解放するときは dfree を使うようになります。... -
VALUE Data
_ Make _ Struct(VALUE klass , type , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , type *svar) (6530.0) -
type 型の構造体をヒープに割り当ててそれへのポインタを svar に代入し、クラス klass のインスタンスである Ruby のオブジェクトを生成し、それを返します。mark free はそれぞれマーク用・解放用の関数へのポインタです。 どちらも、必要ないときはかわりに 0 を渡します。
...へのポインタです。
どちらも、必要ないときはかわりに 0 を渡します。
また RUBY_DATA_FUNC の定義は以下のようです。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には svar の値が渡されます。
使用例
struct mytype {......int i;
char *s;
};
VALUE
my_s_new(klass)
VALUE klass;
{
struct mytype *dummy;
return Data_Make_Struct(MyClass, struct mytype,
mark_my, free_my, dummy);
}... -
VALUE Data
_ Wrap _ Struct(VALUE klass , RUBY _ DATA _ FUNC mark , RUBY _ DATA _ FUNC free , void *sval) (6530.0) -
C の構造体 sval をラップして klass クラスの インスタンスである Ruby オブジェクトを生成し、それを返します。 mark、free はそれぞれ sval のマーク用・解放用の 関数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
...数へのポインタです。どちらも、必要ないときはかわりに 0 を渡します。
また RUBY_DATA_FUNC の定義は以下のようです。
typedef void (*RUBY_DATA_FUNC)(void *st)
第一引数 st には sval が渡されます。
使用例
struct mytype {
int......i;
char *s;
};
VALUE
my_s_new(klass)
VALUE klass;
{
struct mytype *m = malloc(sizeof(struct mytype));
m->i = 0;
m->s = 0;
return Data_Wrap_Struct(MyClass, 0, free_my, m);
}...