diff options
Diffstat (limited to 'ext/dl/cfunc.c')
-rw-r--r-- | ext/dl/cfunc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ext/dl/cfunc.c b/ext/dl/cfunc.c index 20d3f53766..6110e14f55 100644 --- a/ext/dl/cfunc.c +++ b/ext/dl/cfunc.c @@ -43,8 +43,9 @@ rb_dl_set_win32_last_error(VALUE self, VALUE val) void -dlcfunc_free(struct cfunc_data *data) +dlcfunc_free(void *ptr) { + struct cfunc_data *data = ptr; if( data->name ){ xfree(data->name); } @@ -107,6 +108,13 @@ rb_dlcfunc_s_allocate(VALUE klass) return obj; } +int +rb_dlcfunc_kind_p(VALUE func) +{ + if (TYPE(func) == T_DATA) return 0; + return RDATA(func)->dfree == dlcfunc_free; +} + VALUE rb_dlcfunc_initialize(int argc, VALUE argv[], VALUE self) { |