/* * Document-method: sym * * call-seq: sym(name) * * Get the address as an Integer for the function named +name+. */ static VALUE rb_fiddle_handle_sym(VALUE self, VALUE sym) { struct dl_handle *fiddle_handle; TypedData_Get_Struct(self, struct dl_handle, &fiddle_handle_data_type, fiddle_handle); if( ! fiddle_handle->open ){ rb_raise(rb_eFiddleError, "closed handle"); } return fiddle_handle_sym(fiddle_handle->ptr, sym); }
/* * Document-method: sym * * call-seq: sym(name) * * Get the address as an Integer for the function named +name+. The function * is searched via dlsym on RTLD_NEXT. * * See man(3) dlsym() for more info. */ static VALUE rb_fiddle_handle_s_sym(VALUE self, VALUE sym) { return fiddle_handle_sym(RTLD_NEXT, sym); }
/* * Document-method: sym * * call-seq: sym(name) * * Get the address as an Integer for the function named +name+. The function * is searched via dlsym on RTLD_NEXT. * * See man(3) dlsym() for more info. */ static VALUE rb_fiddle_handle_s_sym(VALUE self, VALUE sym) { return fiddle_handle_sym(RTLD_NEXT, StringValueCStr(sym)); }