21 #define RPTR_DATA(obj) ((struct ptr_data *)(DATA_PTR(obj)))
32 *wrap = (addrnum !=
func) ? func : 0;
66 return data ?
sizeof(*data) + data->
size : 0;
101 memset(ptr,0,(
size_t)size);
115 else if (val ==
Qnil) {
158 if (
rb_scan_args(argc, argv,
"12", &ptr, &size, &sym) >= 1) {
160 if (addrnum != ptr) wrap =
ptr;
177 data->
wrap[1] = funcwrap;
214 rb_bug(
"rb_fiddle_ptr_s_malloc");
377 rb_bug(
"rb_fiddle_ptr_to_s");
415 rb_bug(
"rb_fiddle_ptr_to_str");
478 return diff > 0 ?
INT2NUM(1) : INT2NUM(-1);
540 retval =
INT2NUM(*((
char *)data->
ptr + offset));
548 rb_bug(
"rb_fiddle_ptr_aref()");
567 VALUE arg0, arg1, arg2;
575 switch(
rb_scan_args(argc, argv,
"21", &arg0, &arg1, &arg2) ){
593 memcpy((
char *)data->
ptr + offset, mem, len);
597 rb_bug(
"rb_fiddle_ptr_aset()");
660 if (num == val) wrap = 0;