25 *wrap = (addrnum !=
func) ? func : 0;
58 return data ?
sizeof(*data) + data->
size : 0;
95 memset(ptr,0,(
size_t)size);
109 else if (val ==
Qnil) {
152 if (
rb_scan_args(argc, argv,
"12", &ptr, &size, &sym) >= 1) {
154 if (addrnum != ptr) wrap =
ptr;
171 data->
wrap[1] = funcwrap;
207 rb_bug(
"rb_dlptr_s_malloc");
378 rb_bug(
"rb_dlptr_to_str");
397 snprintf(str, 1023,
"#<%s:%p ptr=%p size=%ld free=%p>",
503 retval =
INT2NUM(*((
char *)data->
ptr + offset));
511 rb_bug(
"rb_dlptr_aref()");
528 VALUE arg0, arg1, arg2;
536 switch(
rb_scan_args(argc, argv,
"21", &arg0, &arg1, &arg2) ){
554 memcpy((
char *)data->
ptr + offset, mem, len);
558 rb_bug(
"rb_dlptr_aset()");
621 if (num == val) wrap = 0;
static VALUE rb_dlptr_minus(VALUE self, VALUE other)
#define RB_TYPE_P(obj, type)
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)
#define rb_tainted_str_new2
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)
SSL_METHOD *(* func)(void)
static VALUE rb_dlptr_inspect(VALUE self)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
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)
VALUE rb_dlptr_aref(int argc, VALUE argv[], VALUE self)
#define GetOpenFile(obj, fp)
VALUE rb_dlptr_ptr(VALUE self)
static VALUE rb_dlptr_s_to_ptr(VALUE self, VALUE val)
VALUE rb_dlcfunc_new(void(*func)(), int type, const char *name, ID calltype)
memset(y->frac+ix+1, 0,(y->Prec-(ix+1))*sizeof(BDIGIT))
static void dlptr_free(void *ptr)
#define TypedData_Get_Struct(obj, type, data_type, sval)
#define StringValuePtr(v)
static void dlptr_mark(void *ptr)
void rb_define_const(VALUE, const char *, VALUE)
static VALUE rb_dlptr_to_value(VALUE self)
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_tainted_str_new(const char *, long)
VALUE rb_dlptr_aset(int argc, VALUE argv[], VALUE self)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static VALUE rb_dlptr_to_s(int argc, VALUE argv[], VALUE self)
RUBY_EXTERN VALUE rb_cString
static const rb_data_type_t dlptr_data_type
void * ruby_xmalloc(size_t size)
const char * rb_class2name(VALUE)
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)
VALUE rb_obj_is_kind_of(VALUE, VALUE)
static VALUE rb_dlptr_initialize(int argc, VALUE argv[], VALUE self)
static VALUE rb_dlptr_size_get(VALUE self)
#define TypedData_Make_Struct(klass, type, data_type, sval)
RUBY_EXTERN VALUE rb_cObject
static Bigint * diff(Bigint *a, Bigint *b)
VALUE rb_dlptr_ref(VALUE self)
FILE * rb_io_stdio_file(rb_io_t *fptr)
void(* freefunc_t)(void *)
VALUE rb_dlptr_null_p(VALUE self)
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)