25 *wrap = (addrnum !=
func) ? func : 0;
59 return data ?
sizeof(*data) + data->
size : 0;
96 memset(ptr,0,(
size_t)size);
110 else if (val ==
Qnil) {
153 if (
rb_scan_args(argc, argv,
"12", &ptr, &size, &sym) >= 1) {
155 if (addrnum != ptr) wrap =
ptr;
172 data->
wrap[1] = funcwrap;
208 rb_bug(
"rb_dlptr_s_malloc");
379 rb_bug(
"rb_dlptr_to_str");
502 retval =
INT2NUM(*((
char *)data->
ptr + offset));
510 rb_bug(
"rb_dlptr_aref()");
527 VALUE arg0, arg1, arg2;
535 switch(
rb_scan_args(argc, argv,
"21", &arg0, &arg1, &arg2) ){
553 memcpy((
char *)data->
ptr + offset, mem, len);
557 rb_bug(
"rb_dlptr_aset()");
620 if (num == val) wrap = 0;
RUBY_EXTERN VALUE rb_cString
static VALUE rb_dlptr_minus(VALUE self, VALUE other)
int rb_dlcfunc_kind_p(VALUE func)
VALUE rb_dlptr_eql(VALUE self, VALUE other)
static VALUE rb_dlptr_s_malloc(int argc, VALUE argv[], VALUE klass)
void rb_bug(const char *fmt,...)
static VALUE rb_dlptr_to_i(VALUE self)
void rb_define_singleton_method(VALUE obj, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a singleton method for obj.
VALUE rb_dlptr_new(void *ptr, long size, freefunc_t func)
#define TypedData_Get_Struct(obj, type, data_type, sval)
static VALUE rb_dlptr_inspect(VALUE self)
SSL_METHOD *(* func)(void)
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
void rb_raise(VALUE exc, const char *fmt,...)
static VALUE rb_dlptr_size_set(VALUE self, VALUE size)
static VALUE rb_dlptr_free_set(VALUE self, VALUE val)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
VALUE rb_obj_is_kind_of(VALUE, VALUE)
VALUE rb_dlptr_aref(int argc, VALUE argv[], VALUE self)
VALUE rb_tainted_str_new2(const char *)
void rb_gc_mark(VALUE ptr)
#define GetOpenFile(obj, fp)
VALUE rb_dlptr_ptr(VALUE self)
static VALUE rb_dlptr_s_to_ptr(VALUE self, VALUE val)
#define RB_TYPE_P(obj, type)
VALUE rb_dlcfunc_new(void(*func)(), int type, const char *name, ID calltype)
static void dlptr_free(void *ptr)
RUBY_EXTERN VALUE rb_cObject
static void dlptr_mark(void *ptr)
static VALUE rb_dlptr_to_value(VALUE self)
void rb_define_const(VALUE, const char *, VALUE)
static VALUE rb_dlptr_s_allocate(VALUE klass)
static VALUE rb_dlptr_plus(VALUE self, VALUE other)
VALUE rb_dlptr_malloc(long size, freefunc_t func)
VALUE rb_check_funcall(VALUE, ID, int, VALUE *)
VALUE rb_dlptr_aset(int argc, VALUE argv[], VALUE self)
VALUE rb_sprintf(const char *format,...)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static VALUE rb_dlptr_to_s(int argc, VALUE argv[], VALUE self)
static const rb_data_type_t dlptr_data_type
void * ruby_xmalloc(size_t size)
static freefunc_t get_freefunc(VALUE func, volatile VALUE *wrap)
static size_t dlptr_memsize(const void *ptr)
static VALUE rb_dlptr_free_get(VALUE self)
static VALUE rb_dlptr_initialize(int argc, VALUE argv[], VALUE self)
static VALUE rb_dlptr_size_get(VALUE self)
static Bigint * diff(Bigint *a, Bigint *b)
#define TypedData_Make_Struct(klass, type, data_type, sval)
VALUE rb_dlptr_ref(VALUE self)
FILE * rb_io_stdio_file(rb_io_t *fptr)
#define StringValuePtr(v)
VALUE rb_dlptr_null_p(VALUE self)
VALUE rb_tainted_str_new(const char *, long)
static VALUE rb_dlptr_cmp(VALUE self, VALUE other)
void * rb_dlptr2cptr(VALUE val)
static VALUE rb_dlptr_to_str(int argc, VALUE argv[], VALUE self)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_dlptr_new2(VALUE klass, void *ptr, long size, freefunc_t func)
void(* freefunc_t)(void *)
VALUE rb_obj_class(VALUE)