diff options
author | 卜部昌平 <[email protected]> | 2019-08-27 11:16:52 +0900 |
---|---|---|
committer | 卜部昌平 <[email protected]> | 2019-08-27 15:52:26 +0900 |
commit | ae2dc3f217ba9f181471f39a7e5ce72a28b27c2a (patch) | |
tree | e506115b9dd5c2adb07946763506a5b46d36b5f0 /include/ruby/ruby.h | |
parent | 78628618da98236fc1bf702079185b36ed394e2a (diff) |
rb_define_hooked_variable now free from ANYARGS
After 5e86b005c0f2ef30df2f9906c7e2f3abefe286a2, I now think ANYARGS is
dangerous and should be extinct. This commit uses rb_gvar_getter_t /
rb_gvar_setter_t for rb_define_hooked_variable /
rb_define_virtual_variable which revealed lots of function prototype
inconsistencies. Some of them were literally decades old, going back
to dda5dc00cff334cac373096d444a0fd59e716124.
Diffstat (limited to 'include/ruby/ruby.h')
-rw-r--r-- | include/ruby/ruby.h | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index 86406ca50e..e15e3e60ef 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -1776,29 +1776,27 @@ void rb_include_module(VALUE,VALUE); void rb_extend_object(VALUE,VALUE); void rb_prepend_module(VALUE,VALUE); -struct rb_global_variable; - -typedef VALUE rb_gvar_getter_t(ID id, void *data, struct rb_global_variable *gvar); -typedef void rb_gvar_setter_t(VALUE val, ID id, void *data, struct rb_global_variable *gvar); +typedef VALUE rb_gvar_getter_t(ID id, VALUE *data); +typedef void rb_gvar_setter_t(VALUE val, ID id, VALUE *data); typedef void rb_gvar_marker_t(VALUE *var); -VALUE rb_gvar_undef_getter(ID id, void *data, struct rb_global_variable *gvar); -void rb_gvar_undef_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar); -void rb_gvar_undef_marker(VALUE *var); +rb_gvar_getter_t rb_gvar_undef_getter; +rb_gvar_setter_t rb_gvar_undef_setter; +rb_gvar_marker_t rb_gvar_undef_marker; -VALUE rb_gvar_val_getter(ID id, void *data, struct rb_global_variable *gvar); -void rb_gvar_val_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar); -void rb_gvar_val_marker(VALUE *var); +rb_gvar_getter_t rb_gvar_val_getter; +rb_gvar_setter_t rb_gvar_val_setter; +rb_gvar_marker_t rb_gvar_val_marker; -VALUE rb_gvar_var_getter(ID id, void *data, struct rb_global_variable *gvar); -void rb_gvar_var_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar); -void rb_gvar_var_marker(VALUE *var); +rb_gvar_getter_t rb_gvar_var_getter; +rb_gvar_setter_t rb_gvar_var_setter; +rb_gvar_marker_t rb_gvar_var_marker; -NORETURN(void rb_gvar_readonly_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar)); +NORETURN(rb_gvar_setter_t rb_gvar_readonly_setter); void rb_define_variable(const char*,VALUE*); -void rb_define_virtual_variable(const char*,VALUE(*)(ANYARGS),void(*)(ANYARGS)); -void rb_define_hooked_variable(const char*,VALUE*,VALUE(*)(ANYARGS),void(*)(ANYARGS)); +void rb_define_virtual_variable(const char*,rb_gvar_getter_t*,rb_gvar_setter_t*); +void rb_define_hooked_variable(const char*,VALUE*,rb_gvar_getter_t*,rb_gvar_setter_t*); void rb_define_readonly_variable(const char*,const VALUE*); void rb_define_const(VALUE,const char*,VALUE); void rb_define_global_const(const char*,VALUE); |