mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
refactor delete rb_method_entry_copy
The deleted function was to destructively overwrite existing method entries, which is now considered to be a bad idea. Delete it, and assign a newly created method entry instead.
This commit is contained in:
parent
3207979278
commit
7cb96d41a5
Notes:
git
2019-09-30 10:27:05 +09:00
5 changed files with 41 additions and 26 deletions
3
method.h
3
method.h
|
@ -185,6 +185,8 @@ STATIC_ASSERT(sizeof_method_def, offsetof(rb_method_definition_t, body)==8);
|
|||
((def)->type == VM_METHOD_TYPE_REFINED && \
|
||||
UNDEFINED_METHOD_ENTRY_P((def)->body.refined.orig_me))
|
||||
|
||||
const rb_method_definition_t *rb_method_definition_create(rb_method_type_t which, ID what, const void *how);
|
||||
|
||||
void rb_add_method_cfunc(VALUE klass, ID mid, VALUE (*func)(ANYARGS), int argc, rb_method_visibility_t visi);
|
||||
void rb_add_method_iseq(VALUE klass, ID mid, const rb_iseq_t *iseq, rb_cref_t *cref, rb_method_visibility_t visi);
|
||||
void rb_add_refined_method_entry(VALUE refined_class, ID mid);
|
||||
|
@ -221,7 +223,6 @@ void rb_sweep_method_entry(void *vm);
|
|||
|
||||
const rb_method_entry_t *rb_method_entry_clone(const rb_method_entry_t *me);
|
||||
const rb_callable_method_entry_t *rb_method_entry_complement_defined_class(const rb_method_entry_t *src_me, ID called_id, VALUE defined_class);
|
||||
void rb_method_entry_copy(rb_method_entry_t *dst, const rb_method_entry_t *src);
|
||||
|
||||
void rb_scope_visibility_set(rb_method_visibility_t);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue